How John O'Nolan Grew His Publishing Platform to $750,000/year

Hello! What's your background, and what are you working on?

Hello! 👋🏻  My name is John O'Nolan, and I run a not-for-profit technology foundation which makes technology for journalists. Our main product is called Ghost, which is a modern open-source publishing platform.

In the current publishing landscape there are two main choices: (1) old, unfocused open-source platforms which are tired and broken, or (2) new, amazing publishing systems which are completely proprietary and closed. Ghost combines the best of both worlds. A bleeding-edge technology stack, completely focused on the needs of journalists and publishers, released as completely open-source.

We launched Ghost about 4 years ago with a $300,000 Kickstarter campaign. Today, it's a sustainable healthy independent business with $750,000 annual revenue and a team of 10, and users including NASA, Square, Vevo, Sky News, Mozilla, Zappos and so many more.

Ghost's Website

What motivated you to get started with Ghost?

Ghost was born out of frustration with existing solutions. Before starting this crazy journey, I was a very active contributor to WordPress core as the deputy head of the UI group. I watched as WordPress grew up from its humble roots as a blogging platform and evolved into a fully fledged CMS, catering predominantly to business/brochure websites.

My interest, though, had always been firmly in how WordPress was used for publishing and journalism. And so I wondered what it might look like if WordPress was rebuilt with modern technology, eschewing all of the years of bloat, and focused purely on that one use-case. I wrote down my thoughts in a blog post, and about 1 week and 250,000 pageviews later, I decided to start working on the idea properly.

At the time my main job was as a freelance web designer, so I put all of my client work on hold to pursue this idea, and lived off my savings.

What did it take to build the initial product?

Initially I got a ton of offers for development help from people on Hacker News, which materialized to precisely nothing. I emailed my best friend, Hannah Wolfe, one evening complaining about this — when she promptly offered to help out herself. About 24 hours later she sent me an email with an attachment of, which was such an amazing contrast. I couldn't believe she'd actually written code and sent it to me that fast. We've been working together ever since!

We spent the next 3 months after my blog post hacking on a very basic prototype in preparation for the 2nd launch. I had about 30,000 people on a mailing list, at this point, who had expressed their interest from the initial blog post. They all said they would use it. The next question was: Would they also open their wallets? For this, we went to Kickstarter. If we could get enough validation for people to actually fund the development of the software to a production-ready state, then we knew we would be on to something.

Just to give you an idea of how basic the MVP ("minimum viable product") was that we took to Kickstarter: A good 50% of what we showed in the video was faked. It was a real, working Node.js application, but the majority of it was missing. Huge parts of the UI were simply screenshots of UI mockups with loading animations. We knew we could code this if we needed to, but it didn't make sense to put in all that work just to make a video that might flop. So we did the minimum!

What marketing strategies have you used find users and grow?

Our Kickstarter project had an initial goal of about $30,000. We hit that in 11 hours and went on to raise roughly $300,000 via Kickstarter, and another $50,000 in sponsorships after the campaign ended.

Each step in this journey was building an engaged audience following along with the progress of the project.

My blog had a few thousand subscribers who were the first to be notified when I wrote the original idea post. That post had an email signup form which generated about 30k subscribers interested in finding out if it would ever become a reality, and those 30k people were the first to find out when the Kickstarter campaign launched.

When it did launch, all of the press and interest around the campaign further grew that list from 30k up to around 80k, and so when we actually came to launch the first version of the product about a year after the original blog post, we had this huge captive audience of people waiting to hear about it.

As a result, when we finally did launch, we got well over 100,000 signups on day 1. Each step contributed towards the next.

We didn't employ any particularly clever marketing strategies. It was all very logical. Tell people what you're going to make, provide ways for them to be involved and to stay up-to-date on what happens, and repeat. We tried to just keep everything as simple, honest, and high quality as possible.

People are inundated with spammy marketing tactics. Sometimes just being honest and understated garners more respect and interest, in my experience.

How does your business model work? What's the story behind your revenue?

As a non-profit organization, our business model is even more critical to us than most. As a non-profit, we can't take funding and banks aren't keen to loan us money. We knew we had to find a profitable business model quickly, before the Kickstarter money ran out, and this was completely planned from day 0.

Our idea was that we could create a sustainable open-source business with a virtuous cycle, as follows:

  1. Hire amazing developers to release great open-source software that people would love.
  2. Make great software and attract a large number of people who want to use it.
  3. You need hosting to run the software, so offer a premium PaaS ("platform as a service") which makes that easy and affordable.
  4. All of the revenue from the premium platform goes to the non-profit foundation, whose mission is... => Go to step 1.

This was always the plan. We didn't know it would work when we launched, but it was always a model that we wanted to prove.

And we did.

11 months from launch, we hit profitability and became completely self-sufficient.

Ghost's Revenue

Ghost has always had a very organic and steady growth rate. It's not exponential. It's just healthy, steady growth which is 100% ok with us. We now no longer have revenue goals. We just make sure we stay profitable, and beyond that we focus entirely on why we're doing all of this, and what we can build that will make us proud.

One key lesson we learned early on was not to charge too little. $5/month customers are just terrible. They have the highest rate of failed payments, the highest rate of credit card fraud, the highest amount of support tickets submitted, and are the least friendly people. We've doubled our prices 3x since then, and each time we do, we get nicer people who value the product more and create fewer problems.

At this point I would never create a business ever again which charges less than $10/month.

What are your goals for the future, and how do you plan to accomplish them?

Right now we're moving heavily toward journalism and solving the problems in that space. We've just launched a $45,000 journalism accelerator program which I'm incredible excited about. It outlines a lot of our plans for 2017.

What are the biggest mistakes you've made or challenges you've faced?

We made two really critical mistakes early on. The first was subcontracting our business website / billing platform / back-end to be built by an agency in Ruby, when our main language is JavaScript. There was nothing wrong with what they built, it was just that when they were done building... it was impossible for us to maintain. Who'd have thought?

The other one was that we started out on hardware servers. This was right at the early stage of cloud VPS services catching on and becoming mainstream, and we were just behind the curve. It was an expensive mistake.

What were your biggest advantages? Was anything particularly helpful?

We hit a good time in the market where blogging was having a bit of renaissance and was a hot topic. We were also building the first mainstream open-source consumer Node.js application in the world (and now the largest), which was helpful.

Ghost is not a revolutionary idea. It's just a good idea, which was born out of years of experience and a very clear understanding of both the product and the wider industry. Market-specific experience is probably the biggest and most under-valued asset that you can bring to any project. Few people ever talk about it.

Experience is most valuable when it comes to deciding all of the things not to do, because you know where the pitfalls and traps are. The more you know about your market in every possible way, the better.

What's your advice for indie hackers who are just starting out?

Honestly my single piece of advice would probably be to stop looking for so much advice. Shut the fuck up and go and build something.

I see so many people devouring startup books and blog posts and talking about them incessantly. They try to just endlessly research and talk about what works, because they're too afraid to actually jump in and do something.

If you feel like you have no idea what you're doing, well, welcome to the club. None of us have any idea what the fuck we're doing, and anyone who says otherwise is lying. All of us are just guessing, experimenting, trying things. Not a single one of us was ever "sure" or "ready" or "confident" at any point. At a certain point you just have to jump.

Stop reading. Start building.

Where can we go to learn more?

Drop me a line on Twitter or in the comments if you want to chat. But you shouldn't want to chat. You should want to build things! Go build things :)

John S

Want to build your own business like Ghost?

You should join the Indie Hackers community! 🤗

We're a few thousand founders helping each other build profitable businesses and side projects. Come share what you're working on and get feedback from your peers.

Not ready to get started on your product yet? No problem. The community is a great place to meet people, learn, and get your feet wet. Feel free to just browse!

Courtland Allen , Indie Hackers founder

  1. 6

    John, how do you decide what to pay yourself and co-founder?

    1. 1

      Sorry about the slow reply! At the moment we use market rates based loosely on Buffer's salary calculator, nothing too complicated at our current size. In future, if/when the size of the organisation warrants it, we will probably have executive compensation determined by a board of trustees -- which is the same thing for-profit companies do with a board of directors.

  2. 2

    Would you happen to have any suggestions or details on getting those first 30,000 subscribers? Was the big blog post a lucky viral hit or was there a specific promotion strategy?

    I'm particularly looking for repeatable, usable steps although I understand every situation is different and results will vary a lot.

    1. 1

      There was certainly some luck to it, but ultimately it was a combination of things. I had a pre-existing twitter/blog audience of about 15,000 people (built up over about 5 years) which meant I had a sizeable amount of exposure for my initial tweet about the idea. That was the seed which got the initial readers, and then someone submitted it to Hacker News, which was largely responsible for all of the other early subscribers.

      1. 1

        Thanks very much for the reply! My takeaways from this will be:

        • Spend the time to build an audience early
        • When possible use existing audiences in one's network

        Thanks again.

  3. 2

    Sorry for maybe a noob question. But if it's non-profit foundation, doesn't that mean that all money are actually not their own? Or all spare cash just converts to founder's salary?

    I mean if company very successful and you i.e. want to buy yacht or the golden toilet bowl you can't.

    1. 2

      I believe they are an NPDO:

      So all profits get re-invested into their open source initiatives.

  4. 1

    Just an FYI/Observation: The title of this article on the homepage says "How Ghost Makes $750k a Month Building a Better WordPress" but here it sounds like that should perhaps be $750k a Year.

  5. 1

    ah dude "just build something" has not worked for me 10 times already.. I'm not afraid to jump in, but have grown tired of failing so much... fuck this shit...

    1. 4

      Harry Potter was rejected by 12 different publishers, I started at least 7 failed projects before Ghost, Pieter Levels only made NomadList because his last project earned $0.00 so he decided to start 12 new projects, of which most of them failed.

      The difference between success and failure is often whether you learn something and get up to try again, or just say "fuck this shit" and give up.

      You aren't a beautiful unique snowflake that gets a free pass on failure. Don't look at the world around you and assume that everyone else has it easy. We all have problems. We all have failures. We're all struggling.

      Nobody ever said it was going to be easy.

      1. 2

        hehe, great reply. Really I'm still frustrated, but there's no way I'm giving up my dream. Thanks for the pep talk :)

  6. 1

    Why do I feel like Ghost shouldn't be considered "indie"?

    1. 1

      I don't know Francis, why do you feel like that? :)

      1. 1

        Hey @johnonolan I wanted to wish you a happy new year through this old thread because what I wrote here kept bugging me for a while ever since I'd listened to you on the Indie Hackers podcast.

        I heard about how you hustled your way up, I also heard how articulate and measured you are in your thinking and business strategy.

        I ditched my old WordPress blog and signed up to Ghost v3 a few days ago and I've never been more productive.

        I do hope to make great strides too myself this year and what better way to do so than striving to level up by giving props where due. You are the real definition of an Indie Hacker and I have nothing but respect for you, Hannah and the whole team.

        Have an amazing 2020! 🥳

        1. 2

          Hey Fancis, sorry I missed this comment and thanks so much for the lovely followup! Stoked to hear you've been enjoying it - and will pass along your feedback to the team, too :)

      2. 1

        Hi John, as a Node.js dev I love Ghost: - I found it 'performs 40 times faster' than WP. Probably faster. But I'm really not singling out Ghost here, I've been reading Indie Hackers from day 1 and I really connected with it because there were all these other dudes like myself who were doing cool things by themselves, full-time or on the side. Ghost Foundation is a well-established non-profit organisation (which did start out small or 'indie' at one stage) which in my mind, doesn't fit the picture of an "Indie Hacker".