Embed URL

HTTPS clone URL

SSH clone URL

This is the text of the keynote I gave at Startup Riot 2009. Will update when

video becomes available.

Hi everyone, I’m Chris Wanstrath, and I’m one of the co-founders of GitHub.

GitHub, if you haven’t heard of it, has been described as “Facebook for developers.” Which is great when talking about GitHub as a website, but not so great when describing GitHub as a business. In fact, I think we’re the polar opposite of Facebook as a business: we’re small, never took investment, and actually make money. Some have even called us successful.

Which I’ve always wondered about. Success is very vague, right? Probably even relative. How do you define it?

After thinking for a while I came up with two criteria. The first is profitability. We employ four people full time, one person part time, have thousands of paying customers, and are still growing. In fact, our rate of growth is increasing – which means January was our best month so far, and February is looking pretty damn good.

So, we’re profitable. Check.

The second criteria I came up with is being invited to keynote at Startup Riot.

Again, check.

Success.

Seriously though, I don’t believe we’re successful yet. Success to me isn’t about money and it’s not about keynotes. Success is about being able to fall asleep at night without your mind racing with new ideas. Success is not worrying if the new feature or bugfix is going to be a huge hit. Success is no longer working as hard as possible to convince someone your site is worth trying, that it will make them happy, even if they’re not going to pay you any money.

Frankly, success sounds pretty boring. I’m much more interested in the f word: failure. It’s always portrayed in our culture as a bad thing, but I have my doubts.

GitHub’s story is one of many, many failures. My part in it even begins with one. See, when it comes to being an employee, working in a cubicle, showing up at 9 and leaving at 5, I’m a complete failure. I just can’t do it. It sucks.

I’m not saying working in a cubicle is inherently bad. I’m just not good at it. Some people are good at sports. Not me.

After realizing and struggling with this, I quit my corporate job in early 2007 and started a consulting company with my good friend PJ Hyett. We had an idea and a gameplan: we would do the consulting thing for the next few months, save up money, then work full time on our own website. It would be entirely self funded.

It was our path to freedom. Being our own bosses.

Consulting was not much better than working for a big company, but it paid pretty well and gave us time to develop our idea. If we were patient we’d be able to pull this thing off and retain full ownership.

The idea was FamSpam. It would be like Google Groups but simpler, with an emphasis on photo sharing. For families. We’d explain the site to people we met at restaurants or bars and they’d love it. “Oh, my whole family would use that!” they’d say. “I would pay good money for that.”

They didn’t. Pay attention to what people do, not what they say. There’s a big difference there.

My mom thought it was a great idea. And so did we. But what we didn’t know at the time is how little the idea matters.

After a few months consulting we had enough money to devote our full attention to FamSpam. The plan was to work on it full steam until we ran out of cash, then start consulting again. We’d flip back and forth until FamSpam made enough money to support both of us. A noble goal.

We “finished” and the launch came and went. We were not making as much money as we thought we would. We weren’t even getting as many signups as we anticipated. People demanded grandiose features we didn’t have the time to implement. Our cash reserves were running low and we soon needed to return to consulting. Which was always part of the plan, but I had hoped we’d be optimistic about FamSpam’s future when that time came. We were not.

What went wrong? So many things. I could blame our market research or our promotional site, or our target demographic, but really it’s our fault.

We weren’t in love with FamSpam – we never were. We thought it was a great idea, and maybe it was, but it was a great idea for our parents. For our families. For other people. Not for us.

It wasn’t a site I would check every day. It wasn’t something my friends would use ever.

I’m going to continue, but to me this is the most important point so far. The biggest failure. I wasn’t in love with the company I was trying to build. I was excited about the prospect of doing well, but I wasn’t excited about the site in the same way I get excited about Twitter, or new technologies, or flying to Atlanta and meeting new, like minded people. I thought FamSpam was kind of cool, but kind of cool doesn’t cut it.

And even if FamSpam had worked, I would have been in a very similar situation to my corporate job. I may not have been working 9 to 5, but I still wasn’t really passionate about my work.

I now realize that’s really what I’m a failure at: I do believe I can do the 9 to 5 thing, I can fill out expense reports, and I can participate in the corporate blood drive. But I can’t spend my life doing something I don’t love.

I think most people feel this way without realizing it.

Okay, so what what else f’d FamSpam?

It was a walled garden. The only way we’d get more users was through advertising or mentions on blogs. People would have to love FamSpam so much that they’d take the time to write about it and tell others how great it is. They’d have to email their friends about FamSpam specifically. They could never share what they did on FamSpam with anyone outside their family – everything was private.

Compare that with YouTube. YouTube didn’t get big because everyone emailed their friends about how great a website it was – YouTube got big because everyone emailed their friends funny videos hosted on YouTube. If you uploaded a video, you could share it with the whole Internet. It’s “look at this cool thing I did,” not “look at this neat website someone else made.” Let’s call it ‘the YouTube Effect.’

Assuming FamSpam was blogged and emailed about without the help of the YouTube effect, what would happen then? Someone would write about the site and their friend would sign up, but the two would never interact. If I convince you to join FamSpam, I get nothing out of it. It’s not like Facebook – if you and I are friends, I have a vested interest in getting you on Facebook. I can publicly humiliate you on your wall, share photos with you, invite you to events, and get reminded of your birthday. The more friends I have on Facebook, the more useful Facebook is to me. Let’s call this ‘the Facebook effect.’

Now there are other ways to get customers, obviously, but I point out the YouTube and Facebook effects because FamSpam has neither. GitHub, however, has both.

GitHub started over some beers after a local tech meetup. Tom Preston-Werner, who I knew and respected, started talking with me about an idea he had. It was similar to a project I was working on in my spare time, though his was broader in scope. And very interesting.

We both were frustrated with the current state of affairs related to this new “Git” technology and wanted to fix it. We had an itch that needed scratching.

Within a few days we had started working on this new GitHub project together. We’d meet up on Saturdays, have brunch, discuss ideas, then work the rest of the afternoon on the site. The other six days of the week, I was working on FamSpam with PJ.

After a short amount of time we were able to use GitHub for the development of FamSpam. We spent a lot of time tweaking the UI and navigation – we were our own alpha testers. If I didn’t like something, I could spend a few minutes fixing it when taking a short break from working on FamSpam.

One Saturday we had the inevitable “money” talk. Were we going to charge for GitHub? Take funding? Would it be a 50 / 50 split? Should we give it away for free?

At this point, Tom had already sold a company called Gravatar to WordPress. He spent a lot of time running Gravatar, which is pretty popular, by himself for free. He charged for premium accounts, but they didn’t pay the bills. Most people used the free plan.

It was a no brainer to him: don’t give something away if it’s going to be a huge pain in the ass to run and maintain. People will pay for quality – especially if you’re handling the pain they’d otherwise have to deal with.

So, okay. We’d charge a few bucks for it. We’d hopefully make enough money to pay for the servers and some beer. Hopefully.

The FamSpam launch came and went, and you all know how that went. In the weeks after I ended up spending too much time on GitHub because it was more fun and something I wanted to use daily. I wanted to start using it with friends. And I still didn’t realize what that meant.

At another tech meetup we added the invite system then launched the GitHub beta. Some people started using it, they said they liked it, good job guys, yada yada, but then he strangest thing happened. We begun getting emails saying, “I love GitHub. Can I start paying you guys now?”

Those were very interesting days. The beta system would just email me directly – it was pretty ghetto. As a result, I started waking up in the morning with dozens of emails flooding my inbox requesting accounts. My personal account – we didn’t even have official looking GitHub email addresses then. Without fail, one or two in the mix would be asking how to send us money.

All we could do was tell them to wait until the GitHub launch.

Shortly after the beta began, we noticed the YouTube effect. People were blogging about the cool things they were doing on GitHub – not about GitHub itself. We’d get huge traffic spikes from people writing blog posts announcing their project or idea, with a single, casual link to the project on GitHub. Even better, we’d get tiny traffic spikes in great numbers from less notable projects doing the same. More and more people were blogging about their cool project on Github. Showing off.

You didn’t need a beta to use GitHub. Only to make an account and share. People with accounts could share with anyone. This was pretty key.

After the YouTube-like blogging came the Facebook effect. Once a project was hosted on GitHub, it made a lot of sense to invite the other people involved. The more, the merrier.

Like the YouTube effect, this was not something we had planned for or anticipated. We were just trying to make a site we would use and love. Turns out, you’re not all that different from other people living similar lifestyles. If you love something, chances are others will, too.

Something that was intentional, however, was our invite system. During a consulting gig I was introduced to the concept of “artificial scarcity.” When you control the means of production, you can limit production to make a product seem more valuable.

Just look at the Wii. Or, more appropriately, gold in World of Warcraft.

So during the beta, our invite system was modeled after Gmail’s: once you received an invite and signed up, you could then invite five others. This meant people would be asking for GitHub invites on Twitter, mailing lists, and message boards. There’d be entire threads devoted to people asking for GitHub invites. It wasn’t hard to get an invite, you just had to ask.

We could have given invites to everyone who asked, but this gave us free publicity and made the invites more desirable. Hey, these invites are rare and I got one – why not give this GitHub thing a try?

By the way, if you do it this way, and even if you think it’s a lame marketing move, make sure to personally invite famous people in your industry. Otherwise some will think you’re intentionally snubbing them. And be careful not to be spammy, or they’ll get even more upset. Politics.

Politics, I’ve learned, are important. It’s romantic to think two guys with a consulting business can start a mailing list for moms and take it to the top by themselves, but the reality, in my experience, is that you need friends. You need people rooting for you and you need people who can grant favors.

I’m not sure what GitHub would look like today if it wasn’t for Engine Yard, or some key members of the Ruby and JavaScript communities. It’d probably look like a neat website and not a profitable company.

So we had friends, momentum, various effects I made up named after famous unprofitable web 2.0 companies, and artificial scarcity working for us. And this was all a month or so after FamSpam launched.

I decided the smart thing to do, the rational thing to do, the sane thing to do, was to stop working on FamSpam and devote all my time to GitHub. To anyone else it may have sounded stupid, irrational, and crazy – we had just spent thousands of dollars and who knows how many hours developing FamSpam. It had barely been live for a month. My mom really liked it.

But sometimes failure is a good thing.

PJ soon joined GitHub, too – we needed his skills and there was no delusion about which of the two sites (FamSpam or GitHub) was the better bet. In April we launched the site.

What’s a launch and what’s a beta? A beta is where everyone can use your website for free. In exchange, they put up with bugs. A launch is where you start charging for your website. In exchange, you fix the bugs. Something like that, at least.

We spent a lot of time before April trying to come up with our business model. It’s not easy. We knew people were willing to pay, but how much, and for what? What would a small business owner pay for his employees to use our site? What would a hobbyist spending his free time on GitHub pay?

We were thinking way too hard about it, for too long. The answer was right in the mirror. We just needed to figure out what we’d pay for GitHub – we were small business owners and hobbyists. We built GitHub for ourselves.

Turns out we were a bit off. But that’s the beauty of the web, or startups in general – we conceded to the biggest complaint people had about our prices on day one and changed it immediately. It’s okay to screw up, there’s no shame in being wrong. Especially when being wrong means making more money.

We did not make hundreds of thousands of dollars that first day. There were no GitHub private jets chartered. But we made enough to know this was for real. We were onto something. All we had to do was not screw it up.

It was after our launch when we really begun to analyze what had brought us to that point. What had worked and what didn’t work. All the luck that was on our side.

There has been a tremendous amount of luck involved so far. But you don’t get lucky sitting in your basement watching DVDs. You get lucky by seizing opportunities and working your ass off. Or so I like to think.

What we all decided was to stay cheap, stay nimble, and continue doing exactly what we had been doing: building the most awesome website we could imagine. Adding features we wanted to use, not features we thought would make us money.

I said it before and I’ll say it again: the most important thing I’ve learned is to love what you do. I’m one of the ten most popular users on GitHub, not because I’m a founder, but because I’m a heavy user. I’ve had weeks where I got totally addicted to the site and didn’t get any work done. At our company, that’s a good thing.

After all, we had proven that building the most amazing features imaginable would make us money. We had no data available on whether building features specifically to make money would work.

The cheap thing is important, too: we didn’t take salaries until we could afford it. We still don’t have an office. I’m not sure if we ever will. We just now got business cards, because we couldn’t justify the expense until recently. Please ask me for one – I’m very excited to hand them out.

We haven’t taken out much advertising, and don’t sponsor conferences in areas that are already firmly committed to GitHub. It’s not that we don’t appreciate their business. We do, in a huge way. But we need every dollar to count. It’s important we’re smart about every decision we make.

Speaking of which, there’s an open bar tonight, right?

Before I wrap up, there’s one big issue I feel I’ve overlooked: the users. The people. The customers. Have great customer support. Remember they’re all people, and they’re all rooting for you. Even the ones who are really short in their bug reports. After all, they’re using your product and taking the time to give you their opinion, or experience. That’s incredibly valuable.

Our users won us a Crunchie, pay my salary, got me this keynote, bring us new users, and have made our site what it is. You really need to be one of them and to care about them. They should not be abstract numbers on business reports, they should be people you interact with and can get to know. Some of our best ideas came from them.

While I wish you all luck on your pitches today, I intentionally left out any GitHub pitches. I’m not up here trying to sell you on our features or backup policies, because I don’t believe I’m the best person for the job. Instead I’m counting on someone you know being a user and telling you it’s the best thing since sliced bread. That they love it. That it saves them money and makes them more productive.

I really do believe that for a small, bootstrapped company, happy users are best way to get more business. I could talk until I turned blue about how great GitHub is, but that will never be more a powerful endorsement than your CTO saying, “This GitHub thing is pretty cool. Let’s give it a shot.”

And so, before I finish, I want to touch on the VC thing. I’m probably supposed to tell you not to take VC or angel investment. That you don’t need it. That we didn’t take it so you shouldn’t. And maybe I was going to say that, until a few weeks ago.

My friend was playing host to a 16 year old from Florida who was visiting San Francisco for a teens in tech conference. He builds PHP sites and iPhone apps, and was on a panel about being a teen developer. Smart kid.

One evening we took him to a bar – he ordered Diet Coke – and the whole “college” thing came up. Some people in our outing were encouraging him to go to school and get a computer science degree. “It worked for me,” they said. “You can’t ever get a job at Google without a CS degree.”

Others rejected the idea, “Do a startup instead of going to school. You’ll learn more and maybe make some money. It’s the best time for it!”

I was listening to all this when it hit me. So obvious now, but it took me more than twenty years to put into words:

Do whatever you want.

Don’t take VC because Twitter did. Don’t piss off investors because 37signals likes to. Do whatever you want, whatever works best for you, what makes you the most comfortable and seems like the best idea. Do what you love.