<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[John O'Nolan]]></title><description><![CDATA[Founder/CEO @ Ghost.org — Geographically restless. Publishing, open source, and independent business around the world. ]]></description><link>https://john.onolan.org/</link><image><url>https://john.onolan.org/favicon.png</url><title>John O&apos;Nolan</title><link>https://john.onolan.org/</link></image><generator>Ghost 6.44</generator><lastBuildDate>Mon, 08 Jun 2026 10:59:56 GMT</lastBuildDate><atom:link href="https://john.onolan.org/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[I built a CLI for Ghost]]></title><description><![CDATA[And it made me wonder what the future of UI holds]]></description><link>https://john.onolan.org/i-built-a-cli-for-ghost/</link><guid isPermaLink="false">69c0e7c9ea9f3800014aaa30</guid><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Mon, 23 Mar 2026 07:20:35 GMT</pubDate><media:content url="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2026/03/ghst.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2026/03/ghst.jpeg" alt="I built a CLI for Ghost"><p>Recently, I&apos;ve found my preferred way to interact with lots of products is getting Claude to use a CLI tool, and then just talking to it out loud about what I want to happen.</p><p>So I made a CLI tool for <a href="https://ghost.org/?ref=john.onolan.org" rel="noreferrer">Ghost</a>, to see what it would be like in our own product - it&apos;s called <code>ghst</code> and it essentially makes everything in the UI available by CLI (and MCP).</p><p>Mostly this was an exercise in doing it just to see if I could - but it turned out to be a lot more interesting than I expected.</p><p>We&apos;ve spent 10+ years focusing on having a clean, well designed interface for Ghost. It&apos;s something we care a lot about, and spend a lot of time on. </p><p>But within about ~1hr of using Ghost via Claude/CLI, it was hard to imagine going back to caveman-clicking around a browser to get something done. Particularly for complex or compound tasks that might require visiting several different areas of the app.</p><p>The experience is so different when you&apos;re just describing what you want to happen, out loud:</p><ul><li>&quot;I saw this theme called [whatever], can you install that for me?&quot;</li><li>&quot;give a complimentary subscription to [member name]&quot;</li><li>&quot;how much traffic did my post get last week?&quot;</li></ul><p>Which is both obvious, and at the same time kind of jarring. <br><br>I know Ghost&apos;s UI extremely well, and know exactly where to go and what to click to do the thing I want &#x2013; and even for me, using Claude is significantly faster/easier than clicking myself. </p><p>So how big would the delta be for a regular user who <em>doesn&apos;t</em> already know the UI inside out?</p><p>My initial thought was &quot;huh, I wonder if UI even matters anymore?&quot; - maybe everything just becomes a CLI / voice interface for a database, as various people have been suggesting about CRM tools. </p><p>But I don&apos;t think that&apos;s quite right. I notice when I interact with the product via Claude - I usually still keep the UI open, but my relationship to it is different. I use UI to see what happened, verify things look &quot;right&quot;, and get an overview of what&apos;s going on. </p><p>Which is kind of familiar, because &quot;agent does the actions for me / I review the results&quot; has obvious parallels to AI coding workflows. </p><p>Before I&apos;d be in VS Code all day doing the thing myself, but now I use Codex Desktop which is a <em>UI</em> designed entirely around optimising for: agent does the actions for me... I review the results.</p><p>Anyway, I don&apos;t know what my conclusion is here other than to say that AI+CLI is a really cool pattern, and I think it&apos;s likely to meaningfully influence what &quot;UI&quot; means over the next few years.</p><p>There are still tons of rough edges and reasons for why this is not yet a fully-formed paradigm (regular humans do not, and should not, ever need to know what &quot;CLI&quot; or &quot;MCP&quot; even means), but I like where it&apos;s going.</p><p>If you&apos;d like to try out <code>ghst</code> - the beta announcement is here:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://forum.ghost.org/t/developer-beta-ghst-cli/62228?ref=john.onolan.org"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Developer Beta: ghst cli</div><div class="kg-bookmark-description">Hi everyone, Wanted to share a new ghst CLI tool we&#x2019;ve been working on - as a developer beta - which allows you to interact with Ghost publications from the command line. In short, this allows you (or an LLM like Claude, or Codex) to automate tasks within Ghost using a set of pre-built tools. Pretty much everything you can do in Ghost Admin, you can do using this CLI. For example: Create/edit posts and publish them Import or export members Download/upload/activate themes Find out which post&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/icon/f381b3b952df5ad42fe691a8b14aa7f0c96c461a_2_180x180.png" alt="I built a CLI for Ghost"><span class="kg-bookmark-author">Ghost Forum</span><span class="kg-bookmark-publisher">John</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/thumbnail/389d9f28158cbf3a162e3665027240341b5b5602_2_1024x576.jpeg" alt="I built a CLI for Ghost" onerror="this.style.display = &apos;none&apos;"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[Open Source in the age of AI]]></title><description><![CDATA[<p>Early 2026 is a very weird time to be an open source maintainer. </p><p>On the one hand, the burden of codebase maintenance has dropped dramatically. Small teams with long todo lists now have the ability to accomplish more than ever before. On the other hand, the dynamics of the software</p>]]></description><link>https://john.onolan.org/open-source-in-the-age-of-ai/</link><guid isPermaLink="false">699ff48c52b67e0001b259da</guid><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Thu, 26 Feb 2026 17:28:52 GMT</pubDate><content:encoded><![CDATA[<p>Early 2026 is a very weird time to be an open source maintainer. </p><p>On the one hand, the burden of codebase maintenance has dropped dramatically. Small teams with long todo lists now have the ability to accomplish more than ever before. On the other hand, the dynamics of the software industry are rapidly changing, and some of the foundations open source projects built upon are looking increasingly shaky.</p><p>Any open source project that achieves a degree of success will at some point face the reality of a competing company taking your open source code and using it to compete with you. </p><p>Substack has &#x2013; <a href="https://x.com/johnonolan/status/1602330377812643850?ref=john.onolan.org">at various points</a> &#x2013; wholesale copied and pasted significant chunks of Ghost&apos;s source code into its own product.</p><p>Open source maintainers have been fighting this sort of thing for a while with increasingly restrictive licenses, or keeping certain parts of the development stack private, like the test suite. </p><p>&quot;If you want to use our code, you have to follow our rules.&quot;</p><p>But the dictating of the rules has largely been built upon a premise that code is intrinsically valuable because it&apos;s a scarce resource. Difficult to maintain. Expensive to write. </p><p>AI is now rapidly overturning that premise, as evidenced by Cloudflare this week, who took a competitor&apos;s open source codebase and cloned it in the space of a few days into an entirely new product:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.cloudflare.com/vinext/?ref=john.onolan.org"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How we rebuilt Next.js with AI in one week</div><div class="kg-bookmark-description">One engineer used AI to rebuild Next.js on Vite in a week. vinext builds up to 4x faster, produces 57% smaller bundles, and deploys to Cloudflare Workers with a single command.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/icon/favicon-32x32.png" alt><span class="kg-bookmark-author">The Cloudflare Blog</span><span class="kg-bookmark-publisher">Steve Faulkner</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/thumbnail/BLOG-3194_OG.png" alt onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>If anyone can point Claude at an open source codebase and have it rewritten from scratch, without actually using any of the original code, what does that mean for software licenses? More specifically: Do software licenses mean anything?</p><p>Some will debate whether this is even a thing &#x2013; with a lot of hand waving about &quot;vibecoding slop&quot; &#x2013; but the trajectory is clear to see.</p><p>In December, Simon Willison wrote about <a href="https://simonwillison.net/2025/Dec/15/porting-justhtml/?ref=john.onolan.org">porting an HTML parsing library from Python to JavaScript</a>, raising these legal/ethical concerns as a thought exercise. Two months later, we have a publicly traded company shamelessly cloning the entire product of a competitor purely for the sake of strategically undermining them.</p><p>In some ways this feels like the start of software&apos;s <a href="https://www.forbes.com/sites/danidiplacido/2025/03/27/the-ai-generated-studio-ghibli-trend-explained/?ref=john.onolan.org">Studio Ghibli moment</a>. </p><p>But it would be a mistake, I think, to imagine that only open source software will be susceptible to being cloned. </p><p>I don&apos;t imagine it will be long before any sufficiently successful proprietary product with a public-facing interface can be reverse-engineered and rebuilt by a  motivated competitor with access to frontier models. What took Cloudflare a week with an open source codebase will likely soon take a week to do with a closed one.</p><p>LLMs, it turns out, are already pretty good at reverse engineering.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ghuntley.com/atlassian-rovo-source-code/?ref=john.onolan.org"><div class="kg-bookmark-content"><div class="kg-bookmark-title">the z80 technique reveals the source code for Atlassian&#x2019;s &#x2018;rovo&#x2019; AI assistant</div><div class="kg-bookmark-description">Ever wondered what happens if you take the technique at &#x201C;Can a LLM convert C, to ASM to specs and then to a working Z/80 Speccy tape? Yes.&#x201D; and run it against the Atasslian Command Line (ACLI) interface? Strap yourself in, as the Z80 is amongst one of the</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/icon/A-black-and-white--low-angle-digital-illustration-in-a-symbolic-traditional-tattoo-art-style.--A-bald--light-skinned-man-with-a-bushy-beard--prominent-eyebrows--and-a-friendly-expression-wears-denim-overalls--2-.jpg" alt><span class="kg-bookmark-author">Geoffrey Huntley</span><span class="kg-bookmark-publisher">Geoffrey Huntley</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/thumbnail/A-symbolic-traditional-tattoo-art-print-on-a-white-background-shows-a-Z80-Spectrum-computer-reverse-engineering-Python-source-code-with-AI.-The-style-is-vibrant--retro--complex--ornamental--with-a-dreamy-atmosphere--intense-dramatic-lightin.jpg" alt onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>Which is an interesting wrinkle.</p><p>What happens when we get to a point where closed products can just as easily be cloned and released as open source?</p><p>When Stallman launched the free software movement in 1983, it was a reaction to a world where software was closed, proprietary, and wielded as an instrument of control. </p><p>Open source was built upon the idea that anyone should be able to study, modify, replicate and share software. Free from the grasp of corporations and copyrights to prevent it.</p><p>In a strange way, I&apos;m beginning to wonder if AI might end up fulfilling that vision more completely than open source ever did.</p>]]></content:encoded></item><item><title><![CDATA[I'm making an RSS reader]]></title><description><![CDATA[<p>Why am I making an RSS reader? I don&apos;t know. There are a thousand RSS readers out there already, and they all read RSS feeds, but none of them work the way I&apos;d like them to. So I&apos;m making my own. </p><p>It&apos;s</p>]]></description><link>https://john.onolan.org/making-an-rss-reader/</link><guid isPermaLink="false">68e6524b0f47dd000163801f</guid><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Fri, 05 Dec 2025 00:00:20 GMT</pubDate><media:content url="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/12/G7L6jq3WcAAY0EA.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/12/G7L6jq3WcAAY0EA.jpeg" alt="I&apos;m making an RSS reader"><p>Why am I making an RSS reader? I don&apos;t know. There are a thousand RSS readers out there already, and they all read RSS feeds, but none of them work the way I&apos;d like them to. So I&apos;m making my own. </p><p>It&apos;s obviously a terrible idea. So why do it?</p><p>Mostly for fun.</p><p>There are all sorts of interesting things being published on the web every day, but they&apos;re kind of all over the place. </p><p>I enjoy sitting down on a Sunday morning with a cup of coffee and an hour to myself, but I don&apos;t enjoy opening my email inbox to read a newsletter, only to get sidetracked by 5 new emails that I should probably respond to. I don&apos;t enjoy wrestling my RSS app, which hasn&apos;t been updated in about 10 years and has a horrible reading experience. Reading links from Twitter gets me lost down an algorithm hole. YouTube doesn&apos;t even show me new videos from people I&apos;m subscribed to. </p><p>I wish it were just all in one place. Without all the noise and engagement farming. Just a quiet little spot where I could catch up with things I care about.</p><p>That&apos;s what I&apos;m making. </p><p>I&apos;m calling it <a href="https://alcove.news/?ref=john.onolan.org" rel="noreferrer">Alcove</a>.</p><p>If you want to follow along with this questionable side project of undefined scope, I&apos;m sharing live updates of progress on Twitter, <a href="https://x.com/alcovenews?ref=john.onolan.org" rel="noreferrer">here</a> - or on Social Web platforms (Ghost, Mastodon, Flipboard, Threads etc) on <code>@alcove@blog.alcove.news</code> - or on Bluesky <a href="https://bsky.app/profile/alcove.blog.alcove.news.ap.brid.gy?ref=john.onolan.org">here</a>.</p><p>There&apos;s a more than half-decent chance of a disastrous outcome.</p>]]></content:encoded></item><item><title><![CDATA[$136M]]></title><description><![CDATA[<p>We&apos;ve now generated over $136M from free, open source software with <a href="https://ghost.org/?ref=john.onolan.org" rel="noreferrer">Ghost</a></p><p>$36M in revenue from managed hosting<br>$100M in platform revenue for indie publishers</p><p>The ecosystem is growing really quickly at this point, and really excited about where things are heading next. </p><p>For a while it felt</p>]]></description><link>https://john.onolan.org/136m/</link><guid isPermaLink="false">68a35dedf8fd0f0001a6a9e3</guid><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Mon, 18 Aug 2025 17:09:16 GMT</pubDate><media:content url="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/08/rev.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/08/rev.jpeg" alt="$136M"><p>We&apos;ve now generated over $136M from free, open source software with <a href="https://ghost.org/?ref=john.onolan.org" rel="noreferrer">Ghost</a></p><p>$36M in revenue from managed hosting<br>$100M in platform revenue for indie publishers</p><p>The ecosystem is growing really quickly at this point, and really excited about where things are heading next. </p><p>For a while it felt like the entire web was moving toward big centralized platforms &#x2014; but as subscription businesses grow larger we consistently see that people want to run their own platform and have full control.</p><p>I&apos;m extremely bullish on publishers using Ghost, but also the future of open, shared infrastructure more broadly. <br><br>It&apos;s taken 12 years to get to this point as a bootstrapped non-profit org with no outside funding, but the position we&apos;re in now is pretty remarkable:<br><br>Other platforms have hundreds of millions of dollars in VC debt to repay, and shareholders to enrich.<br><br>We don&apos;t. <br><br>We can just keep reinvesting 100% of what we make into improving the product.<br><br>That&apos;s going to create some really interesting asymmetric market dynamics over the next few years.</p>]]></content:encoded></item><item><title><![CDATA[Reflections on the social web]]></title><description><![CDATA[<p>My biggest point of uncertainty about <a href="https://ghost.org/6/?ref=john.onolan.org" rel="noreferrer">Ghost 6.0</a> was whether people were going to &quot;get&quot; the social web integration.</p><p>The technology is wonderful, but complex. For many people, terms like ActivityPub, Fediverse, bridge, protocol, server, toot, boost, and Webfinger are alienating and confusing. They subtly imply that</p>]]></description><link>https://john.onolan.org/reflections-on-the-social-web/</link><guid isPermaLink="false">6894debe31c8b700019e7f66</guid><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Thu, 07 Aug 2025 18:02:53 GMT</pubDate><media:content url="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/08/socweb.png" medium="image"/><content:encoded><![CDATA[<img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/08/socweb.png" alt="Reflections on the social web"><p>My biggest point of uncertainty about <a href="https://ghost.org/6/?ref=john.onolan.org" rel="noreferrer">Ghost 6.0</a> was whether people were going to &quot;get&quot; the social web integration.</p><p>The technology is wonderful, but complex. For many people, terms like ActivityPub, Fediverse, bridge, protocol, server, toot, boost, and Webfinger are alienating and confusing. They subtly imply that unless you understand what all these words mean, this might not be the place for you; in the same way crypto terms&#x2014;blockchain, web3, wallet, keypair, nonce&#x2014;are a wall of jargon that scream &quot;you don&apos;t belong here&quot; to normal people.</p><p>The work of a product team, when working with new technology, is to abstract away as much of this complexity as possible, so that it feels friendly and approachable to new people.</p><p>To send an email, you don&apos;t need to know what SMTP, IMAP, POP, DKIM, SPF, or DMARC are. To browse the web, there&apos;s no requirement to understand HTTP, DNS, servers, SSL, TTL, load balancing, or caches. The most significant impact these protocols have is perhaps that users never have to think about them.</p><p>So while building the social web integration for Ghost, we weren&apos;t just reasoning about how to make it work and what it should do&#x2014;we were thinking deeply about how to frame it. What words to use. What to compare it to. How to explain it. How to make it not need explaining at all.</p><p>Will people &quot;get it&quot;?</p><p>This question consumed more of my mental energy than anything else, right up until the moment we finally hit launch <a href="https://ghost.org/changelog/6/?ref=john.onolan.org" rel="noreferrer">this past Monday</a>.</p><p>My personal nightmare would have been if the response to the launch was another chorus of &quot;I don&apos;t understand what the point of this is&quot;&#x2014;&quot;this is too complicated&quot;&#x2014;&quot;what does [x] even mean?&quot; I&apos;ve seen it happen so many times before when people try to figure out this tech and how it relates to their lives. The graveyard of technically superior but user-hostile products is vast.</p><p>But, I&apos;m thrilled to see&#x2014;at least so far&#x2014;that hasn&apos;t been the case.</p><p>To be sure, there are still points of functional confusion. Chief among them: Why doesn&apos;t post X from platform Y show up on platform Z right away? But for the most part, I&apos;ve been really encouraged by how many people have just jumped right in and started using it, without getting stuck and needing more explanation. They&apos;re just... publishing. And connecting. And it&apos;s working.</p><p>My strongest belief about the social web is that if we want it to succeed, we have to keep lowering the barrier to entry.</p><p>We have to keep minimizing the need for arcane language. We have to keep solving the things that people expect to work, but don&apos;t, rather than endlessly explaining how the underlying technology works. We have to create more familiarity with concepts people already know. </p><p>Let&apos;s not forget that email, as a technology, was based on the humble letter. To/from, subject, inbox, outbox&#x2014;these were all words based on sending physical memos. The metaphor made the transition accessible.</p><p>The interface and format of a new technology can often be the single biggest factor in determining its adoption.</p><p>After all, for over a decade, we&apos;ve had artificial intelligence capable of performing some pretty incredible tasks. The moment it really caught fire, though, was the moment it became a chatbox. Not when it got smarter. Not when it got more powerful. When it got simpler.</p><p>I think we&apos;ve taken a big step in the right direction with the social web in Ghost 6.0. </p><p>And now we need to keep going.</p>]]></content:encoded></item><item><title><![CDATA[12 years of Ghost]]></title><description><![CDATA[Freedom of the press is guaranteed only to those who own one]]></description><link>https://john.onolan.org/12/</link><guid isPermaLink="false">6819f1ab05997500010e4f81</guid><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Tue, 06 May 2025 16:00:18 GMT</pubDate><media:content url="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/05/CleanShot-2025-05-06-at-15.37.16@2x-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/05/CleanShot-2025-05-06-at-15.37.16@2x-1.png" alt="12 years of Ghost"><p>Last week marked 12 years since the launch of <a href="https://ghost.org/?ref=john.onolan.org" rel="noreferrer">Ghost</a> on <a href="https://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform?ref=john.onolan.org" rel="noreferrer">Kickstarter</a>. I was 24 when I first started working on the idea, and back then I had no idea what I was doing.</p><p>Fast forward to 2025 and I still have no idea what I&apos;m doing, but we&apos;ve come a long way nevertheless. What started as little more than an idealistic open source pipedream has blossomed into a business with $<strong>8M</strong>/year in annual recurring revenue and a full-time team of 34.</p><hr><p>The core idea behind Ghost, in 2013, was a simple one. I&apos;ve always believed that independent publishing on the web is essential, and that the technology behind it plays a significant role in its ultimate success or failure. </p><p>Back then, Vox and Buzzfeed were at the forefront of a major shift in the publishing industry. Being technology startups as much as media companies, their proprietary software was a distribution lever to which the rest of the industry had no answer. They were miles ahead of traditional media orgs, many of whom had only recently been convinced of the need for a website. </p><p>It was as if a couple of outlets had built the world&apos;s first printing press, while everyone else was still sitting around writing out news bulletins by hand.</p><p>The ambition for Ghost was to create a dedicated open technology stack for independent publishers, from solo-creators to large newsrooms, to compete in a fast-moving digital media landscape &#x2013; without becoming beholden to closed networks owned and controlled by private companies like Facebook and Medium.</p><p>A small band of loyal early adopters understood our ideas from the very start, but many were less convinced. They saw these large tech platforms as neutral, benevolent infrastructure providers, unlikely to screw anyone over, for it would not be in their interest to do so.</p><p>That outlook has shifted substantially after twelve years of algorithm changes, data capture, privacy scandals, and business model pivots.</p><p>So, as awareness and interest in independent technology have grown, so has interest in Ghost.</p><hr><p>Over the years, we&apos;ve focused consistently on building the best tools for publishing on the web. In the past 5 years, in particular, we&apos;ve also focused heavily on building ways for creators, journalists, and publishers to run a sustainable business on the web.</p><p>We added paid subscriptions in Ghost a few years ago to allow publishers to charge for their work and, since then, our own growth has primarily been a side-effect of our work to help others grow.</p><p>In fact, we&apos;re about to pass $<strong>100Million</strong> in revenue earned by independent media businesses using Ghost.</p><p>Along the way, we&apos;ve seen a fantastic group of publishers adopt the product. From hard-hitting journalism of <a href="https://404media.co/?ref=john.onolan.org" rel="noreferrer">404Media</a> and <a href="https://www.platformer.news/?ref=john.onolan.org">Platformer News</a>, to political coverage from <a href="https://readtangle.com/?ref=john.onolan.org" rel="noreferrer">Tangle News</a> and <a href="https://www.levernews.com/?ref=john.onolan.org">Lever News</a>. </p><p>From <a href="https://hir.harvard.edu/?ref=john.onolan.org">The Harvard International Review</a> to <a href="https://stanfordreview.org/?ref=john.onolan.org">The Stanford Review</a>, and <a href="https://labs.jstor.org/?ref=john.onolan.org">JSTOR</a> in academia.</p><p>From local journalism at <a href="https://hellgatenyc.com/?ref=john.onolan.org">Hell Gate</a>, <a href="https://kyivindependent.com/?ref=john.onolan.org">Kyiv Independent</a>, <a href="https://manchestermill.co.uk/?ref=john.onolan.org">Mill Media</a>, <a href="https://www.berkeleyscanner.com/?ref=john.onolan.org">Berkeley Scanner</a>, <a href="https://www.dublininquirer.com/?ref=john.onolan.org">The Dublin InQuirer</a>, and <a href="https://51st.news/?ref=john.onolan.org">The 51st</a>, to the latest in music from <a href="https://www.hearingthings.co/?ref=john.onolan.org">Hearing Things</a> and <a href="https://www.drownedinsound.org/?ref=john.onolan.org">Drowned in Sound</a>.</p><p><a href="https://www.ycombinator.com/blog?ref=john.onolan.org">YCombinator</a> runs on Ghost, as do <a href="https://review.firstround.com/?ref=john.onolan.org">First Round Review</a> and <a href="https://www.thediff.co/?ref=john.onolan.org">The Diff</a>, along with the media arms of <a href="https://blog.duolingo.com/?ref=john.onolan.org">Duolingo</a>, <a href="https://www.wealthsimple.com/en-ca/magazine?ref=john.onolan.org">WealthSimple</a>, <a href="https://blog.kalshi.com/?ref=john.onolan.org">Kalshi</a>, <a href="https://updates.kickstarter.com/?ref=john.onolan.org">Cloudflare</a>, <a href="https://spreadprivacy.com/?ref=john.onolan.org">DuckDuckGo</a>, <a href="https://biz.dominos.com/?ref=john.onolan.org">Domino&apos;s Pizza</a>, and (fittingly) <a href="https://updates.kickstarter.com/?ref=john.onolan.org">Kickstarter</a>.</p><p><a href="https://openai.com/?ref=john.onolan.org">OpenAI</a>, originally a research lab, first launched as a Ghost publication before it grew into the $300billion behemoth it is today. At one point, around the launch of ChatGPT, Ghost served more traffic for OpenAI each month than all our other publishers... combined.</p><p>I&apos;m incredibly proud of how far we&apos;ve come as a small, <a href="https://ghost.org/about/?ref=john.onolan.org" rel="noreferrer">independent non-profit organisation</a> shipping <a href="https://github.com/tryghost/ghost?ref=john.onolan.org" rel="noreferrer">free, open source software</a>.</p><p>As ever, we&apos;re competing with prominent, VC-funded platforms with tens of millions of dollars and hundreds of employees, playing zero-sum games to try and control the entire media industry. </p><p>Now, though, it feels like there&apos;s more appetite than ever for something different.</p><hr><p>Incidentally, if indie publishing, open source, and JavaScript are your thing &#x2013; we&apos;re hiring! Our team is fully remote, distributed globally, and passionate about building a healthy future for the open web.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://careers.ghost.org/?ref=john.onolan.org"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Ghost</div><div class="kg-bookmark-description">Ghost is a proud non-profit organisation building open source technology for fiercely independent, professional publishers.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/icon/favicon.ico" alt="12 years of Ghost"><span class="kg-bookmark-author">Ghost</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/thumbnail/homerun-social1615980993full-width.png" alt="12 years of Ghost" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>We&apos;re hard at work, and this summer we&apos;ll be shipping Ghost 6.0 &#x2013; our next significant step forward in publishing. It&apos;s going to be a big one.</p>]]></content:encoded></item><item><title><![CDATA[Centaurs of vibe coding]]></title><description><![CDATA[<p>I&apos;m reading <em>Range</em> by David Epstein at the moment, of which the below is an excerpt. </p><p>I can&apos;t help but draw parallels between the evolution of AI, 10+ years ago, and today &#x2013; if you just switch chess:programming, and freestyle:vibe-coding.</p><p>It feels remarkably similar.</p>]]></description><link>https://john.onolan.org/centaurs-of-vibe-coding/</link><guid isPermaLink="false">67e3d4cfad5d8a0001ee8478</guid><category><![CDATA[AI]]></category><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Wed, 26 Mar 2025 10:45:07 GMT</pubDate><media:content url="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/03/5-3a.Kasaprov_vs_Deep_Blue.1996.CORBIS-L0000314637-007-1024x667.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/03/5-3a.Kasaprov_vs_Deep_Blue.1996.CORBIS-L0000314637-007-1024x667.jpg" alt="Centaurs of vibe coding"><p>I&apos;m reading <em>Range</em> by David Epstein at the moment, of which the below is an excerpt. </p><p>I can&apos;t help but draw parallels between the evolution of AI, 10+ years ago, and today &#x2013; if you just switch chess:programming, and freestyle:vibe-coding.</p><p>It feels remarkably similar.</p><hr><blockquote>In a 1997 showdown billed as the final battle for supremacy between natural and artificial intelligence, IBM supercomputer Deep Blue defeated Garry Kasparov. Deep Blue evaluated two hundred million positions per second, That is a tiny fraction of possible chess positions-the number of possible game sequences is more than atomsin the observable universe&#x2014;but plenty enough to beat the best human. According to Kasparov, &quot;Today the free chess app on your mobile phone is stronger than me.&quot; He is not being rhetorical.</blockquote><blockquote>&quot;Anything we can do, and we know how to do it, machines will do it better,&quot; he said at a recent lecture.</blockquote><blockquote>&quot;If we can codify it, and pass it to computers, they will do it better.&quot; Still, losing to Deep Blue gave him an idea. In playing computers, he recognized what artificial intelligence scholars call Moravec&apos;s paradox: machines and humans frequently have opposite strengths and weaknesses.</blockquote><blockquote>There is a saying that &quot;chess is 99 percent tactics.&quot; Tactics are short combinations of moves that players use to get an immediate advantage on the board. When players study all those patterns, they are mastering tactics. Bigger-picture planning in chess&#x2014;-how to manage the little battles to win the war&#x2014;is called strategy. As, Susan Polgar has written, &quot;you can get a lot further by being very good in tactics&quot;&#x2013;that is, knowing a lot of patterns&#x2013;&quot;and have only a basic understanding of strategy.&quot;</blockquote><blockquote>Thanks to their calculation power, computers are tactically flawless compared to humans. Grandmasters predict the near future, but computers do it better. What if, Kasparov wondered, computer tactical prowess were combined with human big-picture, strategic thinking?</blockquote><blockquote>In 1998, he helped organize the first &quot;advanced chess&quot; tournament, in which each human player, including Kasparov himself, paired with a computer. Years of pattern study were obviated. The machine partner could handle tactics so the human could focus on strategy. It was like Tiger Woods facing off in a golf video game against the best gamers. His years of repetition would be neutralized, and the contest would shift to one of strategy rather than tactical execution. In chess, it changed the pecking order instantly. &quot;Human creativity was even more paramount under these conditions, not less,&quot; according to Kasparov. </blockquote><blockquote>Kasparov settled for a 3-3 draw with a player he had trounced four games to zero just a month earlier in a traditional match. </blockquote><blockquote>&quot;My advantage in calculating tactics had been nullified by the machine.&quot; </blockquote><blockquote>The primary benefit of years of experience with specialized training was outsourced, and in a contest where humans focused focused on strategy, he suddenly had peers.</blockquote><blockquote>A few years later, the first &quot;freestyle chess&quot; tournament was held. Teams could be made up of multiple humans and computers. The lifetime-of-specialized-practice advantage that had been diluted in advanced chess was obliterated in freestyle. A duo of amateur players with three normal computers not only destroyed Hydra, the best chess supercomputer, they also crushed teams of grandmasters using computers. Kasparov concluded that the humans on the winning team were the best at &quot;coaching&quot; multiple computers on what to examine, and then synthesizing that information for an overall strategy. Human/Computer combo teams&#x2014; known as &quot;<strong>centaurs</strong>&quot; &#x2014;were playing the highest level of chess ever seen. </blockquote><blockquote>If Deep Blue&apos;s victory over Kasparov signaled the transfer of chess power from humans to computers, the victory of centaurs over Hydra symbolized something more interesting still: humans empowered to do what they do best without the prerequisite of years of specialized pattern recognition.</blockquote><blockquote>In 2014, an Abu Dhabi-based chess site put up 520,00 in prize money for freestyle players to compete in a tournament that also included games in which chess programs played without human intervention. The winning team comprised four people and several computers. The captain and primary decision maker was Anson Williams, a British engineer with no official chess rating. His team-mate, Nelson Hernandez, told me, </blockquote><blockquote>&quot;What people don&apos;t understand is that freestyle involves an integrated set of skills that in some cases have nothing to do with playing chess.&quot;</blockquote><div class="kg-card kg-product-card">
            <div class="kg-product-card-container">
                <img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2025/03/71FYAS27dQL._SL1500_.jpg" width="1000" height="1500" class="kg-product-card-image" loading="lazy" alt="Centaurs of vibe coding">
                <div class="kg-product-card-title-container">
                    <h4 class="kg-product-card-title"><span style="white-space: pre-wrap;">Range, by David Epstein</span></h4>
                </div>
                

                <div class="kg-product-card-description"><p><span style="white-space: pre-wrap;">Why Generalists Triumph in a Specialized World</span></p></div>
                
                    <a href="https://amzn.to/4iI2KhO?ref=john.onolan.org" class="kg-product-card-button kg-product-card-btn-accent" target="_blank" rel="noopener noreferrer"><span>$9 on Amazon</span></a>
                
            </div>
        </div>]]></content:encoded></item><item><title><![CDATA[Democratising publishing]]></title><description><![CDATA[Thoughts on open source governance and how to create trust within technology, communities, and media.]]></description><link>https://john.onolan.org/democratising-publishing/</link><guid isPermaLink="false">6718765131fdf300012f45ab</guid><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Wed, 30 Oct 2024 13:00:21 GMT</pubDate><content:encoded><![CDATA[<p><a href="https://ghost.org/?ref=john.onolan.org" rel="noreferrer">Ghost</a> is a distributed non-profit foundation which gives away all of its intellectual property under a permissive MIT license. The company has no investors and, in fact, no owners of any kind. I don&apos;t own any part of Ghost, and neither does my co-founder <a href="https://twitter.com/erisds?ref=john.onolan.org" rel="noreferrer">Hannah</a>.</p><p>We currently generate around $7.5M in annual revenue, and have been profitable and sustainable for the past 12 years.</p><p>&quot;Wait, what?&quot;</p><p>I&apos;m glad you asked.</p><h2 id="some-background">Some background</h2><p>Around 14 years ago I was a contributor to the WordPress core team, but a frustrated one.</p><p>I had bought into the idea and the ideology of open source, but over time I&apos;d become disenchanted by the office politics, drama, and conflicts of interest that constantly came to the forefront of conversations in the WP ecosystem.</p><p>Having seen how things worked on the inside for several years, the conclusion I personally came to was that WordPress and Automattic were not truly about democratising publishing, after all.</p><p>At the same time, I felt the product was becoming slow and bloated. WordPress was desperate to no longer be seen as &quot;just a blogging platform&quot; - and so it was adding features left, right, and center, to try and compete with Tumblr, Wix, Squarespace and Shopify. All at the same time.</p><p>I found myself constantly wondering: What could WordPress look like if the product, the technology and the organisation lived up to what I thought democratising publishing actually meant?</p><p>In November 2012, <a href="https://ghost.onolan.org/?ref=john.onolan.org">I wrote a blog post</a> pitching my answer to that question. I called it Ghost, and it was made up of a few core ideas:</p><ul><li>Software focused exclusively on publishing workflows. Not a general-purpose CMS.</li><li>Integrate the most important core functionality natively. Not require 50 plugins for things used by everyone.</li><li>A simple, permissive MIT license. No GPL drama.</li><li>Structured as an independent non-profit organisation. No owners, outside investors, no ulterior motivations, no conflicts of interest.</li><li>A sustainable revenue model with official, managed hosting. Not a giant venture-scale startup, just a simple business.</li></ul><p>Even in 2012, the tensions around these issues were strong enough that the blog post immediately went viral. The idea tapped into something that others had felt too.</p><p>I roped in my best friend and one of the most talented developers I&apos;ve ever known - Hannah Wolfe - as co-founder and CTO, and in April 2013 we launched <a href="https://ghost.onolan.org/?ref=john.onolan.org">a Kickstarter campaign</a> to fund the project and get it started.</p><p>It went on to raise $350,000 over the course of 29 days.</p><p>By the end of 2013, we delivered both the first version of both the product and the managed hosting platform. Just 11 months later, we were profitable and could sustain our open source development work indefinitely.</p><p>The business model was simple: We would make a great open source product that people wanted to use. Those people would need a server to use the product, so we would also sell web hosting. The revenue from our hosting would fund further development of the open source product. </p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2024/10/CleanShot-2024-10-23-at-22.26.41@2x.png" class="kg-image" alt loading="lazy" width="2000" height="1327" srcset="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/size/w600/2024/10/CleanShot-2024-10-23-at-22.26.41@2x.png 600w, https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/size/w1000/2024/10/CleanShot-2024-10-23-at-22.26.41@2x.png 1000w, https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/size/w1600/2024/10/CleanShot-2024-10-23-at-22.26.41@2x.png 1600w, https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2024/10/CleanShot-2024-10-23-at-22.26.41@2x.png 2246w" sizes="(min-width: 1200px) 1200px"></figure><p>Nobody is required to use our hosting. In fact, the majority of Ghost websites in the world do <em>not</em> use <a href="https://ghost.org/pricing/?ref=john.onolan.org" rel="noreferrer">Ghost(Pro)</a> &#x2014; but the ones that do, directly fund the project for the benefit of everyone.</p><p>We&apos;ve grown slowly but steadily since then, only hiring when we could afford to, and today Ghost has a <a href="https://ghost.org/about/?ref=john.onolan.org" rel="noreferrer">full-time team</a> of 30+ people working on it.</p><h2 id="so-how-does-it-all-work">So how does it all work?</h2><p>What confuses people most about all this, understandably, is that we&apos;re a profitable non-profit organisation. Ghost earns over $7.5M per year and is completely self-sufficient, with no outside funding of any kind.</p><p>The term &quot;non-profit&quot; is a blunt, confusing piece of language. Depending on which country you live in, it can even have entirely different meanings.</p><p>For instance: In the US, non-profits are heavily regulated in their operations, and exempt from income tax. In many other places, there are different kinds of non-profit structures that can operate more freely, but are <em>not</em> tax-exempt.</p><p>Across the many different structures, though, non-profits have one thing in common: They don&apos;t have owners. And that&apos;s what matters.</p><p>People often think that &quot;non-profit&quot; means that the company can&apos;t make a profit. It actually means that the company doesn&apos;t have any <em>owners</em> who can personally take the profits. Any revenue earned can only be reinvested.</p><p>Non-profit structures are particularly well suited to companies that specifically want to serve public community interests, like schools, hospitals, local news orgs, and &#x2014; yes &#x2014; open source projects. </p><p>Non-profit orgs still employ people and pay salaries, and they&apos;re generally audited by the government to ensure they&apos;re operating correctly and within reason. </p><p>At Ghost, we receive no tax benefits of any kind, and our annual accounts are subject to a mandatory audit every single year.</p><h2 id="whats-the-point">What&apos;s the point?</h2><p>A shareholder of a for-profit company may decide to cut costs to the detriment of the organisation because they&apos;re motivated to increase profits and grant themselves larger dividends at the end of the year.</p><p>In a company making cardboard boxes, that&apos;s no big deal. Some short-term money will be made and then the company will probably fail. The market adapts.</p><p>In an organisation whose mission is to serve a community, though, the effects of decisions like this often have greater consequences.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://hms.harvard.edu/news/what-happens-when-private-equity-takes-over-hospital?ref=john.onolan.org"><div class="kg-bookmark-content"><div class="kg-bookmark-title">What Happens When Private Equity Takes Over a Hospital</div><div class="kg-bookmark-description">New analysis shows alarming increase in patient complications</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://hms.harvard.edu/themes/shared/harvardmedical/favicon.ico" alt><span class="kg-bookmark-author">Harvard Medical School</span><span class="kg-bookmark-publisher">JAKE MILLER</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hms.harvard.edu/sites/default/files/2024-01/PrivateEquity750.jpg" alt onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://lowninstitute.org/the-rising-danger-of-private-equity-in-healthcare/?ref=john.onolan.org"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The rising danger of private equity in healthcare - Lown Institute</div><div class="kg-bookmark-description">Emerging evidence shows that the influence of private equity in healthcare demands attention. Here&#x2019;s what&#x2019;s in the latest research.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://lowninstitute.org/wp-content/uploads/2019/07/lown-icon.jpg" alt><span class="kg-bookmark-author">Lown Institute</span><span class="kg-bookmark-publisher">Judith Garber</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://lowninstitute.org/wp-content/uploads/2024/01/Wave.png" alt onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>The primary purpose of the non-profit structure is to protect against this and ensure that any decisions made benefit the organisation and its community, not its owners. Ghost has no incentive to slash costs and drive up profits, because it has no owners. It will always be independent.</p><p>The organisation exists for-purpose, rather than for-profit. </p><p>For a cardboard box company that might not mean much &#x2014; but for a school, hospital, local news org, or open source project, it means a great deal.</p><p>It creates trust, alignment, and lasting independence.</p><h2 id="governance-the-road-ahead">Governance &amp; the road ahead</h2><p>The structure we&apos;ve chosen for Ghost &#x2014; a single-entity non-profit organisation &#x2014; has helped us to create a lot of trust and clarity around the Ghost project and the Ghost brand. Neither myself nor Hannah own any shares, assets, domains, trademarks, or other companies related to Ghost. Everything is owned by the Foundation.</p><p>We very deliberately set out to avoid competing priorities and conflicts of interest as much as possible, which created a strong base for us to build upon over the first decade of the project&apos;s life. There&apos;s been remarkably little drama.</p><p>Thinking ahead to the next few decades, what stands out to me as critically important is that Ghost&apos;s governance model evolves as the project does.</p><p>I personally don&apos;t believe you can democratise publishing and serve a community for public benefit unless that community has some influence over its governance. But, the timing and implementation of governance matters, too.</p><p>When a new project is getting started, the most important thing is to just get going. Start doing the thing you said you were going to do. Prove that it works. Prove that people care. Prove that the mission and purpose you&apos;ve chosen is one that matters. When you start out, few people are affected by your decisions, and you&apos;re lucky if anyone cares at all about what you&apos;re doing.</p><p>From the beginning, Ghost&apos;s governance structure has had a board of trustees made up of its two founders, myself and Hannah. This has been all we&apos;ve needed to get started, and looking back over the past 11 years I think we&apos;ve done a fairly good job of stewarding the project so far.</p><p>Looking ahead, though, we don&apos;t think it&apos;s sufficient for where Ghost is going.</p><p>Our intention is that the Ghost Foundation team will never be larger than around ~50 people. This is an artificial limitation we&apos;ve chosen for a simple reason: Running a big company doesn&apos;t seem very fun, tbh.</p><p>We&apos;d rather stay small, be selective about what we work on, and know everybody&apos;s name.</p><p>In the context of an open source project, this decision creates some interesting side effects. For example: If demand for Ghost-adjacent services exceeds what we&apos;re able to offer with our 50-person team, then significant opportunities will emerge for other companies to step in and fill those gaps.</p><p>For about 10 years or so I&apos;ve been telling anyone who will listen that we don&apos;t want to grow a giant company that we control, we want to grow a giant ecosystem that we support. One with a broad range of hosts, developers, agencies, partners and publishers who can build on top of shared infrastructure &#x2014; where our role as a core team is helping the collective ecosystem thrive. Growing a larger market, rather than trying to capture all the value within it.</p><p>To be able to do that effectively, though, we see a need for a more diverse and representative governance structure for Ghost. So, as we reach our headcount limit of 50 people &#x2014; which is likely to happen in the next couple of years &#x2014; our intention is to expand the seats on Ghost&apos;s board of trustees beyond myself and Hannah.</p><p>The purpose of this is twofold: First, to ensure that Ghost remains accountable to its ecosystem, and second, to bring in a wider range of perspectives that can guide the project. We&apos;d like a board that includes people who deeply understand open source, publishing, journalism and technology, ensuring that Ghost&#x2019;s mission is protected and upheld over the long term. We also intend to have some seats be actively elected by the Ghost community itself &#x2014; something which other open source projects, like <a href="https://www.drupal.org/association/board?ref=john.onolan.org">Drupal</a>, provide a great example of.</p><p>By decentralizing control, we hope to prevent any one individual or small group from exerting too much influence over the direction of Ghost &#x2014; including ourselves. This aligns with our belief that nobody should &quot;own&quot; the project or have the ability to steer it away from its founding principles. </p><p>It should also serve as a mechanism for continuity. Projects like Ghost, which are built to last, need structures that outlast their founders. We want to reduce our bus-factor, and we ultimately want Ghost to grow beyond us.</p><p>In short: No &apos;<a href="https://en.wikipedia.org/wiki/Benevolent_dictator_for_life?ref=john.onolan.org">BDFL</a>&apos;.</p><p>Another idea I&apos;m excited to explore is formal Ghost Foundation membership with both individual and company tiers. This is something that organisations like the <a href="https://csa-iot.org/?ref=john.onolan.org">Connected Standards Alliance</a> do very well. As a member, you get benefits such as voting rights on policy decisions, access to licensing and certifications, as well as a community of others who are invested in the future of what everyone is building together. By inviting people within our ecosystem to help shape how we do things, we hope to ensure that Ghost continues to embody the values we set out to champion when we first started.</p><p>We also intend to continue to increase transparency around how we work, how decisions get made, and who makes them. We already publish <a href="https://ghost.org/about?ref=john.onolan.org">public revenue data and live statistics</a>, and we have many ideas for ways to open this up further and do more which we intend to pursue.</p><p>Ultimately, these ideas are a reflection of our desire to democratise not just publishing, but also the governance of the technology that enables it. If we want quality, independent journalism to stand the test of time, we need technology that can do the same.</p><hr><p>These are all things we plan to work on as Ghost grows and we reach ~50 people. We&apos;re not quite there yet, of course, but the turbulence of the past few weeks in open source has raised a lot of good questions from both inside and outside our community. </p><p>So, to answer those questions, it felt like good time to share how we&apos;ve structured things so far, and how we think about the future.</p><p>If you&apos;re a webhost, agency or developer, we&apos;d love to invite you to <a href="https://ghost.org/docs/?ref=john.onolan.org" rel="noreferrer">explore</a> joining us and building within the Ghost ecosystem. There&apos;s a large and increasing amount of demand from <a href="https://ghost.org/explore/?ref=john.onolan.org" rel="noreferrer">publishers</a> moving to Ghost who are looking for <a href="https://ghost.org/themes/?ref=john.onolan.org" rel="noreferrer">themes</a>, <a href="https://ghost.org/integrations/?ref=john.onolan.org" rel="noreferrer">integrations</a>, <a href="https://ghost.org/docs/install/?ref=john.onolan.org" rel="noreferrer">hosting</a>, and <a href="https://ghost.org/experts/?ref=john.onolan.org" rel="noreferrer">services</a>.</p><p>With Ghost&apos;s core team remaining intentionally small, we don&apos;t just <em>want</em> you to succeed. In order for our ecosystem to thrive: We need<em> </em>you to.</p>]]></content:encoded></item><item><title><![CDATA[ProNotes]]></title><description><![CDATA[<p>If you use Apple Notes a lot - this (free!) app/plugin for it makes it 1,000% more useful and usable. It adds a formatting toolbar and inline markdown support, which makes Apple Notes feel a bit more like <a href="https://ghost.org/?ref=john.onolan.org" rel="noreferrer">Ghost</a> or Medium:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.pronotes.app/?ref=john.onolan.org"><div class="kg-bookmark-content"><div class="kg-bookmark-title">ProNotes</div><div class="kg-bookmark-description">Supercharged Apple Notes</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.pronotes.app/favicon.png" alt></div></div><div class="kg-bookmark-thumbnail"><img src="https://pronotes.app/og-main.png" alt></div></a></figure><p>I shared this</p>]]></description><link>https://john.onolan.org/pronotes/</link><guid isPermaLink="false">661f234a98c29500012d258f</guid><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Wed, 17 Apr 2024 01:25:07 GMT</pubDate><content:encoded><![CDATA[<p>If you use Apple Notes a lot - this (free!) app/plugin for it makes it 1,000% more useful and usable. It adds a formatting toolbar and inline markdown support, which makes Apple Notes feel a bit more like <a href="https://ghost.org/?ref=john.onolan.org" rel="noreferrer">Ghost</a> or Medium:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.pronotes.app/?ref=john.onolan.org"><div class="kg-bookmark-content"><div class="kg-bookmark-title">ProNotes</div><div class="kg-bookmark-description">Supercharged Apple Notes</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.pronotes.app/favicon.png" alt></div></div><div class="kg-bookmark-thumbnail"><img src="https://pronotes.app/og-main.png" alt></div></a></figure><p>I shared this <a href="https://www.threads.net/@johnonolan/post/C504VdVrwcM?ref=john.onolan.org">on Threads</a> and someone pointed out another great option called NotesCmdr, which is similar but feels more like Notion:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://smallest.app/notescmdr/?ref=john.onolan.org"><div class="kg-bookmark-content"><div class="kg-bookmark-title">NotesCmdr - Apple Notes Extension</div><div class="kg-bookmark-description">The extension that adds slash commands and markdown style to Apple Notes</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://smallest.app/favicon.png" alt><span class="kg-bookmark-author">Apple Notes Extension</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://smallest.app/notescmdr/assets/notescmdr-prompt.png" alt></div></a></figure><p>Both make Apple Notes infinitely more enjoyable to use.</p>]]></content:encoded></item><item><title><![CDATA[How members got added to Ghost]]></title><description><![CDATA[<p>I was digging through some old design files yesterday and came across two of the first ever sketches I made for the idea of memberships and subscriptions in Ghost, from way back at the very beginning of 2016.</p><p>These seem pretty obvious, now, but at the time nothing like this</p>]]></description><link>https://john.onolan.org/how-members-got-added-to-ghost/</link><guid isPermaLink="false">66197da598fb850001524687</guid><category><![CDATA[Ghost]]></category><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Fri, 12 Apr 2024 18:39:04 GMT</pubDate><media:content url="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2024/04/GK6kmoZbgAAIgDx.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2024/04/GK6kmoZbgAAIgDx.jpeg" alt="How members got added to Ghost"><p>I was digging through some old design files yesterday and came across two of the first ever sketches I made for the idea of memberships and subscriptions in Ghost, from way back at the very beginning of 2016.</p><p>These seem pretty obvious, now, but at the time nothing like this really existed. It&apos;s kind of amazing how close the sketches ended up being to what we actually built.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://pbs.twimg.com/media/GK6kjOibEAAc5MX?format=jpg&amp;name=large" class="kg-image" alt="How members got added to Ghost" loading="lazy" width="1780" height="1444"></figure><p>In 2016 Ghost was a nice, clean blogging platform that worked great, but it didn&apos;t do anything fundamentally valuable or useful compared to [all of the other platforms for writing on the internet out there].</p><p>We hypothesised that anonymous pageviews weren&apos;t particularly interesting, and that meaningful relationships with direct subscribers were. Blogs existed. Newsletters existed. What if the two combined? Ben Thompson was a big inspiration &#x2014; what he was doing seemed like it was the future.</p><p>Now, why was I digging through old sketches? I was actually looking for another one that I made back in 2016 for an entirely different concept. One we&apos;re about to start working on this year. More on that later.</p>]]></content:encoded></item><item><title><![CDATA[A decade after being rejected by YC]]></title><description><![CDATA[<p>About 10 years ago I applied to <a href="https://www.ycombinator.com/?ref=john.onolan.org" rel="noreferrer">Y Combinator</a> with <a href="https://ghost.org/?ref=john.onolan.org" rel="noreferrer">Ghost</a>. At the time we were trying to get $120k in funding for 7% equity &#x2014; but got rejected (twice). So instead we launched on Kickstarter and then bootstrapped.</p><p>Today Ghost has earned over $25Million from customers for 0% equity,</p>]]></description><link>https://john.onolan.org/a-decade-after-being-rejected-by-yc/</link><guid isPermaLink="false">65fdc5ac6815700001b027b3</guid><category><![CDATA[Ghost]]></category><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Fri, 22 Mar 2024 17:57:28 GMT</pubDate><media:content url="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2024/03/1711063068720.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://storage.ghost.io/c/ea/8b/ea8b2b53-5dd6-4318-90a8-6ae8fcf8239f/content/images/2024/03/1711063068720.jpeg" alt="A decade after being rejected by YC"><p>About 10 years ago I applied to <a href="https://www.ycombinator.com/?ref=john.onolan.org" rel="noreferrer">Y Combinator</a> with <a href="https://ghost.org/?ref=john.onolan.org" rel="noreferrer">Ghost</a>. At the time we were trying to get $120k in funding for 7% equity &#x2014; but got rejected (twice). So instead we launched on Kickstarter and then bootstrapped.</p><p>Today Ghost has earned over $25Million from customers for 0% equity, and all of <a href="https://www.ycombinator.com/blog/?ref=john.onolan.org" rel="noreferrer">Y Combinator&apos;s own blogs</a> run on Ghost.</p><p>Most of the time things don&apos;t work out quite the way you thought they would, but often they work out just fine.</p>]]></content:encoded></item><item><title><![CDATA[How web bloat impacts users with slow devices]]></title><description><![CDATA[A great post by Dan Luu looking at the relative performance of different web platforms running on devices with limited CPUs.]]></description><link>https://john.onolan.org/how-web-bloat-impacts-users-with-slow-devices/</link><guid isPermaLink="false">65fca9086815700001b02773</guid><category><![CDATA[Web]]></category><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Thu, 21 Mar 2024 21:48:05 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://danluu.com/slow-device/?ref=john.onolan.org"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How web bloat impacts users with slow devices</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.ghost.org/v5.0.0/images/link-icon.svg" alt></div></div><div class="kg-bookmark-thumbnail"><img src="https://danluu.com/slow-device-performance.png" alt></div></a></figure><p>I love Dan&#x2019;s in-depth posts so much. The amount of detail and care that goes into these is incredible. Also cool to see Ghost up there in the top tier of performance. A few thoughts on that:</p><p>All good platforms rendering a basic page are spitting out cached HTML/CSS. So while they may have vastly different perf at scale and under load, where other things become a bottleneck (often DB connection), a single page load is a more neutral comparison with less variance.</p><p>So what is the variance? As best I can tell: Mostly clientside JS. </p><p>All the modern platforms tend to make heavy use of client side JS libraries like React to render their UI. Discourse, which came out worst in this article, loads an entire Ember.js app to render its front end.</p><p>Meanwhile, all the platforms at the top of the list either have no JS at all, or vanishingly small amounts of it. </p><p>Ghost <em>just</em> creeps into this category, somewhat intentionally and somewhat by luck. </p><p><strong>The intentional part:</strong> we modeled our front end after WordPress circa 2012. Server side templating (but logicless, so more performant) and absolutely zero JS required to render the front end of your site. A theme <em>can</em> sprinkle in JS as a progressive enhancement, but it&#x2019;s not a requirement. </p><p><strong>The lucky part:</strong> we actually do load a little bit of React on the front end these days, but not enough to have a meaningfully negative impact. We essentially have embedded front end widgets for managing components that can&#x2019;t function (well) without JS. Particularly search, member signups/logins, and payments. These are unavoidable for creating the features and functionality that we want to deliver to users, but do add some overhead to the front end for perf.</p><p>I suspect we could lighten them up further by using something like HTMX, which might be an interesting path to explore in future.</p>]]></content:encoded></item><item><title><![CDATA[A new start blog for 2024]]></title><description><![CDATA[<p>At the end of 2023 I started working on a new project called <a href="https://vintas.co/?ref=john.onolan.org" rel="noreferrer">Vintas</a>, a simple hiring platform for remote teams. Initially I shared a few thoughts on <a href="https://twitter.com/johnonolan?ref=john.onolan.org" rel="noreferrer">Twitter</a> and <a href="https://threads.net/johnonolan?ref=john.onolan.org" rel="noreferrer">Threads</a>, but I quickly ran into the same problems I always do when sharing anything on those platforms. </p><p>The algorithms</p>]]></description><link>https://john.onolan.org/a-new-start/</link><guid isPermaLink="false">65ee631f60703a00014856d1</guid><category><![CDATA[Meta]]></category><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Mon, 11 Mar 2024 01:58:53 GMT</pubDate><content:encoded><![CDATA[<p>At the end of 2023 I started working on a new project called <a href="https://vintas.co/?ref=john.onolan.org" rel="noreferrer">Vintas</a>, a simple hiring platform for remote teams. Initially I shared a few thoughts on <a href="https://twitter.com/johnonolan?ref=john.onolan.org" rel="noreferrer">Twitter</a> and <a href="https://threads.net/johnonolan?ref=john.onolan.org" rel="noreferrer">Threads</a>, but I quickly ran into the same problems I always do when sharing anything on those platforms. </p><p>The algorithms are unpredictable. Sometimes lots of people see your posts, sometimes nobody does. The character limits are frustrating. Sharing anything that isn&apos;t shortform sucks, and threaded replies don&apos;t work well.</p><p>So I&apos;m moving here instead. A simple custom <a href="https://ghost.org/?ref=john.onolan.org" rel="noreferrer">Ghost</a> blog, where I can share content of any length - and 100% of people who subscribe, will receive each post.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">Spent the past 10 years hiring for <a href="https://twitter.com/Ghost?ref_src=twsrc%5Etfw&amp;ref=john.onolan.org">@Ghost</a> and I&apos;ve tried dozens of different hiring platforms for tracking job applications. They&apos;re all bloated mega-corp/enterprise nonsense. So I&apos;m building my own, mostly for fun!<br><br>First time WIPing with Laravel+Livewire. Rly cool <a href="https://t.co/OZdi92Ta2u?ref=john.onolan.org">pic.twitter.com/OZdi92Ta2u</a></p>&#x2014; John O&apos;Nolan &#x1F3F4;&#x200D;&#x2620;&#xFE0F; (@JohnONolan) <a href="https://twitter.com/JohnONolan/status/1737146110555144622?ref_src=twsrc%5Etfw&amp;ref=john.onolan.org">December 19, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></figure>]]></content:encoded></item></channel></rss>