What does it cost to start a company?

December 6, 2011 by Vladimir Šor

Everyone and your mom is speaking about how easy and cheap it is to launch a company in 2011. We fell into that trap and launched one. This article describes our experience in the field – was it easy and/or was it cheap? Read on to find out – in the following 1600 words or so we will describe more or less chronologically the steps we took and how much these cost.

We develop software, so the first thing we needed was a source code repository. After hesitating for 20 minutes we had a Bitbucket account set up and a Mercurial repository created. Cost – $0.00. Nice start!

For the first month it was actually all we needed, besides a whiteboard and a lot of coffee. Sleepless nights of pure hacking and nobody to disturb you – great!

As the software matured and the team got bigger we started facing other challenges. Like the challenge of not fitting product backlog onto the whiteboard anymore. So – next stop – issue tracker. We had some doubts whether to use Fogbugz or JIRA for the job, but it kind-of sorted out itself when we took a look at the pricing sections. Fogbugz lost by a mile – it charges 25$ per developer per month, JIRA only required us to pay 10$ for the whole team per month. We started using JIRA hosted by Atlassian itself. Or JIRA on demand as they like to call it. As we paid for a year in advance, the bill was $120.00 in total.

Next challenge – online presence. Thank god for Facebook and Twitter for their free-of-charge plans, but we needed a content site as well. We shortlisted two options – WordPress and Edicy. WordPress was free, Edicy was not. So the choice was clear – we chose Edicy. For two not-so-obvious reasons. First – we had already used WordPress before and Edicy felt cooler. Second – Edicy is being developed by the guys next door. And we kinda like them. So we picked Edicy to host our http://www.plumbr.eu site. Another $144 spent for one year hosting services. Total cost so far: $264.00. To trace what our visitors are doing on the site we added Google Analytics. Gosh its nice to see how good articles like this drive visitors to your site. Even nicer is to see how many of you guys actually download our software – keep it going – we are here to get rid of your memory leaks, remember! And the best story – Google Analytics is free. Too good to be true. But its still free.

Now we had the site but we had to register a domain to publish it. An old friend Godaddy (and we thought we chose a weird name to a company) came to help us – in 20 minutes we had a domain and DNS updates already pinpointing to our brand new site. And our wallet shrank again by $14.99. Total cost bubbled up to 278.99$.

Then the site was up and running. Next stop? Apparently, its not enough to have good content, people have to be able to share and discover the articles we were about to publish. So we integrated Disqus with our Edicy platform. Another 10 minutes and $0.00. Hopefully Facebook and Twitter will manage to bear the load of the traffic we are going to generate.

Even though sharing is caring, we had to be able to face product-related questions online. Result – three hours arguing whether we need something like StackExhcange or an old-fashioned forum solution. The old school won that round. 30 minutes later we had embedded Nabble into our site. Looks nice, eh? And it was free. With ads though. And as we kind-of did not like the idea of competitors having a possibility to advertise their products on our own website we paid $5.00 to get rid of the ads for a while. The total cost after that – $283.99.

Then our marketroids jumped in with their requirements. And things turned ugly – advertising and contact harvesting. We held our ground for several weeks but then had to surrender after the droids offered to quit in return. So – if you see a Google Ad about Plumbr, please do not click on it. Or we will be a few dimes poorer. $20.00 have already flown to Sergei’s and Larry’s pockets anyway. For marketing campaigns we were also forced to create a MailChimp account and for transactional e-mails we started using Postmarkapp. Corresponding costs so far – $9.00 to chimpansees and $3.00 to Postmark. Total cost changed to $315.99.

After all this dirty marketing stuff, we finally managed to dive into some development-related activities again. Which also required further tools from the infrastructure side. Say hello to our build server / continuous integration environment – Jenkins. Even though we originally considered CloudBees as well, somehow for reasons nobody seems to remember we went the old-fashioned way and decided to install Jenkins by ourselves. Maybe we chose Jenkins because it was free as opposed to CloudBees? As our next calculations show, it actually wasn’t.

Mac JavaTo install Jenkins, we needed a machine. Here, Amazon Web Services came to the rescue. It’s still amazing how quickly you can get an EC2 instance running. With Jenkins on top of it. Why can’t all the software be installed like this (java -jar jenkins.war)? Soon we discovered that we needed some more machines, as our software has to support Linux, Windows and Mac operating systems, so we added another EC2 Windows machine. For some peculiar reason there are no Mac boxes available in AWS, so for Mac OS X builds we resurrected an old MacBook Pro, which now serves as a Mac build server. Jeff Bezos, if you are reading this – you better start supporting Mac as well. This ancient Mac is humming as crazy whenever it needs to build something. Anyhow, considering we got this old MB Pro for free, we have paid $760.30for our two reserved EC2 instances, small EBS storage and some data transfer in the first three months. At the current rate, we seem to spend approximately $100.00/month in the foreseeable future. With those bills in place our costs skyrocketed to $1 076.29. Investors started calling in worrying about our cash-flow. So much about a free build server then.

Creation of all the mentioned infrastructure produced some documentation along the way. Not surprisingly – also did the product development. As digging through emails and Skype chats for all the info was getting messy, we saw the need for online collaboration environment. Google Apps was there to help, so we set up a corporate account. What we didn’t recognize at first was the fact that it was free for up to 10 users, so we accidentally paid for the first month, and are hoping now for the $10.00 not to drag us under. Accident or not – the total cost rose to $1 086.29.

Two months down the road we suddenly discovered that we actually needed to found a company. Ouch. But – as we live in the nerd heaven called Estonia, we managed to create the company online in 20 minutes. Still, creating a company tends to be associated with legalese in the form of digitally signed contracts (again – Estonia is cool, eh?). So we made another weird move guessing that Google Docs cannot handle random content type, and started using Dropbox for anything else besides documents and spreadsheets. Luckily this move didn’t add anything to our start-up infra bill.

Last but not least – we are currently working on building a payment infrastructure and a licensing model. This required some custom Java code written in Play Framework, some SQL magic in a MySQL server and an Apache HTTP Server for virtual hosts. As it’s still work in progress, we haven’t really created a new EC2 instance yet, but in the end it will not be a big burden on our balance sheet anyway – either you guys will not pay anything to us and we can go with a free EC2 micro instance or you will try to drown us in cash and we will have to switch to a High-Memory Quadruple Extra Large Instance. Either way – we win. And kudos to the team naming instances in Amazon. If you are out there reading this article – let us know and we’ll buy you a beer next time we have a chance to meet!

What we didn’t cover in this article were development tools, such as IDE, build scripts, testing tools, etc. We thought this to be a subject for another article. But I can shed some light on the cost side of those tools: Nothing. Nil. Nix. Nada. Null. Or $0.00 if you prefer the accountant’s way.

Conclusions. Let’s wrap everything up in a summary table:

Topic Product Cost (USD)
Source code repository Mercurial (on Bitbucket) 0
Issue tracker Atlassian Jira 120 (for a year)
Web site Edicy 144 (for a year)
Social media presence Facebook, Twitter 0
Web tracking and analytics Google Adwords 0
DNS GoDaddy 14.99 (for 2 years)
Blog comments Disqus 0
Forum Nabble 5
Web advertising Google Ads 20 (just the beginning)
Newsletter MailChimp 9
Registration and personal reminder e-mail relay Postmarkapp 3 (the first few thousand e-mails)
Build server / CI Jenkins 0
Servers for CI, stats upload etc Amazon Web Services 760.3 (half a year)
Document storage, e-mails, collaboration Google Apps 10 (paid before we downgraded to the free plan)
Payment and license infrastructure Play, Apache HTTP server, Mysql 0
Total   1086.29

Was it all easy? Compared to 2001 – maybe. But it’s actually quite amazing how many different things you need when starting a brand new company. The list goes from build servers to marketing tools and beyond – only listing and budgeting of all the tools alone might be an issue, especially for young entrepreneurs.

Was it cheap? Considering that so far the total amount spent is $1 086.29 – definitely. The budget for 2012 also does not seem too crazy – we expect to get away with less than $200.00/month, unless someone makes a Slashdot or Reddit bomb out of this article and we end up paying a ton of cash for outgoing traffic. So please, do not do this.

Go download Plumbr instead and forget Java memory leaks for good!

Can't figure out what causes your OutOfMemoryError? Read more

ADD COMMENT

COMMENTS

great article…but please switch to PivotalTracker. JIRA is good for bigger teams/projects but is an overkill for a startup.

MarkK

Did not include the cost on Developer?

Bruce

No, we didn’t include personnel costs on purpose. The aim of the article was to give an overview of infra costs and how the infrastructure evolved in our case.nnThe costs of development vary a lot more in different start-ups, depending on what and to what extent you outsource it, how much the founders expect to be paid etc.

Plumbr Support

Do you think $20 for web advertising works?

Bruce

Not really :) But it was enough to familiarize ourselves with the tool.nnWe got around 30 visitors for that money, and 5 downloads (which makes for a quite OK conversion rate). However, during the same period we got reddit’ed a couple of times and received a thousand or so visits with just shy of a hundred downloads.nnWe are actually planning to write another blog post about our experience with visibility in the web. Follow @javaplumbr in twitter in order not to miss it :)

Plumbr Support

For $20 on Adwords you get a little bit of keyword research. I’ve done it for my freelancing outpost and was surprised what keywords drive clicks and conversions (checking “my availability” page or filling contact form). It was not “rails developer” or such, but rather “scrum”, “remote scrum” etc. I’m not going to explore this further anytime soon, but the research was a good hint that I should blog more about my experiences regarding remote scrum with teams across the Atlantic and 9 hours time difference away, rather than how to test Ruby on Rails observes in isolation.

Wojtek Kruszewski

In hind sight this seems logical – people who inquiry about my services are project managers and are likely to google about project management techniques or effects of enforcing TDD on team performance. Doh!

Wojtek Kruszewski

Great article, shows what to expect and to be aware of. The little thing really do add up. But also, ain’t Estonia great? Just how cheap and easy it is to start a company. nAbout finance, Estonia is also bit desperate about getting new companies up so you do have alot of opportunities for extra finance by EAS, KredEx, Tu00f6u00f6tukassa and so on. nnGood luck fellows!nn(Why does most of the new computer companies come from Tartu? :) )

Roman

Yep, Estonia is indeed great to start a (software) company! And probably the magic vibe in Tartu somehow supports IT start-ups :) nnWhen you get bigger though you need to grow out of the country, to find more good people, and to get closer to the customers. Most of the people who tried Plumbr so far are from US or Western Europe, and we are already contemplating on ways to get closer to them…nnThanks for the support!

Plumbr Support

*Envy*. Poland has one leg stuck in socialistic bureaucratic shit. Fortunately I got this behind me, chores and paperwork is either automated our outsourced. But as soon as They (TM) start interfering with my business (e.g. in form of bullying, disrupting and time consuming tax controls) I’m taking my papers and taxes abroad. Mayhap to Estonia – always wanted to explore Tallinn more (-:

Wojtek Kruszewski

Hi, first thank you for your feedback.nnReading your post, there is only one thing I do not understand: why using an EC2 instance just for Jenkins ? Wouldn’t have it been cheaper to have your own server for it even if that means buying one ?

Martopioche

nice post but… all these expences are virtually nothing compared to a loss of income while working on a start up, so probably not even worth mentioning, also it’s good to see your setup. 10+ years of java experience brings home 80-180k in UK. Yes, I understand salaries in Estonia is lower, but you are in EU, so moving to London is an option. Which means, that taking into account potential loss of income, for two developers working on it full time, the true cost of start-up is not $1k, but u00a3160-u00a3360k a year ($250k – $560k a year in USD)… not that cheap, huh?nnanyway, working on a startup is a lot of fun. If you do not plan to pitch VC for investment, I’d recommend reading “Start small, Stay small” by Rob Walling. Really good book. nngood luck.nnwould be nice to see your price plan.

Vovan

Hey, guys! What about salary? An where to meet You for a free beer?

Arnis Juraga

Hey! We did not throw salaries into the equation, but – take whatevever is the market price for an experienced (10+ years) Java developer in your region and buy two of those guys for six months. And thats your answer from salary side.nnYou do not seem to be too far off from our location in Tartu – feel free to let us know whenever you are in the neighborhood and we will gladly join you over a beer. P.S. Are you really working for Amazon EC2 team? Does Amazon have a development branch in Riga?

iNikem

Or you could go for rackspace cloud and only spend $10 per server instance

jbverschoor

$10 is for instance with 256M of RAM and 10GB of HDD. We need substantially more for our test-case. Suitable instance would be almost $200 per month.

iNikem

That’s definitely alot cheaper than it was back in 2003.

Orlando Roebuck

And much easier as well :) No more server rooms with proper conditioning. No more paper fillings and bureaucracy. And no more waiting for all that hardware to arrive.

iNikem

Did you consider degree3.com for your FAQ? It was built by a friend of mine for this exact use case.

Jonathan Haddad

Thanks for the tip. We will look into it.

iNikem

Can't figure out what causes your OutOfMemoryError? Read more

Latest
Recommended
You cannot predict the way you die
When debugging a situation where systems are failing due to the lack of resources, you can no longer count on anything. Seemingly unrelated changes can trigger completely different messages and control flows within the JVM. Read more
Tuning GC - it does not have to be that hard
Solving GC pauses is a complex task. If you do not believe our words, check out the recent LinkedIn experience in garbage collection optimization. It is a complex and tedious task, so we are glad to report we have a whole lot simpler solution in mind Read more
Building a nirvana
We have invested a lot into our continuous integration / delivery infrastructure. As of now we can say that the Jenkins-orchestrated gang consisting of Ansible, Vagrant, Gradle, LiveRebel and TestNG is something an engineer can call a nirvana. Read more
Creative way to handle OutOfMemoryError
Wish to spend a day troubleshooting? Or make enemies among sysops? Registering pkill java to OutOfMemoryError events is one darn good way to achieve those goals. Read more