Today we released the third major version of Ghost, representing a total of more than 15,000 commits across almost 300 releases. The product is as fast and stable as it has ever been, and now it also has support for memberships, subscription revenue, and API driven modern site architectures.
But you probably want to know about the $5M thing.
About 6 years ago we came up with an unconventional funding idea. We decided that rather than selling share capital and control of a business in return for money to operate, we would instead sell goods and services in return for money to operate. As a result of this choice, we were very fortunate to attract some of the world’s most forward thinking investors to help steer the company: Our customers.
To date, Ghost has made $5,000,000 in customer revenue whilst maintaining complete independence and giving away 0% of the business.
Ghost is now used by the likes of Apple, DuckDuckGo, OpenAI, The Stanford Review, Mozilla, Cloudflare, Digital Ocean, and many, many more — all whilst operating as an independent non-profit organisation releasing open source software.
We care a lot about making great publishing software, but we also care about proving that it’s possible to build a company which is fundamentally good.
If you’re just looking for the highlights of what’s new: check out our 3.0 launch page. What follows below is the extended story of how it all came to be, and everything that went into it.
Ghost 3.0 — The Story
Ghost 3.0 is far and away the biggest release we’ve ever done, in terms of scale. We announced more today in one go than at any other point in our history – and more people were involved in this release than ever before.
Memberships & subscriptions
About three years ago we first started talking about what the next big focus for Ghost might be. We’d done a reasonable job of creating a new publishing tool which was much better to use than the alternatives, but we felt like we were missing out on solving a real, pressing need of modern publishers.
In the conversations that we had with people, one core theme kept emerging that we couldn’t ignore. Everyone seemed to be struggling with a viable business model for publishing, and an editorial strategy beyond trying to compete for as much traffic as possible.
At the same time, a handful of publishers were beginning to have success with a new approach: Selling premium subscriptions to their work, creating a direct relationship with their audience – and providing value to them as customers.
Ben Thompson’s Stratechery proved that this type of business could work with only a single person running it, while Dutch news site De Correspondent quickly proved that it could also function at a national scale, and Patreon began to show that it could work for artists and creators.
These new publishers were bringing the business model of Software as a Service (SaaS) to publishing, and proving that subscription commerce could work in that space, just as it had in software. As a subscription software business ourselves, this was a set of problems we understood all too well, and a set of economics which we knew inside out.
When it comes to subscription billing, the hard part isn’t actually the subscriptions or the billing. The hard part is the publishing platform to integrate with the subscriptions and the billing – that’s the part nobody else is doing – and we were getting pretty good at building a flexible, modern publishing platform.
As of today, Ghost is the first totally independent product out there with publishing<>subscriptions deeply integrated at the core, allowing anyone to build a recurring revenue subscription business.
This is a first release, and one we’re incredibly excited about, but there’s a lot more to come. We think memberships and subscriptions fundamentally changes the relationship between publishers and their audiences in a way which is better for everyone involved.
Ghost in the JAMstack
The second half of the Ghost 3.0 is the shift in how we think about the technical architecture of the product itself. As we talked about earlier in the year, we’ve been keeping a close eye on how modern web based products are evolving. We’ve been particularly excited by the JAMstack movement, which turns the traditional application model on its head:
Make a dynamic app ? Generate cached HTML to make it fast
Generate a static site ? Add dynamic features to make it powerful
This new architecture unlocks content management that is fundamentally built via APIs, webhooks and frameworks to generate robust modern websites. We’ve expanded everything Ghost can do in this space as a headless CMS, including detailed content APIs, admin APIs and custom integrations.
Plus, we now also have native support and documentation for all of the most popular static site frameworks out there:
In fact, all of Ghost.org (including this post) is itself a Gatsby.js app with a headless Ghost back-end where this post was written, deployed statically to hundreds of different locations on Netlify‘s global CDN — connected to our fast growing library of Ghost integrations.
We’ve been really enjoying this new workflow, and adapting Ghost to be a full-featured open source headless CMS wherever possible — because no matter how much you love static sites, code editors and development environments are never the best place to write blog posts.
Continuous theme deployment with Github Actions
One of the most common requests we’ve gotten over the years (understandably) is for a better way to deploy Ghost themes to production. The process of manually making a zip, navigating to Ghost Admin, and uploading an update in the browser can be pretty arduous over time.
Now, a combination of our JAMstack work to make a great Admin API and Github Actions means it’s incredibly easy to continuously sync custom Ghost themes to your live production site with every new commit.
Create a new custom integration in Ghost, copy your Admin API keys into your repository’s Secret tokens, then copy and paste over the template Github Actions
workflow.yaml – that’s all there is to it. Here’s an example.
A brand new WordPress migration plugin
We launched Ghost with a very basic WordPress migrator plugin, which we then proceeded to neglect for about 5 years, making it exceedingly difficult for anyone to move their data between the platforms or have a smooth experience.
That changes today, with our completely overhauled WordPress migration plugin:
The new plugin provides a single-button-download of your full WordPress content image archive in a format which can be dragged and dropped into Ghost’s importer. It’s an infinitely better experience all round, and fully compatible with Ghost 3.0.
Credit for this belongs entirely to Nathan Jeffery, who singlehandedly took on rewriting the plugin for us as an open source contributor. He did an incredible job and we’re immensely grateful for all his help.
How to get Ghost 3.0
All new sites on Ghost(Pro) are running Ghost 3.0. You can spin up a new site in a few clicks with an unrestricted 14 day free trial. If you haven’t tried Ghost for a while, now’s a great time to give it a fresh shot!
Already got a site on Ghost(Pro)? You’ll be automatically upgraded. If you’d like to expedite that process, you can log into Ghost.org and click the “Upgrade to 3.0” button!
Self-hosting Ghost? Upgrading to 3.0 is very straightforward with Ghost-CLI and should take about 15 mins – here’s the Ghost update guide.
What’s coming up next
Ghost 3.0 is our first step into a totally new set of use-cases and features. We’re keen to hear your feedback about using members over on the Ghost forum — or come and help out on Github if you’re interested in being a part of building the next features along with us.
Nearly everything we do is open source, and we can always use the help!
Stay up to date with the latest Ghost news, tutorials and resources. All the best bits, delivered every Sunday.