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 (6 votes, average: 4.5 out of 5)
Loading ... Loading ...
  • Slicehost includes DNS hosting in their plans, so you could do that as well.
  • It looks like that you guys have grown quite a bit. I just checked the site and saw that the favicon has changed but everything else is invisible / gone / the site is not happy with my ubuntu client..
  • This is a great post Jon! Breaking the numbers down, especially as it relates to hosting content on the cloud, is invaluable for entrepreneurs getting their apps up and running.
  • How is DNS third party routing an advantage over using a dedicated DNS in a shared environment? Aren't overloads just the amount of traffic your allotted via your hosting?

    Are we just talking about the hour it takes for DNS to propagate?
  • Your S3 + CloudFront math may be off! You don't have to pay S3 transfer charges every time CloudFront serves up an object, only when it is copied from S3 to a CloudFront POP. This should reduce your CDN costs.
  • iflyhigh
    You're probably right. The pricing I popped in was transfer to S3 for
    storage, and then transfer out of CloudFront. Assuming our little user
    content generating site did 250gigs a month, what's the more realistic
    pricing look like?
  • Dan
    As a non-Borg alternative to GMail, think about Fusemail for small business. At $2 per month per user (gets you 10GB), they have all of the above features, plus push email, and some other good stuff, too.
  • iflyhigh
    I looked at Fusemail, but their web interface was clunky and not as
    smooth as GMail, which was the impetus for us to switch over.
  • nice work - although it left me realising i need to learn some more, and that maybe my shared hosting with fasthosts might not take the strain
  • John
    Re:Google Apps ...
    Push email: Check. Sorta. There are free services available that fill the void. Off the top of my head, Seven ( www.seven.com ) for windows mobile is an example of a software-reliant solution. I know there exist similar software-independent solutions as well.
  • optional
    checkout heroku.com
  • I always enjoy learning what other people think about Amazon Web Services and how they use them. If you want to manage Amazon S3 accounts on Windows check out CloudBerry Explorer that helps to manage S3 on Windows . It is a freeware. http://cloudberrylab.com/
  • ATasteForTea
    I like the way you think! This design seems to be created strictly for a start-up or personal site. Do you have a list like this for a larger corporation as well? While this model is fantastic, is it scalable?

    Meg
  • sabat
    Meg -- most of this stuff could easily be used by a large corporation -- for instance, Basecamp is meant for a company of any size (although it's a project management app, so it's useful for project groups *within* a corporation). Same goes for EC2 -- remember, it's from Amazon, and it was developed so that Amazon (a large corporation) could easily and flexibly deal with the demands of web presence. Other stuff, like mail hosting, DNS, etc., are the kinds of things that you *could* outsource, but most big companies like to run themselves.
  • ATasteForTea
    Thanks for clearing that up! :D
  • a- Pivotal is free.
    b- I'm a fan of this approach:

    1 slice
    make the slice bigger
    get more slices
    make them bigger
    #some money appears , and you get engineers to manage
    switch to ec2 system
    expand ec2 system
    # real money appears
    begin migrating things to dedicated machines, since you have engineers , new legal issues, and want more control
  • Interesting reply -- but why the switch from slicehost -> ec2? what's the benefit?
  • A Boese
    The prices here are a good start, but look around and you can generally do better...especially with initial hosting. Hosting initially is not even something you need until you are rolling out either alpha or beta. If you insist on hosting anyway, for most applications you can get shared server access for between 100 and 200 a year. For development work, that is fine.

    DNS Registration 8.95 (1yr) with namesecure.com

    Hosting (~100/yr) HostGator - sometimes laggy but for dev purposes...okay

    DNS Managment - afraid.org - Totally free...you give up some subdomains for the right to use.

    Monitor your traffic and push for better servers...as needed. If you are anticipating more traffic then make the move. Don't waste money beginning a venture with too much too soon.
  • citizenterminal
    After the initial 30-day trial period, Google Apps for Business charges $50/person per month.
  • Most businesses can get away with the standard version which is free.
  • Chris
    Yes, but you specifically cite and link to the Business version.
  • I'm pretty sure it used to be called "for business" on everything, and then they used "premier" and "standard" pricing. Now there seems to be an intermix of 'for business' and 'premium'

    in either event:
    it's the same thing, and there's a link on the page.
  • cris
    There is a great BaseCamp alternative that is free. It's Wiggio.com. That will knock a few cents off your overhead. :)
  • warren miller
    hi - even cheaper CDN is simplecdn - 3.9c/Gig. four times cheaper than amazon, and scales well. we were pushing a gig a second through them last week.

    makes a HUGE difference in price when your asset requests start ramping up...
  • Thanks for the tip, haven't heard of them before.
  • Real Life Webmaster
    This cloud stuff is getting out of hand. Running multiple VPS servers instead of a dedicated server with dedicated storage is wrong in every way.

    Here's how to scale in the real world:
    - Develop on a shared host.
    - Deploy on a VPS.
    - Install a reverse proxy on your VPS.
    - Upgrade to a midrange dedicated server.
    - Max the RAM on your server.
    - Add additional/faster disks to your server.

    Then and only then, should you consider:
    - Move the database to its own dedicated server, etc.
  • I'm afraid you're incorrect, "Real Life Webmaster". Sorry.

    Real scaling in the real world means that you'll finetune your DB environment to maximize DB performance, and finetune your app server environment to maximize your request throughput. These are incompatible once you go past a performance threshold which means they can't be done on the same machine (hi there IO bottlenecks) - maximizing your RAM alone will not cut it, and running things on the same VPS just because you can doesn't mean it is the right way to do it.
  • godaddy is always running discounts - google promo codes if you're looking for one; has consistently saved me ~20%
  • Google Apps + G1 or other Android Phone: push email
blog comments powered by Disqus