Update: It’s been over a year, so I’m back to update the list of what we’re using…
Launching a startup is incredibly fun: everyday is dreaming, everything has infinite potential, and you get to leave behind all the baggage of the past. John Tokash and I recently enjoyed the party when we decided on what tech products/services to use. (Props to Nat Friedman for his list which gave me the idea to share our choices.)
We had some general, unstated criteria that guided us:
- Community is incredibly important: In most cases, use what most other companies are using because you know it’ll be around, and there will be people out there to help you.
- Be cheap, but not too cheap: We have to run a tight ship, but where it helps productivity, pay for it.
- Lean towards what you know: We have to focus on the business, not on learning the tools.
- Cloud, when you can: It might be cheaper to host things yourself, but we don’t want to be IT guys and we want to work on the fly from any computer.
- Don’t waste too much time thinking about it: Just do it. Sometimes, you gotta just go.
- Web framework: Ruby on Rails. This was a tough one. We argued long and hard about Ruby vs. Python, Rails vs. Django. Both communities are strong, and depending on who you ask, both argue that their community is stronger. Both have their technical trade-offs. I will be the first to admit that after learning some RoR, I’m incredibly disturbed by the “magic” in it (if you name this method in this way, magically this property will be attached to this other thing). But then one day, we just turned to each other and said: “Let’s just call it. Ruby. Done.”When it came down to it, there were three deciding factors: 1. we happened to know more people who know RoR; 2. we happened to start learning RoR first; 3. we didn’t want to talk about it anymore. C’mon, we have a company to build here.
Aptana RadRails. John’s a big TextMate fan, so that’s what he was using, but I decided to take a tour around the options. MacVim: didn’t want to invest the time into learning all the key commands. Komodo Edit: had crashing problems. NetBeans: dropped official support for Rails and I couldn’t get the community Rails plugin to use a specific version of Rails. Aptana did it all cleanly, with autocomplete, decent project management, integrated terminal. We haven’t lived it with it very long, but it looks good so far.Update: So we have a split jury here now. A few of us are on RubyMine, a few are on Sublime Text, and a few are on TextMate. RadRails died a quick death.
- Source control: Github. Never really considered anything else. Cloud all the way, baby.
- Database: Though we haven’t actually created any databases yet, I’d be surprised if we don’t do MySQL.
Undecided. We haven’t really addressed this yet, though we’re considering Heroku and Rackspace, among others. We’re not IT guys, and we don’t want to be, so we’ll definitely be looking for a lot of support. I imagine that if we end up going with Heroku, we’ll move off with any reasonable success. We also know that Heroku uses PostgresQL, so given our leaning to MySQL, we’ll have to figure this out later.Update: AWS all the way! AWS is simply amazing (though it could be simpler to manage). Fortunately or unfortunately, we’re bought in hook line and sinker with EC2 with EBS, S3, RDS, Route 53, ElastiCache, pretty much everything. They make it, frankly, incredibly compelling.
- Analytics: Google Analytics. We haven’t even started plugging this in yet, but this is clearly what we’re going to do until we run into problems. I have experience with Omniture and while it’s powerful, it’s very expensive and a bit of a pain to integrate. Maybe later.
- Wireframing: Omnigraffle (Mac only). We tried Balsamiq first and we liked it quite a bit. I even liked the commune, hippy vibe of the company. Unfortunately, we actually outgrew it pretty quickly, even before the trial ran out. The biggest slam against Balsamiq for me was the rather sad collection of community widgets/stencils available. Omnigraffle kicks its behind in that area and in advanced features (layers are really nice to have).
- Email, Calendar: Google Apps. We never considered anything else. Really, who wants to run Exchange anymore? The key reason is that a Gmail account has become the de facto standard email account for integration into devices and other services. I expect that we’ll end up using Google Sites for intranet, but we haven’t really run across that yet.
- Documents Sharing:
Dropbox. We considered Google Docs, and we’ve even used Google Docs to collaboratively edit documents, but at the end of the day, Dropbox is just so much easier.Update: With the release of Google Drive, we moved over. I love the seamless integration with Google Apps (which we use for tons of stuff) and that the fact that file storage only counts against the quota of the file owner. With Dropbox, every file hit everyone’s quota. Sucks. Like a Hoover.
- Office suite: Microsoft Office. Yeah, that may seem obvious, but I really wanted to like OpenOffice or LibreOffice. I used them both, for a long time, and they kind of worked. Then, after some particularly frustrating lost formatting in their PPT knock-off, I downloaded the trial for MS Office and it was, frankly, beautiful and painless. Sorry, open source fans, it’s not even close.
- Group Bookmarking:
Diigo. We discovered early on that we were sending a lot of links to each other with posts, sites, companies that we want to share with each other. I really wish Del.icio.us had private group bookmark sharing; unfortunately, it doesn’t. We’ve settled on Diigo, but the UI is too clunky for what I want it for. Hopefully, something better will come soon; I’m not happy with this one yet.Update: We don’t use Diigo anymore. Just too clunky. I haven’t found anything better: we just end up emailing links back and forth. Then you have to search back through your email to find the link someone sent you. Not cool. Isn’t there a startup out there who wants to fix this?!
- Project Management:
Basecamp. We actually didn’t default to Basecamp; we went around and looked at many competitors, including ManyMoon (it has a Google Apps plugin), Apollo, and Trello. We ended up with Basecamp because it was fully featured for what we want, but wasn’t cluttered a lot of things we didn’t want (time tracking, proposal creation, etc.). After playing with Trello though, Basecamp’s UI feels dated. I’m thinking we could end up switching if something better comes along.Update: We went around and around and ended up with Planbox for sprint planning and Assembla for bugs. I then mandated that we use only one system for both and went over to Assembla. And you know what? Yup; we’re still unhappy. This sucks. Where is there a good combined sprint planning/bug tracking system? Help!
- Messaging: Google Talk with Adium.
Amazingly, we’re using an AOL product. But it practically doesn’t matter; we just happen to all have AIM accounts. I believe we’re all using Adium clients, but the protocol itself doesn’t matter. Definitely a case where it’s not worth even looking around for anything else.Update: We switched over to use the Google Talk protocol with our Google Apps domain accounts, but still using Adium. Primary benefit: we can stay logged out of our other instant messaging accounts so we’re not pinged when we don’t want to be.