Late last year I finally passed the (at least psychologically) significant $1k MRR mark on a business I’d bootstrapped solo. Since then things have picked up even more but I wanted to go back and write this post about the journey from $0 to $1k.

In case it’s not obvious from the title, this isn’t one of those exciting “I built something in a weekend, launched it and paying customers rained from the skies” posts. Not to malign those, I enjoy them as much as the next guy. But, that’s not been my experience or the experience of anyone else I know. This post is about the journey over 4 years to go from launching ideas that had little chance of success, to launching Corrello (Dashboards for agile teams using Trello, if that’s you check it out :)) which is showing some signs of being a success. I wanted to write something for those of us who struggled to level up their skills and knowledge by failing over and over. I want to focus on what I learned in the 4 years before I started work on my latest venture, not on the tactics I’ve learned since. Because I think there is value on those lessons, and without learning those I wouldn’t have got to $1000 MRR and beyond. I’m not going to cover everything, just the highlights. And I’ll try to keep things succinct. If you’re a software developer or budding entrepreneur who wants to launch their own software product there should be value in the story below.

57 months to go – JobsTractor.com

I registered the domain name JobsTractor.com on March 11th 2011. Jobs Tractor got taken down last March and never made me any money. That was the first time I actually launched one of my side projects so I’m taking that as the slightly arbitrary start date of my journey to $1000 MRR.

I started Jobs Tractor with a simple idea “Top blogs like Joel on Software etc. make good money advertising jobs, so what if a load of smaller sites ganged together and did the same?”. The plan was to offer an alternative to advertising, and by aggregating readers from multiple blogs we could reach a similar audience to those larger sites. I built the site out, including heavy load testing of the endpoints which would be used to get the jobs to display on people’s blogs. I think I actually built some stuff to get the most relevant jobs based on the user’s location from their IP address. Obviously I had all the user admin, the ability to post and edit jobs and paypal (bleargh!) integrated to take payments. I also had to learn how to host and deploy everything as this was the first side project I’d actually put out into the wild. All this took several months of evenings and weekends. I honestly can’t remember what I did to ‘launch’ the site, I probably just put it up and posted it to HN. No one came, no one cared.

Whilst building Jobs Tractor I’d come across a couple similar services which had closed their doors or pivoted some time ago. One still had a list of the blogs they published jobs on. I started looking for contact details and emailing the people behind those blogs. The bloggers who got back to me told me that the service never really worked for them and that they did a lot better from advertising anyway. Which put an end to that whole plan! That was the last time I invested that much effort in something without getting some feedback on the idea first. Memories of weekends sat at home working while my friends (and girlfriend, now wife) were out somewhere nice in the sun inoculated me against building too much functionality without first getting some input from potential users.

A few months later I was messing around with Mongo, Node and the Twitter API, trying to find what programming languages people were hiring for near me. I had a simple search to get tweets which looked like job posts, filtered out jobs boards and recruiters, did some simple classification to remove tweets which weren’t jobs and worked out where the job was based and the programming languages involved. This turned out to be a potentially useful way of finding people hiring developers directly via twitter (minus the recruiters and job boards spam) so I incorporated some Javascript which would identify where a user was geographically, and then had the site load the most recently posted jobs close to them. I posted this new site to HN, hit the top of the front page for several hours and had to have a serious sit down to relax myself! I’d included the ability for people to give me their email addresses in return for a weekly email with jobs for their location. Having learned my lesson about writing code no one was going to execute I’d not actually written anything to send the emails out. I spent the weekend happily hacking that together in time for the first batch of emails to go out on Monday.

Next I started emailing news sites trying to get some coverage for Jobs Tractor. This was hard work at first and I spent far too long hemming and hawwing before sending each email. It’s strange to think how shy/nervous I was about sending those emails back then. But you only get past that sort of roadblock by doing the thing you’re nervous about and I can honestly say it’s not something which gives me pause for thought nowadays. Lesson learned here? If something needs to be done but feels unnatural just find a way to get it done. Repeated exposure will make it easier over time.

I spent odd bits of time over the next couple of years trying to get some revenue from Jobs Tractor. At first I thought the users I had would be useful in attracting employers but in reality I had probably one or two people in dozens of cities around the world so any employer trying to post a job was unlikely to find someone local with the skills they needed. Possibly I could have picked a location which I seemed to have a lot of devs in and focus my efforts there, including a lot of personal out reach to employers. This may have worked but I wasn’t ready for that kind of approach at the time.

Jobs Tractor remained up and working until early last year when I decided to kill it to save load on my server. I learned a few things from the experience, but the main takeaway for me (apart from not wasting time on code no one will use) was to build something people can get utility from without needing to have other people on the site. What I’d built was a two sided market place. If you’re no good at marketing, a two sided market place just means you shot yourself in the foot twice. Two sided market place ideas always sounds great at first, and once you’re at scale the are. But to get there you need to attract each side of the market. And just because you have one side doesn’t mean the other side will magically appear. You still need to tell them about it. Beware ideas which only sound interesting once you’ve got 1000s of users on your site, unless you have a clear plan on how to get those early 1000s interested.

42 Months to go – WordSearchGenerator.org

The rules so far:

  1. Don’t spend ages building a load of highly polished functionality no one will ever see.
  2. Build something user 1 can pay for and get use from without needing other people on the site.

You may well have heard of Patrick McKenzie and his original business selling bingo cards to school teachers. Well, I did some googling and checked search volumes for a similar niche selling software which would generate word searches. It seemed OKish, with a bunch of crappy sites, some reasonable search volume and low competition on those keywords. I put up a site using a landing page generator, when users clicked the buy button they went through to a form which said we were coming soon and asked for an email address. This collected a bunch of email addresses and convinced me it was worth pushing ahead. I wish I could remember numbers here but I can’t so just trust me it seemed like it might be a sensible idea, although I was probably willing it to be if I’m honest. The site didn’t take long to build and looked like it was from sometime slightly after the late 90’s, I was pretty pleased with it! I deployed it, fired up adwords and started thinking about content marketing and SEO. In the end I ran it for a while without getting any actual paid customers. People were checking it out but didn’t want to pay when I asked them to subscribe to the service. I dropped the price, and dropped it again. In the end I was almost giving it away ($19 lifetime subscription) , and even if I could get a few signups it was going to be a long way off being a significant amount of monthly revenue.

What did I learn here? This was one of many small sites I built and deployed fairly quickly. Ultimately I learned I wanted to build a SaaS rather than go after one off sales, and that I needed to target people who had a problem big enough they were going to pay serious money ($30/month or more) to have it solved. I also learned something (but not enough) about contacting your early users. I collected those first batch of email addresses but did nothing to get in contact with them until I launched.

22 Months to go – HuliMail.com

The rules:

  1. Don’t spend ages building a load of perfect functionality no one will ever see
  2. Build something user 1 can pay for and get use from without needing other people on the site
  3. Build something worth $30/month or more

Hulimail came to me while reading up on marketing technologies. In the preceding few years I’d started to develop an interest in marketing (if not any real skills). I was reading an article on the FullContact blog one night about how Maptia had jerryrigged something to send them an email with research on new signups to their prelaunch mailing list. The following day I was up early, coding for 12 hours straight (happy pre-parenthood times when I had 12 straight hours free on a Saturday :)). On Sunday I decided to rein myself in from coding too much before some validation and focused on getting a landing page up instead. I started collecting email addresses and posted the site to betalist. Someone also posted the pre-launch site to ProductHunt which got me another 100 or so email addresses.

As I built I posted updates to the mailing list and heard back from people occasionally. I started onboarding people individually but didn’t really get anyone that interested in the solution I was offering. I did get a few people signing up but for the most part they were interested in free access in return for ‘help developing the product’ or in one case some actual promotion to their sizeable audience. I took these offers as I wasn’t really a user of the tool myself and felt I needed people’s feedback. In retrospect I should have pushed for people to pay, and if they weren’t willing I should have looked for someone who was. Not doing so early on let me keep working on something which I think ultimately didn’t have a market I could find economically.

If I learned a lesson here it was about validation, and that people wanting to use your software for free isn’t enough (it’s something, just not enough). The interest in Hulimail wasn’t from people with a problem they desperately needed solving, but something they’d like solved if it was cheap/free to do so. I also learned to consider the market. The people interested in Hulimail were mostly trying to avoid spending money somewhere else, this doesn’t make for a lucrative customer base.

10 Months to go – Corrello

The rules:

  1. Don’t spend ages building a load of perfect functionality no one will ever see
  2. Build something user 1 can pay for and get use from without needing other people on the site
  3. Build something worth $30/month or more
  4. Build something to solve a problem people are willing to pay for
  5. Charge early, and beware products aimed at people resistant to paying for things

I won’t say much about building Corrello, except that I think the final piece of the puzzle fell into place when I had a chance conversation with Josh Pigford (of BareMetrics fame) briefly after launching my MVP. He pushed me to contact everyone who had signed up and to have a conversation with them to understand what problems they were having with reporting from Trello. Rather than assume I knew what I should build I should start by finding out as many people’s problems as possible. This was something which was missing from my previous efforts. I’d always considered the pre-launch mailing list as a group of people interested in what I was building. Instead, I started to view them as people with problems in roughly the area I was working in, who I should talk to and understand those problems so I can decide exactly what to build. This led to a change of direction and ultimately a fairly well defined market to go after. This is an important lesson for a lot of entrepreneurs I think as it’s easy to fall in love with your idea. You need to talk to anyone interested enough to give you their time and find out what their problems actually are.

If you’d like to hear more about my journey over the last year you should check out my interview on the excellent Britstrapped podcast.

Conclusion

The rules (for me YMMV):

  1. Don’t spend ages building a load of perfect functionality no one will ever see
  2. Build something user 1 can pay for and get use from without needing other people on the site
  3. Build something worth $30/month or more
  4. Build something to solve a problem people are willing to pay for
  5. Charge early, and beware products aimed at people resistant to paying for things
  6. Your pre-launch list (and early customers) are probably interested in something other than (but close to) what you are building. Success comes from finding out what that is

It’s been a fun/hard/exciting/depressing few years working on this stuff. It’s been a slog at times, but I’m glad I did it. I don’t think you can really succeed at anything meaningful without failing a bunch first. If you’re in a similar place to where I was, keep at it and try to make sure you don’t make the same mistake twice.

The only other thing I’d say is that if you’re on an agile team using Trello you should check out Corrello :).