interfacelab

Avatar

Bootstrapping Technology For Eight Bucks a Day

In the following article, I’m going to attempt to describe how one might bootstrap the technical components of their startup as cheaply as humanly possible, while still giving you room to easily scale. A lot of this is based on what I’ve learned in the last 2+ years as the CTO of massify.com, an online networking site for film makers.  Your mileage may vary, of course, and I’m sure there are a variety of alternatives to some of the things I’ll be recommending.  I welcome all commenters to pitch in with their own experiences in hopes that we can grow this post into a useful resource for up and coming entrepreneurs.

There are some caveats.  You will need to be mildly technical to pull this off, but Google is there to hold your hand through some of the tough stuff which, honestly, isn’t that tough.  And while some of the concepts might fit Microsoft developers, this article is Linux/BSD/Unix focused.  I will tell you, though, from years of being a .NET consultant, trying to bootstrap a Microsoft centric solution is futile if you’re trying to sell your ideas as cheaply as possible.  I’m not trying to start a flame war, I’m just sayin’.

Register Your Domain

Let’s start at the top.  You’ve got a great idea for a website.  You’ve done the leg work, written up your business plan and are eager to get going on actually building out the product and the supporting internals for the company. The first thing we’re going to need to do is register a domain.

You have a variety of options here, and depending on the domain and it’s TLD, you’ll have various pricing levels to work with.  For the sake of the argument, let’s assume you are going to register a .COM instead of the more expensive .TV, .ME, .JOBS and others.  Any one of these is a fine registrar:

I also prefer to do private domain registration, which can add $15 to the purchase.  This is entirely optional but it’s a good way to protect your private information.  If you are registering a .US domain, though, you can’t do private registrations.  Also, some places protect the privacy of your registration differently, so do some research if this is important to you. Namecheap has free private domain registration.  Godaddy charges extra and I’m not sure about PowerPipe.

Startup cost: $10


DNS Made Easier

This part is entirely optional, but after the register.com fiasco, it’s worth the peace of mind to run your DNS through a third party.  I love DNSMadeEasy for a variety of reasons, chiefly DNS changes are live nearly instantly, but they also scale incredibly well, providing options for doing round robin DNS to balance DNS requests between load balancers, as well as fail over monitoring.  They also have an API which you can use in your applications for all kinds of neat stuff.

Best part?  Cheap.

Run Rate: $0.08 a day


The Nuts and Bolts

So we have a domain now.  The next thing we’ll need to do is setup some infrastructure so our team can communicate and collaborate as we start building this mother out.

I will confess that I made a very dumb move when we were getting Massify going.  Having spent the prior 7 years as a .NET consultant, all I really knew was Windows and the host of enterprisey things you find on Windows.  Having done some SharePoint consulting, I decided SharePoint was the way to go.  An avid Outlook and Blackberry user, the only option I could see through my rose tinted glasses was Microsoft Exchange.  So we hooked up Microsoft Exchange with BES for my blackberry addiction and off we went to focus on bigger and better things. Fast forward a year and a half and the company has grown to 14+ people and our monthly hosted Exchange bill was close to $450 a month.  The worst part?  Massify is an entirely Apple OS X shop.  The only Windows machines we own are the ones we run in virtualization software.  So while we were running Exchange (and have all moved on from Blackberries to iPhones) we were not reaping any of its benefits.  No calendaring, contact sharing, none of that.  Had we been on Exchange 2007, we might have been able to capitalize on some of those basic things, but we were stuck on Exchange 2003 which doesn’t work with any OS X productivity apps without some spendy third party utilities that only sometimes work.

So, yeah, dumb move Gilkison!

Well I am here to tell you that you can get NEARLY all the benefits of Exchange for FREE.  Yes, you read right:  FREE.  My friends, I would like to introduce you to Google Apps for Business.

Shared calendaring?  Check.  Contact syncing?  Check.  Kick ass web interface for reading/writing mail?  Check.  IMAP support for desktop and handheld clients?  Check.  Push email?  Negative.

I did say NEARLY.

And the best part, beyond the awesome price tag?  I don’t have to install/maintain shit. I’ve been test driving Google Apps for Business for awhile for my personal stuff, to make sure that it has legs, and I couldn’t be happier.  So we transitioned off Exchange and we are all now much happier individuals.

Run Rate: FREE


Working Together

There are a ton of collaborative apps out there and they’re all like gloves.  Each has their own utility and fits its wearers in different ways.

The most popular, of course, is BaseCamp from 37Signals.  I won’t get into what I think of 37Signals, but suffice to say a lot of people have a huge app crush on BaseCamp.  I personally, and this is just my opinion, don’t particularly care for it.  Everything starts out well, but once you get into the thick of big projects it becomes a bit of a mess.  But, like I said, different strokes for different folks.  Nothing I’m preaching here is gospel, so find out what works best for you.

Now you get a variety of collaborative tools with the Google thing, in addition to the email.  Google docs is great for document sharing, but the other apps we’re not so keen on.  We’ve found a nice balance between PivotalTracker and PBWiki.  Both apps cost money and there are a lot of free, open source alternatives.  In fact, we use Deki Wiki from Mindtouch for our development wiki.  For agile development, there are quite a few free backlog management apps, but Pivotal is easy enough for everyone to use, so that’s what we went with.

However, the goal of this article is to do things cheaply, but functionally.  There is no open source equivalent of BaseCamp, so let’s price with BaseCamp in mind.

Run Rate: $0.78


Let’s Talk Hosting

The following is based on the assumption that you’re planning to build a web app based on today’s standards.  This means you’ll be using some kind of framework like Rails, or a language like PHP, with a database backend like PostgreSQL.  Yeah I could have said MySQL, but why when PostgreSQL exists?

I imagine this will be the most “controversial” aspect of this article because every techie has their own vision of the right way of setting things up.  I also want to talk to you about planning for scale.

“Premature optimization is the root of all evil” is a phrase people like to bandy about when people approach the topic of planning for scale before the need for it.  Well, first things first, the phrase is often taken way out of the context in which it was used.  Obviously you don’t need to unroll your loops in PHP, because listen, you’re using PHP and optimizing it’s performance doesn’t have a substantial effort/reward ratio.  Same goes with Rails/Ruby and Django/Python. But, it doesn’t mean that you can’t plan to be successful and get things in the right position for when you do need to scale.  There are some easy things you can do to make sure when the need comes at you full bore, you’ll be ready for it.

So let’s talk about hosting.  The Web 1.0 way was to colocate racks of metal in a datacenter somewhere or to pay for managed hosting through someone like RackSpace.  But that is a crazy thing to do now, it only makes sense when your site hits a certain threshold of scale.  If you’re at that scale now, what are you doing reading this article?

We’re working under the pretense that your business idea has to prove itself in the marketplace and that you need to get it into the marketplace as cheaply as possible.  So what options do we have? You can sign up for a VPS like dreamhost, but you’ll be cursing yourself when your site hits the front page of Digg or Reddit and the social news monkeys are kicking the shit out of your application.  A day is forever in internet time, so what are you going to do when you need to take your site down for a couple of days to migrate it to something else?

The next step up, then, is this “cloud” thing everyone is talking about.  And it’s the right step.  However, a number of people instantly assume we are talking about Amazon’s EC2 offering, and that is the wrong way to go.  Bandwidth on Amazon is not the cheapest thing around and I’m of the fundamental belief that EC2’s best purpose is for bursts of additional computing resources.  For instance, on Massify, we use EC2 to do parallel processing of media.  We can scale it up and down at will, taking it entirely off-line if we need to.  Having priced out hosting our site on EC2, the end costs were not that far off of managed hosting. So where does that leave us?  I heartily recommend SliceHost.  And I recommend the following starting setup:

starting

Obviously, this isn’t the absolute cheapest way to start out, but it prepares you for growth.  If you develop with a share nothing architecture, you can easily slot in more application servers as needed, and take them down as needed, until such a point as your database becomes a bottleneck.  But that shouldn’t happen for awhile and the total cost for this rig on Slicehost?  $160 a month.  If you were to stuff it all into a single slice, you’d go for their 4GB or 8GB slices which run $250 and $450 respectively.

Run Rate: $5.20


Spread The Love Around

Like the DNS management, this step is entirely optional, but if you’re serving a ton of static content or media, I can’t imagine going without for very long.  The advantage of serving all your static content (this includes static html pages, javascript, css, images, media) is that it’s way cheaper than serving off even Slicehost and it takes a ton of load off.

Good news for you is that CDN’s are getting cheaper and cheaper.  We use Panther Express at Massify and our monthly bill is amazingly low.  I can’t really publish those numbers, so let’s talk about Amazon’s S3 and CloudFront pricing to get a rough number.  The basic way this works is that all of your static content gets pushed to S3 and then served up to your users via CloudFront.  CloudFront has a lot of nice features, though if you’re planning on doing video through it, you might look elsewhere as they don’t support HTTP chunking – which is the poor man’s way of doing video streaming and seeking.  Panther Express does support this, though BitGravity has some awesome looking capability as well.

Anyways, assuming we’re going to transfer 250 GB of data via our CDN, the numbers will surprise you:

S3 Storage and Transfer: $37.50 for 250GB

CloudFront delivery: $42.50 for 250GB

Combined, you would be paying roughly $80 a month for 250GB of data transfer.  For most sites that’s overestimating, but if you’re doing a user content generated site, you should probably aim higher.  I’m not at liberty to divulge how much we transfer per month, but it’s significant.  And despite that our CDN bills are shockingly low.

Run Rate:  $2.63


Total It Up

So we’ve covered everything from domain registration to company infrastructure to hosting and content distribution.  Here’s how the costs breakdown:

DNS $0.08
Email $0.00
Collaboration $0.78
Hosting $5.20
CDN $2.63

For a grand total of: $8.69 a day. Not too shabby.

So those are my tips based on my experience for the last two plus years.  Would love to hear comments and tips from others!

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 4.4 out of 5)
Loading ... Loading ...