April 29th is a very special day for us. It’s the day on which, two years ago, Ghost launched on Kickstarter and went on to raise $300,000. It’s the reason we’re here today!
To celebrate, we’ve got an enormous post in store for you, sharing exactly how we spent the Kickstarter money1, where we've gotten to so far, and what's coming up next for Ghost.
On April 29th, 2013 - Ghost launched on Kickstarter with an idea for a brand new blogging platform. Just 29 days later it had blown away its fundraising goal by more than 800% and raised $300,000 in the process.
Today we're back to tell you exactly where all that money went and what we've been working on ever since. Strap yourself in!
Here's the breakdown of funding as Kickstarter sent it to us:
- Total pledges: $296,743.12
- Dropped pledges: $13,212.84
- Kickstarter fees: $14,176.51
- Payment processing fees: $10,033.70
- Value Added Tax (VAT): $4,842.04
Total Kickstarter funds received: $254,478.03
After the campaign ended, we were very fortunate that several more large companies were interested in sponsoring Ghost - and we were very pleased to welcome their support.
- Additional sponsorships: $60,448.00
Total funding received: $314,926.03
Startup cost breakdown
This is everything we spent to get Ghost up and running as a company, broken down into individual categories.
- Ghost.org development - $50,977.36
- Ghost.org domain: $33,300.00
- Servers / hardware: $30,839.58
- Ghost(Pro) development - $19,930.53
- Logo / identity: $10,000
- Launch event: $9,385.79
- Trademark: $2,501.51
Total startup costs: $156,934.77
Remaining budget: $157,991.26
Running cost breakdown
Once we were up and running, these were our averaged out monthly expenses to keep the business running.
- Salaries (4 people): $18,000/month
- Hosting: $3,042.68/month
- Software: $534.98/month
Total monthly costs: $21,577.66
Summary & Highlights
Our total startup costs came in at $156,934.77 - leaving a remaining operating budget of $157,991.26 to support ongoing running costs. Employing a team of 4, plus hosting and overheads came in at $21,566.66/month, meaning the remaining funding supported just over 7 months of business operation and development.
A few notes on individual items:
As you can see, we actually paid about 15% of what we raised on Kickstarter straight away to fees, dropped pledges and taxes. This is a monumental amount. We weren’t prepared for just how high this would be by any stretch of the imagination. This was a tough lesson which was only offset by the fact that we did an extra round of private sponsorships which made up the difference.
One of the best decisions we made was not to have any physical rewards. There are too many stories of projects who spend 3 months and 50% of their funding making tshirts and dealing with shipping problems instead of working on their project. Avoiding this pitfall was important.
The only exception where our rewards included something that was not the product itself, was the launch event. This was explicitly included in all rewards over $1,000 (which is to say: it was something which people deliberately backed and paid for to happen). As backers at this level made up $85,000 of the total funding, the $9,300 launch event expense was easily paid for and also generated great launch PR including national media coverage.
Investing in assets
We spent $66,641.09 on capital assets (servers, domain name and trademark). Assets are things which have and hold explicit monetary value, which is to say: You can sell them at any time and get some (or all) of your money back. So this money isn’t “gone” - it’s simply tied up. The servers depreciate in value as they get older (they’re worth less and less), but the domain and trademark appreciate in value as the brand grows (they’re worth more and more).
By spending ~$30,000 on servers up front, we reduced our monthly infrastructure costs from about ~$20,000 to ~$3,000. We host 16,000-20,000 full stack Node.js applications at any given time. The high resources required here are the trade-off which comes with hosting independent managed apps vs a single large multi-tenant install: You get much more freedom to allow people to write 3rd party code and run an independent site - but - the baseline cost for each of those sites is much higher.
The Ghost.org domain was a far more contentious matter. Owning ghost.org vs tryghost.org wouldn’t increase our income at all. If we had only received income from Kickstarter backers, who expected us to spend their hard-earned money on what we’d promised to deliver, we would have let this one go. Fortunately for us, we had additional sponsorship capital to work with following the Kickstarter campaign which gave us some added flexibility. So we decided to go for it.
Originally, the gentleman who owned Ghost.org wanted close to $100,000 for it. After a long negotiation we managed to get him down to $33,300 and we felt that price was only ever going to go up as Ghost became bigger and more well-known.
It was a really hard decision to let go of such a large sum at such an early stage, but we felt that the long term investment in the brand was ultimately worth it. Looking back now and imagining what the price might be if we tried to get the domain 2 years later, we're very, very happy we did this back then.
Ghost.org & Ghost(Pro)
We spent $70,907.89 on subcontracting to build Ghost.org and Ghost(Pro). The vast majority of this went to our friends at aTech Media, who were one of the first companies who stepped up to back Ghost’s Kickstarter campaign at the partner level. They gave us incredible development rates to build a platform whose size and complexity should have cost many times more.
As the vast majority of our Kickstarter reward deliverables comprised of Ghost(Pro) hosting credit - we absolutely had to get this right.
Having an incredible second team building our infrastructure meant that our tiny team of just two full-time developers could devote all of their time to building Ghost itself.
All of this happened in an absolutely break-neck timeframe. From June to September 2013 (4 months), Hannah and a small team of contributors built Ghost 0.3 while aTech built Ghost.org. Then from October to January (4 months), Hannah, Sebastian and a slightly larger group of contributors built Ghost 0.4 while aTech set up 11 servers, 2 switches, and an enormous system to deploy and manage thousands of Ghost(Pro) blogs.
It was a race to get everything up and running as quickly as possible so that we could start generating income to support the long-term future of Ghost with healthy, recurring revenue. As a non-profit organisation, there was no possibility to raise a round of venture capital when the money ran out.
We had a hard deadline with a short runway & just one chance to do it right.
Nothing can prepare you for that sort of pressure. You throw all of your time and energy at an idea which you think will work, and you hope will work, but of course there is no guarantee that it actually will work.
Commence: Blood, sweat, tears.
We would have hit profitability right on target at 7 months, but we decided to grow the team by 2 more people in the summer - meaning we eventually hit profitability at the 11 month mark in December 2014.
At this milestone, the Kickstarter campaign and everything around it became an official success. We hadn't just built one product and delivered it to our backers, we'd managed to create a sustainable open source business which would keep on going and last for years to come.
Where we are now, and what’s next for Ghost
Two years ago I laid out a plan for what we were going to build that was based on my very first blog post about the idea of Ghost. Now seems like a good time to take stock of how much progress we’ve made towards that initial vision.
Ideas evolve and grow as you work on them, so the longer you spend refining and exploring them - the more they change in shape and scope.
There are also some things which were in the original plan which have turned out to be a dramatic failure. This list is shorter, but far more painful. The long-promised and long-awaited dashboard - and of course: apps for 3rd party integrations. It’s been two years and we’ve failed to deliver - so it’s time to hold ourselves accountable and explain why:
Both apps and the dashboard are massive (extraordinarily large) projects, and we just haven’t had the resources to build them. Our team still comprises of just 3 full time developers, 1 support, 1 ops, and 1 designer running the entire open source project as well as the enormous infrastructure that powers Ghost.org and Ghost(Pro). We bit off a big challenge and we’re chewing like crazy, but these two projects have (so far) proved to be too much for us.
Our biggest failure has been to keep on promising that they’re coming “soon” and not being honest about this. That ends today.
Here’s the skinny on each of them:
The scope for apps is BIG and, in short, we’ve been floored with its complexity. When you’re writing code for a single product it’s relatively easy to ship something small and then iterate upon it. But, when you’re writing code to be used by hundreds (or thousands) of 3rd party developers - it comes with a lot of baggage.
Whatever we build is something that people will depend on: we can’t just change whatever we like. This means that we have to spend a very long time considering all the possibilities so that we don’t build the wrong thing and back ourselves into a corner further down the line.
One might argue, however, that it’s better to build something and have it break later - than to build nothing at all.
And one would be correct.
We are going to deliver the first iteration of apps this year. No more waiting around and no more excuses. We're going to start out with a new approach very similar to how Atom built their own package manager. Initially it will only support free (not paid) themes and apps. After that we'll see where we can take it.
This is a difficult conversation to have. When I first came up with the idea for the dashboard it was fresh and exciting. Oh how we frolicked together, flirting with the idea of beautiful stats right in your blog’s admin area. Taking long walks on the beach, imagining all of the possibilities.
But, as time went on, the relationship started to lose its spark. Doing third party analytics integration is a mammoth task with an infinite number of pitfalls and complexities. The best scenario is that you simply have duplicated set of data to what you already have in other places. The worst case scenario is that the whole thing breaks in any number of ways, and it’s of no use at all. It’s an obscenely large amount of work for very little payoff.
The writing has been on the wall for a while now, and I’m afraid it’s not you - dear dashboard - it’s us. We’re breaking up with you.
We are going to do a lot of work on integrated post analytics in future. Allowing you to see who is visiting your blog, what they're reading, for how long, and what they do afterwards are all of massive value and importance. But we're no longer going to pursue the idea of pulling in 3rd party services onto a unified visual dashboard.
If you still want a dashboard like the the original concept for your blog right now, there is a pretty awesome solution already available: Geckoboard have been offering this for years (that's where the original dashboard idea came from!) - and they do an incredible job. We can’t recommend them highly enough.
We’re deeply sorry that we took so long to admit that this concept was out of reach for us. We’ve learned a great deal in the process, and we’re working hard to improve how we communicate planned features in Ghost to make sure this doesn’t happen again.
Today is Ghost’s 2nd birthday, and the start of its 3rd year of life. In the last year alone so many incredible people have started using Ghost for their blogs: Sky News, Square, NASA, The Bitcoin Foundation, Graze, CodeStarter, Coinbase and Layer to name just a few.
If there’s anything that the last 2 years have taught us, it’s that it’s impossible to predict everything that’s going to happen in the next 12 months - so (for a change) I’m not going to try.
But, I will share what our main focuses for this year are. The main areas where we hope to make the most progress:
- The Ghost JSON API & Apps
- Big improvements to our admin UI
- A significant upgrade of Ghost(Pro)
If you want to keep track of progress, we have an open ideas page where you can submit (and vote on) your ideas for Ghost - as well as a public roadmap showing the exact things we’re working on now and next.
Our biggest challenge, as ever, is doing a very large amount with a very small team. To that end, we always welcome more contributors to help us build Ghost for everyone.
If you want to help, the most amazingly useful thing you can do is to choose to run your blog on Ghost(Pro).
Our hosted platform is what funds the entire Ghost Foundation, and the more it succeeds, the more developers we’re able to hire full time to work on Ghost. You can see every single bit of revenue coming in from Ghost(Pro) on our public revenue dashboard. This is the biggest contributing factor to how fast we’re able to grow and how much we’re able to accomplish.
Thanks for joining us for the first 2 years, and here's to the next 2.
A small favour
We’d love your help to share our birthday celebrations, accomplishments and plans for the future!
Here’s a pre-written status, to make it extra simple:
2 years old and @TryGhost just did a $314,926 transparent Kickstarter funding breakdown to celebrate! http://blog.ghost.org/year-2/
We'll be hanging out in the comments if you have any questions or thoughts! We're also having a party in our Slack Team which you're welcome to join!
We do business in GBP, USD and EUR, so all figures in this post are approximated USD equivalents based on exchange rates at the time of the transactions. We’ve tried to be as precise and accurate as possible in all areas, but it’s near impossible to be exact. ↩