TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Substack is (not) now powered by Ghost

348 pointsby agdover 2 years ago

33 comments

cjbestover 2 years ago
One of the founders here. Here&#x27;s a copy of the response I posted on Twitter.<p>--<p>A response to @JohnONolan here to clear up some serious misunderstandings <a href="https:&#x2F;&#x2F;twitter.com&#x2F;JohnONolan&#x2F;status&#x2F;1602330377812643850" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;JohnONolan&#x2F;status&#x2F;1602330377812643850</a><p>First of all, huge respect to the Ghost team. Their open source contributions are valuable, and their approach to theming enables some great-looking things. That said, some important corrections:<p>Substack is not &quot;powered by Ghost&quot;. Rather, we built our own theming API that’s compatible with themes built for Ghost, including those built by third parties.<p>The Free Press is using a modified Tripoli theme, built by Ahmad Ajmi, under a paid license. This is how this is supposed to work. It&#x27;s good for the theme developer if we support this – you should check them out here. <a href="https:&#x2F;&#x2F;aspirethemes.com&#x2F;themes&#x2F;tripoli" rel="nofollow">https:&#x2F;&#x2F;aspirethemes.com&#x2F;themes&#x2F;tripoli</a><p>This was relatively quick to build for Substack devs, because the structure of Ghost sites matches Substack fairly closely.<p>With respect to the search library, this is an open source library that we are using in a fully compliant way. John&#x27;s own screen shot shows that we don&#x27;t load it &quot;from Ghost’s own CDN&quot;, it comes from jsDelivr <a href="https:&#x2F;&#x2F;www.jsdelivr.com" rel="nofollow">https:&#x2F;&#x2F;www.jsdelivr.com</a><p>This is a standard way to use an open source library. It&#x27;s pulling from the version that the sodo-search maintainers published to NPM (thank you!).<p>It is a good point that we should lock a version, so that if they accidentally published a minor version revision with breaking changes it doesn&#x27;t cause problems for us. We’ve fixed that.<p>We’re grateful to the developer of the Tripoli theme and to Ghost for its contributors to open source work. We’re exploring ways to give writers more customization on Substack. This is one approach we’re considering but it’s too early to know if we’ll scale it up.<p>And @JohnONolan, thanks for the note at the end about potential collaboration. In our minds, we’re on the same side of an important battle for a better internet. We’re definitely up to chat.
评论 #33958980 未加载
评论 #33959827 未加载
评论 #33958955 未加载
评论 #33959124 未加载
评论 #33959948 未加载
评论 #33960092 未加载
评论 #33959335 未加载
simonsarrisover 2 years ago
Chris Best of Substack replied: <a href="https:&#x2F;&#x2F;twitter.com&#x2F;cjgbest&#x2F;status&#x2F;1602370307884318720" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;cjgbest&#x2F;status&#x2F;1602370307884318720</a><p><i>Substack is not &quot;powered by Ghost&quot;. Rather, we built our own theming API that’s compatible with themes built for Ghost, including those built by third parties.</i><p><i>The Free Press is using a modified Tripoli theme, built by Ahmad Ajmi, under a paid license. This is how this is supposed to work. It&#x27;s good for the theme developer if we support this – you should check them out here.</i>
评论 #33958437 未加载
tiffanyhover 2 years ago
&gt; One thing that’s a little disappointing: Ghost uses the MIT license, one of the most permissive OSS licenses there is. Essentially, anyone can do anything they want with our code, with ONE basic requirement: You must include copyright attribution. Which they have not.<p>For a SaaS app, wouldn&#x27;t that copyright attribution be on the server side, where the code is (hidden from the end user)?<p>Is John stating he expects that copyright attribution to be in the &quot;view source&quot; of the HTML or some other user accessible location? What happens if that HTML&#x2F;JS is minified&#x2F;stripped&#x2F;&quot;compiled&quot;?<p>IANAL: but I&#x27;m genuinely curious how this situation is handled.<p><a href="https:&#x2F;&#x2F;twitter.com&#x2F;JohnONolan&#x2F;status&#x2F;1602330414269472769" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;JohnONolan&#x2F;status&#x2F;1602330414269472769</a>
评论 #33956882 未加载
评论 #33956909 未加载
评论 #33957210 未加载
评论 #33957241 未加载
评论 #33957279 未加载
评论 #33958089 未加载
评论 #33957595 未加载
Xeoncrossover 2 years ago
I&#x27;ve always found open source projects to build superior libraries that commercial entities always end up adopting.<p>I&#x27;ve always found commercial entities to build superior products that open source projects always end up adopting.<p>One makes the tools, the other assembles them and sells it.<p>Must be the focus on profits that helps push companies to build products users want, while the love of the craft pushes developers to make the best foundations.
评论 #33956613 未加载
评论 #33956768 未加载
评论 #33956847 未加载
评论 #33956739 未加载
staunchover 2 years ago
On the one hand, it does seem like it&#x27;d be nice if Substack had signed a support&#x2F;integration deal with the Ghost team. That way Ghost could have gotten paid <i>something</i> for their hard work, and Substack could have avoided critical mistakes like the CDN security issue.<p>On the other hand, this seems like what success looks like for an MIT licensed project. A big company using the code to power their product without even having to contact, let alone ask permission of, anyone.<p>It seems to feel different for end-user applications like Ghost. But it&#x27;s not actually any different than if they had powered Substack with SQLite or Postgres.
评论 #33957560 未加载
评论 #33958199 未加载
Illniyarover 2 years ago
A response from substack.<p><a href="https:&#x2F;&#x2F;mobile.twitter.com&#x2F;cjgbest&#x2F;status&#x2F;1602370307884318720" rel="nofollow">https:&#x2F;&#x2F;mobile.twitter.com&#x2F;cjgbest&#x2F;status&#x2F;160237030788431872...</a><p>Seems like this is a bit of a clickbait. The theme is made by the substack user, substack is only using a single library from ghost to show search, and the cdn in question is jsdeliver which isn&#x27;t ghost&#x27;s cdn, it is basically a cdn for any open source javascript.
评论 #33959451 未加载
bluehatbritover 2 years ago
I quite O&#x27;Nolan&#x27;s tone here. It&#x27;s obviously not a collaboration as you might first expect from the top tweet (and title on HN), but he&#x27;s quite gracious about it at the same time. It would be quite easy to get frustrated and outraged at Substack, we&#x27;ve seen it happen before. However despite the two, fairly substantial, issues he&#x27;s pretty gracious about it while poking a bit of fun.<p>Hopefully Substack do the right thing here and correct those two problems openly. It would only be a good thing for blogging&#x2F;publishing if they actually contributed back as well.
评论 #33958724 未加载
lucideerover 2 years ago
I&#x27;ve been a big fan of ghost for a while, both the software and the company &amp; its values.<p>This thread is really making me rethink the latter.<p>He&#x27;s just so confidently wrong in every tweet.
评论 #33959460 未加载
评论 #33959559 未加载
jasonhanselover 2 years ago
This is why you should use the AGPL.<p>Otherwise, corporations can and will make immense profits from your unpaid work without contributing anything in return.<p>The goal of FOSS should be to create a new ecosystem that puts users in control, not to provide free labor to private enterprises.
评论 #33958060 未加载
评论 #33957851 未加载
rojobuffaloover 2 years ago
Have any writers migrated from Substack to Ghost?<p>Substack support has been nonexistent for the past 6 months. I&#x27;ve reached out about a handful of broken features and get no response, except in one case months ago where they dismissed it in the weirdest way. Archive search does not work; ex. I have a post about monkeys, it has &quot;monkey&quot; in the title and the body, and when I search &quot;monkey&quot; it doesn&#x27;t come up in results. The support response said &quot;this is normal, just because a post has a keyword in the title or body doesn&#x27;t mean it&#x27;s always included in search results&quot;...what? I asked for clarification and they never replied.<p>It feels like Substack has strayed from the promise of being focused on writing and email. They added &quot;Save&quot; and &quot;Listen&quot; buttons to the top of emails, which are visually prominent; and those buttons make no sense in an email. They&#x27;re a trick to take people to the iOS app.<p>They endlessly promote new features to writers and readers and it all feels like their trying to lock you into something that&#x27;s harder to migrate out of.
评论 #33957547 未加载
评论 #33957520 未加载
评论 #33958860 未加载
quanticleover 2 years ago
<p><pre><code> The way they used our search library is kind of interesting. They could&#x27;ve copied the code locally and modified it to work with the Substack API, but I guess Substack doesn’t have an API? </code></pre> Substack doesn&#x27;t have an API. Their editor is laughably primitive compared with other solutions. Their visual look hasn&#x27;t changed at all since their inception. They don&#x27;t have discoverability. Can anyone tell me what Substack is doing with all the millions of dollars of funding they&#x27;ve taken? We joke about Twitter being massively overstaffed, but Substack, to me, looks just as bloated, organizationally.
评论 #33957033 未加载
评论 #33957128 未加载
评论 #33957425 未加载
评论 #33957127 未加载
评论 #33958435 未加载
评论 #33957479 未加载
chrisweeklyover 2 years ago
Whoa!<p>Hotlinking Ghost CDN URLs in Substack production HTML.<p>Yes this is a bad look for Substack. And it puts them - and their users - at Ghost&#x27;s mercy.
评论 #33957414 未加载
评论 #33958769 未加载
评论 #33956861 未加载
评论 #33956860 未加载
pwinnskiover 2 years ago
This is a classy response from the Ghost folks to a clear license violation.
评论 #33958788 未加载
评论 #33956748 未加载
koopuluriover 2 years ago
Based on Ghost&#x27;s MIT license, seems Substack using it is fine, but damn would have been nice to have at least some kind of attribution... leaves a sour taste to take without acknowledging.
评论 #33956718 未加载
评论 #33958790 未加载
评论 #33956835 未加载
评论 #33956938 未加载
评论 #33957166 未加载
imaurerover 2 years ago
I really enjoyed this interview with Ghost founder John O’Nolan. Seems like a very smart, classy guy leaving the world better than he found it<p><a href="https:&#x2F;&#x2F;www.indiehackers.com&#x2F;podcast&#x2F;139-john-onolan-of-ghost" rel="nofollow">https:&#x2F;&#x2F;www.indiehackers.com&#x2F;podcast&#x2F;139-john-onolan-of-ghos...</a>
yawboakyeover 2 years ago
in a non-gotcha world, john of ghost reaches out privately to chris (or someone else) of substack to compare notes and clarify what&#x27;s going on here. but those regretful days of chivalry are long gone, aren&#x27;t they? they&#x27;re replaced by the superior practice of submitting your grievances to the universal jury, in the absence of the accused. civility and principle of charity be damned. a few people have highlighted the calmness of the exchange—i think the public part was absolutely unnecessary. my one-and-a-half cents.
bakkotingover 2 years ago
Here&#x27;s [1] the actual JS file which Substack is loading, pulled directly from the network tab on the page linked in the thread.<p>Notably, the first line is &quot;For license information please see sodo-search.min.js.LICENSE.txt&quot;. But if you go to that file [2], it&#x27;s not the license _for this file_; it&#x27;s the licenses _for the OSS code it includes_. I suspect that Substack thought that link pointed to the actual license; I did too before I started writing this comment. Possibly that confusion has lead to some talking past each other.<p>The actual license is at [3], which is obvious if you know how npm packages work, and probably not obvious otherwise. I don&#x27;t see a link to that file anywhere.<p>[1] <a href="https:&#x2F;&#x2F;cdn.jsdelivr.net&#x2F;npm&#x2F;@tryghost&#x2F;sodo-search@1.1&#x2F;umd&#x2F;sodo-search.min.js" rel="nofollow">https:&#x2F;&#x2F;cdn.jsdelivr.net&#x2F;npm&#x2F;@tryghost&#x2F;sodo-search@1.1&#x2F;umd&#x2F;s...</a><p>[2] <a href="https:&#x2F;&#x2F;cdn.jsdelivr.net&#x2F;npm&#x2F;@tryghost&#x2F;sodo-search@1.1&#x2F;umd&#x2F;sodo-search.min.js.LICENSE.txt" rel="nofollow">https:&#x2F;&#x2F;cdn.jsdelivr.net&#x2F;npm&#x2F;@tryghost&#x2F;sodo-search@1.1&#x2F;umd&#x2F;s...</a><p>[3] <a href="https:&#x2F;&#x2F;cdn.jsdelivr.net&#x2F;npm&#x2F;@tryghost&#x2F;sodo-search@1.1&#x2F;LICENSE" rel="nofollow">https:&#x2F;&#x2F;cdn.jsdelivr.net&#x2F;npm&#x2F;@tryghost&#x2F;sodo-search@1.1&#x2F;LICEN...</a>
ben-parryover 2 years ago
Response from Chris Best Substack&#x27;s CEO: <a href="https:&#x2F;&#x2F;twitter.com&#x2F;cjgbest&#x2F;status&#x2F;1602370307884318720" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;cjgbest&#x2F;status&#x2F;1602370307884318720</a>
评论 #33958536 未加载
bencedover 2 years ago
What a crazy world we live in where someone can license their code and someone else can use the code under the terms of that license.
setgreeover 2 years ago
Funny side-note: @substack is the wrong handle, I assume John meant to tag @SubstackInc.<p>AFAIK there&#x27;s no formal mechanism for bidding on naming rights, but Twitter could easily set up an auction platform, take a small cut off the top, and do quite nicely.
评论 #33958302 未加载
aftbitover 2 years ago
If you are like me and had never heard of Ghost before today, here&#x27;s a link to their Github repo:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;TryGhost&#x2F;Ghost" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;TryGhost&#x2F;Ghost</a>
tiffanyhover 2 years ago
Is the title of the post still accurate?<p>@dang, thoughts?
评论 #33960009 未加载
the-printerover 2 years ago
So at what point does Substack cut the man and his team a check because from the looks of his observations Substack will likely need consultation and support.
评论 #33957097 未加载
ArnoVWover 2 years ago
It&#x27;s a known thing, and it&#x27;s called the SaaS loophole.<p><a href="https:&#x2F;&#x2F;opensource.stackexchange.com&#x2F;questions&#x2F;11467&#x2F;can-i-use-gpl-software-to-provide-a-commercial-cloud-service" rel="nofollow">https:&#x2F;&#x2F;opensource.stackexchange.com&#x2F;questions&#x2F;11467&#x2F;can-i-u...</a>
placatedmayhemover 2 years ago
Mildly off-topic, but I&#x27;m somewhat tired of the reuse of names for different software. Originally, I was confused by this post and why Substack would be using Norton Ghost. There&#x27;s also the Android post-explotation framework and ImmersionRC&#x27;s Ghost radio control protocol.
评论 #33959068 未加载
huksleyover 2 years ago
I think one of the points that Substack reverse engineered how search works. They use this package <a href="https:&#x2F;&#x2F;github.com&#x2F;TryGhost&#x2F;sodo-search" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;TryGhost&#x2F;sodo-search</a> which does not have any docs.
Waterluvianover 2 years ago
When John says &quot;product engineers&quot; does that mean &quot;the engineers who specifically work on the code that gets used by customers&quot;? Ie. excluding the engineers who do all the support stuff: CI&#x2F;CD&#x2F;testing&#x2F;etc. ?
ben-parryover 2 years ago
Response from Chris Best, Substack&#x27;s CEO: <a href="https:&#x2F;&#x2F;twitter.com&#x2F;cjgbest&#x2F;status&#x2F;1602370307884318720" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;cjgbest&#x2F;status&#x2F;1602370307884318720</a>
holgersindbaekover 2 years ago
I&#x27;d loved to have implemented this for my chrismas themed solitaire: <a href="https:&#x2F;&#x2F;online-solitaire.com&#x2F;?theme=christmas" rel="nofollow">https:&#x2F;&#x2F;online-solitaire.com&#x2F;?theme=christmas</a>.<p>Good job!
satvikpendemover 2 years ago
If Substack uses Ghost, why not just use Ghost itself? I&#x27;m thinking about doing that instead of Substack for my newsletter.
gnicholasover 2 years ago
Huh, so it&#x27;s a ghost in the machine?
xNeilover 2 years ago
Hi Chris! Love what you&#x27;re doing with Substack. One quick thing though - this may seem weird, but Substack at the moment does not, in my opinion, offer a lot of customisation of the website. If you see a website, it&#x27;s extremely easy to tell its a Substack.<p>Over the past year, I&#x27;ve only read high quality Substack posts - and my brain has sort of come to instinctively believe that if I see that specific layout, the post will be high quality. E.g. (not a very nice one) but in general, if I see the Medium layout, my brain almost immediately get turned off, believing the quality of the content to be sub-par.<p>I think individual theming, as in the case of The Free Press, takes away that immediate notion. I understand that the vast majority of people will not face this issue, but I think I will. I just wanted to know if you think this is an issue, and if it is, what you&#x27;ll do to &#x27;counter&#x27; it. I&#x27;d really like to hear your thoughts on this!
评论 #33959801 未加载
gizmoover 2 years ago
Sleazy and disrespectful behavior by substack. Just like medium, all these publishing&#x2F;newsletter platforms go to $%@&amp; real quick. The first time I saw the &quot;sign up to continue reading&quot; banner I knew substack was done, this just confirms it.