Founder Stories: How Sentry Built Their Open Source Service

Editor's note: This is the first post in our "Founder Stories" series, where we sit down with Founders of popular developer services to hear how they got started. David Cramer is Co-Founder at Sentry and Engineer at Dropbox. Chris Jennings is Co-Founder at Sentry and Designer at GitHub.

Sentry-Origins

There are a ton of open source projects out there that offer hosted versions of their software, it's not a new idea. But there aren't many services out there that have fully embraced open source quite like Sentry. Add to that the Founders of Sentry aren't your typical startup founders; but then again Sentry isn't your typical startup. What started out as a side project to help them manage errors for their own web apps, has unintentionally turned into a

self-sustaining service that Instagram, Pinterest, and Uber rely on for exception monitoring. So we sat down with David and Chris to find out how it happened. What you'll hear is a story that involves Disqus, Heroku, and GitHub, and highlights the true power of open source tools.


Highlights

"There were no filters, no management, for better or worse. Just me and David. It's a scary and exciting freedom....That's why open source projects have always interested me. You get to play every role you want. You succeed or fail purely based on your decisions."

"The community has been so valuable. I saw someone re-writing a C# client. Like when are we ever going to do that? Sometimes, we'll have a support thread where at the end of it, someone will just say 'Hey you know what, I'll just submit a pull request.'"

"Yeah, so we open-sourced it because we wanted people to use it. Not because we wanted to create this thing and make money off of it. And it's still the same thing today. A lot of people don't pay for Sentry. I would say 90% of people just host it themselves...But those 90% of people who aren't paying us are directly making Sentry better for the people who are paying us so it works."


LS: How did you guys meet?

D: We met through a mutual friend. I was working on a project called LifeStream. It was similar to FriendFeed but before FriendFeed was popular. Our friend was also helping with the project and knew that I was a terrible designer so he introduced me to Chris.

C: I was in Miami at the time, working for a company called Scrapblog. It was one of the biggest startups in Florida at the time. I had never met David, but we started working together on this open source project.

D: That lasted 3-6 months. Then Chris joined Disqus and then a month after that I joined.

C: It's really funny, when I first started at Disqus and they were getting me ramped up I see "dkramer/django-db-log" in the bootstrap log, and I'm like "hey, I know this guy!" I brought it up at one of our status meetings, basically saying, "hey, I've worked with this dude before and there's a chance he may be interested in solving some of the bigger issues that we have here." So open source has really been the common theme for the things we've worked on together and even how we ended up at Disqus.

D: I was in the mid-west and it was so cheap to live there. But I was extremely bored. I had been in San Francisco previously so I thought, I really need to get back out there. When I joined Disqus they were using a really bad pre-Sentry Sentry that I wrote. It let you aggregate exceptions into a database inside of Django. And I was kind of amazed that anyone was using it because it was not built to scale, and Disqus was doing a significant amount of traffic. Way more traffic than any site I had ever worked on.

LS: So how did they even find out about it?

D: I was pretty active in the open source and Django world. I think I had met the co-founder of Disqus at some hackday thing.

LS: Cool, so this was good timing for both you and Disqus. So what happened once you were both at Disqus?

D: So that first month at Disqus I wrote a really early version of Sentry. It was this drop-in Django application that you just add into your existing project. It was really ugly, and it was just a step up from what they were using previously. And that actually caught on pretty well with Django users. People were saying "Oh, I can just throw this into my project. It looks way better than all this other stuff I was doing." And the main thing was it didn't send out an email per exception, it grouped them. It was pretty bad, it had this StarCraft icon as a logo, which is where the name "Sentry" comes from. But it wasn't the worst thing in the world.

C: It's funny, the early version of Sentry kind of looked like Bootstrap. So when Bootstrap actually came out after, everyone thought we were using some alpha version of Bootstrap.

LS: So would you talk a bit more about what this early version of Sentry actually did?

C: So Django comes with this default thing that emails you every error. But Disqus' QA at the time wasn't very good. No automated testing, so people would commit bugs. In my first month, I took down the site. And your inbox gets flooded. Then all of a sudden, email doesn't work. And this was even with Sentry, because the grouping algorithm wasn't as good back then. It was like 50,000 emails. So the first month we built a better version. Then it was a good two years until we built what's considered the modern Sentry.

LS: So there was a certain point when you guys said, this is useful for Disqus, but then you thought ok let's put some more time and effort into this and make it platform-agnostic and available for more developers and companies.

D: My big thing was, I want everyone to use it. It was open source from day one. Because it was built on top of the existing open source project. So we basically forked the existing project, kept it open source, renamed it and then extended it from there. And then two years later, we made Sentry 2, which was the first version that really had some thought put into it. I think it was 6 months after that when the big design overhaul came.

C: So there was a period where the engineers at Disqus were talking about this thing called Sentry. And I was seeing these error links get pasted into IRC and then clicking on them and thinking "what's going on here?" I felt the need to organize it and make it a little easier on the eyes since it was something I was going to have to look at. That's sort of how I work. Even with friends, they'll send me stuff they're working on, maybe they're writing an article. I'll go into their blog and I'll reduce the margins or change the type so I can enjoy reading it. So that's just my process. Just trying to make things better in small bursts. That's how I started with Sentry. Like "hey, here's a few ideas I have to make this a little easier on the eyes." And it also sort of came out of me wanting to be more a part of the project. But also wanting to be able to understand it better and work with it.

LS: So you were sort of doing this for yourself, in your own interest. You wanted to make it better for yourself, make it easier to use.

C: Honestly, I think that's how a lot of great things start. We weren't looking at it as a business. It was an open source project we were relying on and I saw an easy way to contribute and make it better.

LS: So what was the point at which you guys decided to offer it was a hosted service?

D: I was actively pushing it in the Python world. Which was really easy because nobody had anything like that. Ruby world had Airbrake for a long time. But nothing existed in Python except Sentry. So it was very easy to capture the Python scene. And as far as I know nothing existed outside of Ruby at that time either. So there was this obvious desire to have more users, get a lot of people using it. Python was growing a lot so that helped.

C: Our interest at the time was also partly building the Disqus engineering team. And we would get a lot of people who would come in for interviews because they saw the little footer in Sentry that said "Sexy magic brought to you by Disqus" or something like that. For a while it was a cool recruiting tool, we were getting a lot of smart people from the Python world who had heard of Sentry and had contributed and we were listing Disqus "and other noble sorcerers" in the footer that would link to the GitHub contribution graph. It was kind of a way to motivate people to help. And also a good way to get some exposure for our recruiting efforts.

D: There was a point at which Craig Kerstiens from Heroku approached us and said "you should make an add-on out of this, and make a little bit of money from it."

C: We were actually at a GitHub meetup talking to Craig. And he said it could make us like $5,000/month. We thought that could be cool, but it wasn't really that serious.

D: I was thinking sure, it can't be that hard. I had this vision in my head of how Heroku worked, and it was completely wrong. We thought it would be easy to just throw it up as an add-on where somehow it just installs itself and we didn't have to deal with it. And that wasn't at all true. We quickly realized that Heroku required you to have this hosted service. So I thought, ok that's not too bad. But the platform wasn't at all ready for that. We didn't really have support for companies. We had projects and you could have collaborators, but that doesn't work when you're sharing an installation and you need a bunch of organizations using it. Or even internally if you want to split it up among people. So we had to built that out. So when that started happening that was also the point where we built out true multi-platform support. So we did that and it was probably 6-9 months after that first pitch from the Heroku guy. It was around Christmas time I remember.

LS: Oh wow, so Heroku was really the reason you decided to even offer a hosted version of Sentry in the first place.

D: Yeah. February 2012 is when we launched on Heroku. Then we quickly realized Stripe was dead simple to set up and it was so easy to accept money so let's just push this live. Also a bunch of people were like, "wait, we have to sign up for Heroku?" So it just made sense. In the time it took us to get it actually released on Heroku, we launched Stripe payments and then that's when the realization came that this could actually work out. That was live for a month before the Heroku add-on was live. So we already had customers who were paying before we launched on Heroku. And funny enough, at the time our service was actually fully hosted on Heroku. But eventually we moved to SoftLayer partly because they offered an incubation period discount. But they really have a great service.

LS: So what's the time frame here. From the time you first open sourced it to the time you installed Stripe.

D: It was about two and a half to three years. February 28, 2012 was when the first payment was made, I remember that date. It was actually by a guy who wrote the javascript and node.js clients. He ended up joining Disqus three weeks before I left. And he joined purely because he had worked on Sentry, it was pretty cool.

LS: So after you turned it into a hosted service, what happened?

D: It was pretty steady growth. We've never had a big spike. It's always been very consistent.

LS: That's the best type of growth right.

C: Yeah, so suddenly we're building marketing pages and shaping a message. And of course I had done that several times before but this was the first time it would benefit me directly. There were no filters, no management, for better or worse. Just me and David. It's a scary and exciting freedom.

D: That's probably why open source projects have always interested me. You get to play every role you want. You succeed or fail purely based on your decisions. Where, at a company there's some level of, you know you not having control. You're encapsulated in a part of it. Even in a small startup, you're encapsulated. But in the open source community, especially when it wasn't a hosted service, just do whatever you want. If it's a bad idea, it's a bad idea.

C: And once we offered a hosted version, it was like success or failure directly affects your bank account. So that was cool.

LS: So what happened between the point you offered a hosted version and now? Because now when you look at who's using Sentry, it's these massive startups and companies like Instagram, Uber, Pinterest...

D: Early on we saw slow growth for the first 6 months or so. A lot of people who knew me were happy to pay for it. And then some second connections from them, so it was pretty organic. But it wasn't a ton of customers. It was probably the end of the first year when it went from a little bit of growth to a reasonable amount of growth. And that's also around the time we increased the subscription prices to what it is today. Where we try to charge at least $24 for a company. And that really changed everything. It was really cheap for customers but for us the margins were not as high as we wanted it to be, because we were willing to pay SoftLayer.

C: Yeah we started to have to pay bills and we needed to be able to sustain that. But growth has been steady. A lot of it has to do with that core adoption within the Python community. And then having people contribute and maintain the libraries.

D: Even the python library, we don't maintain it anymore. Ruby, Java, all of that is maintined by other people.

C: The community has been so valuable. I saw someone re-writing a C# client. Like when are we ever going to do that? Sometimes, we'll have an Intercom thread where at the end of it, someone will just say "Hey you know what, I'll just submit a pull request." And that's not coming from us, it's coming from our customers. So in a lot of ways, we've built this alongside our customers. I think out of everything, that's the most powerful thing. If they don't like it, they can fix it.

D: Yeah, sometimes we'll say "by the way this is open source, so you can just submit issues on GitHub." There's very few inbound support/feature requests that we actually say we're going to do. If we do it, we were already going to do it anyways. We're not doing it because people are asking for it most of the time. Because either there's questions that come up so frequently that it's just annoying, so we should solve this problem even though we don't have it. Or it's something that we think is valuable.

D: Yeah, so we open-sourced it because we wanted people to use it. Not because we wanted to create this thing and make money off of it. And it's still the same thing today. We open source every piece of Sentry. A lot of people don't pay for Sentry. I would say 90% of people just host it themselves. But there's still plenty of customers that don't want to do that, so that's fine for us.

C: Out of that 90% there's gonna be a few that maybe grow and become successful and then they're sending too many events and they're maintaining it themselves. Then they come to us and just pay because it's easier. And those 90% of people who aren't paying us are directly making Sentry better for the people who are paying us so it works.

LS: I think one of the most interesting things about Sentry is how you guys have thought about it and approached building it. One of the obvious questions here is why didn't you guys just say screw it, let's go all in and do this full-time?

D: It's been really nice not to need a paycheck from Sentry. It gives us a lot more freedom. We can do what we want. Like we had an idea to send out gift bags to the top contributors, so we just bought 50 bags and shipped them out. We can just do things we couldn't do because we're a bootstrapped company. If we weren't bootstrapped and doing this full-time, we'd have to take a significant amount of money for ourselves. I've always been pretty active in the community and so I know recruiters. But I'd say like 10% of my emails have shifted from "oh you should come work at X company" to "hey, we want to invest in Sentry." And so there's a lot of high-profile investors that are really interested. And yeah that's cool, but it doesn't matter to us. We're not interested in that. But if we were to do it full-time it wouldn't be a problem to make money. And it's because we did what we wanted to do. We weren't seeking money to test out an idea we didn't have validation for. It was always just working on what we wanted to work on.

C: Yeah and for Cramer, he can use our money to beef up our infrastructure or play with things he maybe doesn't have access to at Dropbox. For me it's like a hobby. Like last night, I was redesigning the dashboard just for fun. It keeps me sharp. At GitHub I'm able to explore really big ideas and learn from my extremely talented coworkers. It's nice to be able to have the best of both worlds. I think if we ever started to rely on Sentry as our primary source of income it would take a lot of that fun away. So I don't know if that makes sense but that's how we see it.

LS: No that makes perfect sense. Because there's this idea, particularly in the startup world, that there's only one way to build a software company.

D: Yeah, I don't think I've seen another company that's been a side project and successful. At least I can't think of one. Where they're not working on it full time.

C: A lot of the dynamics in place with Sentry, have just allowed this to happen. Being an open source project that's hosted.

D: I would say our product is superior to everybody else's. But even if that weren't the case, the fact is a lot of people would choose it because if they ever want to migrate off of the hosted service, they can just host it themselves. It's not like you need to get your data out or anything. But still there's that piece of mind. It helped that the product was fairly mature before creating a service out of it. It'd be impossible to just wake up one day and say "we're going to start a new product tomorrow, it's going to be a side project, and it needs to make money." Which means it's not sponsored by the company you're working for. It's just impossible, not enough time in the day.

LS: Yeah and this just sounds very organic, the way that it all happened. You really don't see that too often these days. So I think part of the lesson here is that other developers can do this too right. Work on something you're passionate about, make it open source but still make money from it.

C: Definitely. I was working on another project before I met David. It was a tool for getting design feedback. We put a lot of energy and time into it, there was a lot of excitement. But eventually all the work we put into that, didn't amount to much. But at the same moment, I was looking at Sentry and I was thinking "holy shit, this thing is growing and I'm barely putting in any effort compared to this other project." This thing just happened, it solved our own problem and took off on it's own really.

LS: Any advice for other developers that are thinking about side projects and startups.

C: The most obvious is: build tools that you would use and get value from. That's what's allowed me and Cramer to have that motivation.

D: Just let it happen naturally. Even when we decided to get on Heroku, the idea wasn't to do it full-time or anything. We had no idea whether it would be successful or not. And even when we considered it, we saw it was working well and we had enough time to grow it how we wanted to. So go with your passion and don't fall to the norm.

C: This is like the ultimate lean startup. Usually if you’re bootstrapping something, you don’t have a lot of resources. But with open source, you have this whole community that comes together. You're not building in a vacuum. You’re getting customer feedback in the form of pull requests. That’s a really exciting place to be — everyone wins.