Hello! What's your background, and what are you working on?
Since 2013 I've been working on Discourse, an open source discussion platform. We run a hosting business with about 600 customers; our current income is approximately $120,000/month and doubling every year.
What motivated you to get started with Discourse?
Stack Overflow is an amazing tool if you want highly structured Q&A with a strict focus on learning. But it's not exactly social, and it only works on topics that are strongly centered on data, facts, and science. I wanted to build open source discussion software that could work as a flexible building block for all communities.
After I left Stack Overflow in 2012, people would sometimes ask me for advice. I must know what I'm doing, since I was successful, right? Well, I don't know about that… but I do know that the best way to succeed in what you're doing is not to ask some fancy "expert" like me, but to ask your customers, your fans, your users, your patrons, your .. own community!
Sure, they'd say. Great idea. What software do we use to do that? Then I looked at the state of forum software in 2012 and I had a bit of a sad, because it was incredibly awful. There wasn't anything I could recommend that I wouldn't be completely embarrassed to install on my own server.
I set out to change that. Inspired by the WordPress model, I wanted to build next-generation community software that we could all be proud of, that was built for the next decade of the internet and competitive with the Twitters and Facebooks and Snapchats of the world, that was completely open source, and free to everyone forever.
What went into building the initial product?
I had been thinking about this for a few months after leaving Stack Exchange. In March 2012 I randomly met Robin Ward, my technical co-founder who previously built ForumWarz, a web-based game about forum culture with its own custom forum alongside. Basically the equivalent of having a PhD in online discussion! I couldn't have had a more perfect co-founder dropped in my lap if I had made one up, fan fiction style.
I viewed this as the universe telling me, yes, you must proceed with this project! We both loved forum communities as the dark matter, the B-movies of the web, but we were so tired of terrible forum software. We shared a passion for building something amazing. We built a prototype in a few months in Ruby and (a very, very early) Ember.js and began looking for seed funding.
Given my previous success (and of course the totally radical awesomeness of our demo), I was able to secure seed funding within a few months to give us sufficient runway for two years. Soon after that we added a third technical founder, Sam Saffron, who I previously worked with on Stack Overflow, and we continued building toward our initial release. In the final run up to the release we hired our first employee in December 2012, Neil Lalonde, for a team size of four.
How have you attracted users and grown Discourse?
Discourse is an open source project so we didn't need it to be "done", we just needed it to be in a releasable beta state. We finally released Discourse 0.8 on February 5th, 2013. Remember, if you don't release something you're slightly embarrassed about, you released too late! And it was indeed pretty embarrassing!
But we got press, and people were interested. We had a lot of warnings around how beta it was though. How painful was it gonna be to use Discourse this early? I quoted Mr. T:
We didn't plan to have paying customers for about two years as we figured out what we were building and how it worked, plus solicit open source contributors and generally grow the project. Thanks seed investors!
We also focused on getting three big beta customers who, in return for running our rather raw beta software on their real live sites, we promised white glove anything goes support and free hosting for two years, and then at considerably reduced rates thereafter. I'm a big believer in the rule of three, which lets you get past that initial "am I building this for just me?" hurdle.
Behind the scenes we started soliciting paying hosting customers as a new year's goal for 2014, via a pretty awful ad-hoc Google Docs form. We closed our very first paying enterprise hosting customer in January 2014. At the time we were doing only wire transfers and ACH for a term of a year to keep things simple. It wasn't! But it got us valuable exercise in taking money from customers and beta testing what our hosting service was going to be.
By the end of August 2014 we released Discourse 1.0 which we felt was finally good enough to formally release and offer a real hosting service, with a proper signup form and proper automated monthly billing with Stripe. So much easier. Sure, you give up 2.9% of your income, but I'd gladly do that for the ease of automatic billing and receipts. At this time we only offered two tiers of service: $200/month for business and $,1000/month for enterprise.
At our two year anniversary on February 5th 2015, we scaled up our hosting such that we were able to add the $100/month standard hosting plan. By this point we were up to $40,000/month in hosting revenue. As I saw it, we had two jobs:
- Make sure the open source version of Discourse is relatively easy to install, understand, and troubleshoot. If people can't understand it, or it's hard to support, it won't get used. Open source is advertising!
- Make sure our hosting platform is as reliable, easy, and simple to get started with as possible. Grease the customer acquisition funnel and polish it to a mirror sheen so nobody escapes! Muahahahah!
I'd give us a definite, solid A on the open source side, but the cobbler's children had no shoes on the hosting side, at best a C. We took far too long to hire a real professional sysadmin and the wheels were constantly coming off the bus in terms of building just enough hosting infrastructure to support our growth levels.
We were finally able to obtain the discourse.com domain (at considerable expense) on February 5th 2016, and by then we were up to $80,000/month in hosting revenue and our team had grown to nine people, including our first full-time sysadmin. We colocate all our server hardware to offer the best price/performance, and we made big investments in new servers to support our growth.
As of today we're at around $125,000/month in hosting revenue, and we are about to close our first very large client that will nearly grow our income by 25% alone. I expect we'll easily make it to $160,000/month before 2018.
What are your goals for the future, and how do you plan to accomplish them?
We have one big goal: to be the WordPress of community. WordPress is our spirit animal, at least WordPress from 2010 onward. Whenever someone says, "How about a blog?" (to the extent that people still say this, I guess) the obvious choice is WordPress. Whenever someone says, "How about a community?" the obvious choice should be Discourse.
There are definite parallels here with Discourse becoming more of a general purpose CMS, like WordPress did. We've already taken steps in that direction with official plugins that go beyond basic discussion to let you...
- assign topics to staff (ala Bugzilla, Jira)
- vote on topics that represent features (ala UserVoice)
- mark posts as the official solution (ala ZenDesk)
…and so on.
We are a bit like Trello in that we are the lightweight version of all these things, plus you get unicorns, rainbows, and a real community — if you want it.
What are the biggest challenges you've faced and obstacles you've overcome? If you had to start over, what would you do differently?
I radically underestimated the amount of devops/sysadmin work in a hosting company. If I had to do it over, I'd hire a full time sysadmin much earlier.
While we do emphasize that everyone that works at Discourse (with 1 or 2 exceptions) has to be devops capable, there's only so far you can get with people doing part-time work on infrastructure versus moving the open source project forward.
I also didn't completely understand how difficult it is to sell "community" as a feature that companies would want. If you consider the Maslow's Hierarchy of Needs at any given company, "community" barely rates.
We've been clawing our way up the hierarchy by focusing on more immediate problems that Discourse can solve for you: How do customers get support? How do your customers market for you? How do your customers help each other? How do you talk to your customers to know what to build in the first place?
We recently relaunched discourse.org with more of a focus on what problems Discourse can solve for you versus the abstract benefits of "community".
What were your biggest advantages? Was anything particularly helpful?
I believe there are significant network effects from discussion software and the communities that form around those discussions. The more people see it, the more people join, the more people use it, the more people are exposed to it, and want it for their own site/business/club.
Focusing on the free open source side definitely kept us honest. If people aren't willing to install and use your software for literally nothing, how can you possibly expect them to pay you anything for hosting it? I also love that we are able to give our software away to the people that truly need it and can benefit from it.
What's your advice for indie hackers who are just starting out?
Don't target the low end market if you can avoid it. One of the best pieces of advice I ever got was early on when talking to someone about low-cost forum hosting. This guy basically grabbed me by the lapels and gave me a thousand yard stare and said SWEET JESUS WHATEVER YOU DO, DON'T DO LOW COST FORUM HOSTING! This... turned out to be excellent advice!
We started with a $200/month business plan that immediately ruled out customers without money. Businesses have money, and they're plenty willing to pay you if you can solve a problem they have! Individuals are constantly looking for low cost shortcuts. Sell to other businesses if you can, customers that won't flinch at $200/month — which isn't really that much! Sell to people who have money!
And of course we have the open source version for people with low or no budget, and our free GitHub program for popular open source communities.
You see your product every day. The rest of the world doesn't. Never forget that the new user experience is, for the vast majority of people that will ever see your software, the only experience they will ever have with it. If you want to make your product better, faster, instill a strong focus at your company on new user feedback.
As a part of every release we also set up a brand new Discourse instance from scratch — both the "install yourself" version, and on our hosted platform — and think hard about how every single step of that process could be improved, made easier, or better yet, how the software could take care of it for you. We can't snap our fingers and magically generate a vibrant community for you, but we want to give you the best possible chance of succeeding with whatever sort of community you want to build. We chose the company name Civilized Discourse Construction Kit, Inc for aspirational reasons, and we aim to live up to that.
Never underestimate the power of greasing and polishing your sales funnel to a mirror sheen! Even little stuff works. For example, for the longest time we required potential customers to have a domain name set up before they could sign up for a Discourse trial. This was so, so dumb! I still hang my head in shame over this!
We now offer people a
*.trydiscourse.com temporary domain at signup so they can get started with the software immediately and not dink around with bunch of obscure DNS settings before they have a chance to even look at Discourse.
I love showing up to work every day on this problem. To me the internet was founded on these vibrant communities that let their freak flag fly, communities that own themselves, that don't belong to Facebook or anyone else. I would do it even if nobody paid me. I love building this thing!
Where can we go to learn more?
To be honest, I am not very good at "the business," but I've gotten a lot better at expecting to get paid for delivering an excellent product and hosting it reliably. If you have any questions, I'd be happy to answer them!