12
24 Comments

Turning My Small Side Project Into a Business Making $40k/mo

Hello! What's your background, and what are you working on?

My name is Aaron Davidson, and I'm in my late 30s. After I finished a BSc. and MSc. in Computer Science, I've worked at or co-founded a number of interesting software companies — in biotech, online poker, games, and communications software.

Cronometer.com is a personal diet and health tracker that (unlike the more popular mass-market trackers out there) features an eccentric devotion to overly-detailed nutrition data and analysis, and a pedantic focus on getting the science and data correct.

Cronometer started as a personal side project in 2005, and over the years slowly transformed from a hobby into a real company with $40,000/month in revenue, several full-time employees, and over a million users.

What motivated you to get started with Cronometer?

It was 2005 and I wanted to live forever... I was volunteering with Aubrey de Grey and the Methuselah Foundation and was learning all about the CRON diet (Caloric Restriction w/ Optimal Nutrition), which at the time was the most researched intervention in mammals that provably boosted life and health-spans.

People interested in trying this diet need to carefully analyze and track their nutrient intake to safely do a long-term calorie restricted diet. Nothing out there at the time was any good, so I wrote my one diet tool.

I called it "CRON-O-Meter", as the program featured little progress bars for all your daily nutrient requirements. As you logged healthy foods to your day, you'd see your target bars fill up to 100% — hence the "O-Meter" part.

This was just a little Java + Swing desktop GUI app I released as an open-source project on SourceForge, and announced to the other CRON hobbyists online. It slowly gained a small following in this community and spread from there. I continued to maintain the project and keep the data updated for many years, and it continued to slowly gain popularity.

What went into building that initial product?

It took about two months of my time to launch the MVP (minimum viable product), and then about three more months to iterate and roll out the iOS and Android apps, and the premium upgrade. I wrote the server/web version in Google Web Toolkit, so it's primarily Java, and we run on Amazon Web Services (AWS).

During this time I was unemployed and doing a small amount of consulting with my former employer to pay the bills. I was also diligently skiing all the fresh powder in Banff and then scrambling and mountain biking the nice summer days — I had a pretty awesome work-life balance in those days.

At what point did you begin to turn Cronometer into a "real company"?

At the start of 2011 I had just quit my high-paying job in online poker in Ireland and moved back to the Canadian Rockies to be a ski bum for a while. All the CRON-O-Meter emails (bugs, questions, requests) were starting to feel like a bad job. Clearly there was some traction here.

I live a good life. It's a marathon, not a sprint.

I knew I'd need some income soon, so I started a complete re-write from scratch that would become the SaaS version — hosted in the cloud with a web-app and accompanying mobile app. In February 2011 I launched Cronometer.com.

It was the definition of a minimum viable product — embarrassingly ugly, clunky, and limited, but it worked. I launched the free web version with a few Adsense ads and a premium "gold" version users could subscribe to. I also continued to support the open source CRON-O-Meter app, but included an easy way to migrate the data into a Cronometer account.

Because of the historical user base, I immediately had users and a trickle of revenue. By this time it was also clear that while it was designed to scratch my own itch, it was being adopted by many other groups who needed hard-core nutrition analysis — athletes, people managing medical conditions, vegans, and ketogenic dieters.

By the fall of 2011 it was making roughly $2000/mo in revenue — more than enough to cover hosting costs, but not nearly enough to live off of. At that same time, several friends all got laid off in the aftermath of Full Tilt Poker's spectacular self-destruction (a whole other long story), and I ended up spending the next four years with them doing two other funded startups.

During those four years, I had very little time to devote to Cronometer, and it was essentially on life-support and basic maintenance. I'd occasionally squeeze a few new features in here and there, but it was pretty limited.

Cronometer Home

Cronometer's home page in May 2017.

Despite this, it continued to grow solidly each year. By the end of 2012 it was making $3.5k/mo, then $6k/mo in 2013, $12k in 2014, and $18k/mo in 2015. In 2015 I started using some of the money saved up to hire some contract developers, and I started making some progress on much-needed product improvements.

In 2016 (at $28k/mo) I went from working full-time to part-time at my other startup and hired my first full-time employees. In 2017 I finally went full time. We are now making $40k/mo and have 4 full-time and 2 part-time staff.

Despite slowly bootstrapping from a hobby to a real company over 12 years, we're still very much like a young startup in many ways, since the pace was so incremental for most of those years.

What'd you do to spur that kind of user growth over the years?

We've grown almost entirely organically from word-of-mouth. If you have a noteworthy product and you're willing to sit and wait 5-10 years, organic acquisition is easy!

We actually still have very poor SEO. We are largely a single page app with very little content that can be crawled. Since our competitors are so SEO-driven, we decided not to invest much in playing that game. We don't have much SEO presence at all. What we do have are lots and lots of people chatting about us on the internet, recommending it on their blogs, forums, Reddit, YouTube videos, and so on.

We did experiment with paid Google and Facebook ads, but we quickly determined we'd never come close to making a positive ROI on those ad spends.

Our most successful active marketing efforts have come from partnerships and sponsorships with targeted influencers in the personal health and dieting space. Cross-promotions with authority figures that are already big fans of Cronometer has helped attract users from their audiences.

As we mature as a business we'll need to develop a real brand and marketing strategy, but right now we're still very much product and engineering focussed. We currently get over 1500 new signups per day, but we have a long way to go to improve retention.

What's your business model, and how have you grown your revenue?

We make revenue from 3 main sources:

  • Adsense revenue from the free version
  • Subscription revenue from the Gold and Professional editions
  • Mobile App sales

We use Stripe exclusively now. We used to offer Stripe, Paypal, and BitPay (for Bitcoin), but simplifying the option to just use Stripe was worthwhile.

Over the years we haven't really changed anything much at all with the structure here, and have just continued to focus on improving the product itself, which has gained us better retention and conversion rates.

Have a way to make money from day one. You need to cover costs, and you need to know if people will pay.

We have a very interesting seasonal pattern. Every year we see massive growth starting on January 2nd. After the New Year's Eve hangover has worn off, the resolutions kick in and people start working on their beach bodies for summer. We see rapid growth until March and then slower growth into August. Then there's a slow decline into the winter and particularly large drop from Thanksgiving on into the Christmas holidays.

It all makes perfect sense, and we see this very strong pattern every year. The good thing is that we always grow far more in the first half of the year, than we shrink in the last half!

Cronometer Reveneue Chart

Our revenues have grown proportionally with the growth of our user base, with the exception of ad revenue which has dropped significantly since last year, despite our having a much larger audience. Many users are installing ad blockers, and it's been a constant source of frustration that Google's Adsense constantly serves out malware and misbehaving ads that take over the browser.

What are your goals for the future, and how do you plan to accomplish them?

We're really excited about our recent big projects. We recently launched a Professional version that lets healthcare and wellness providers manage their roster of clients. They can monitor, interact with, and coach them in real time, all within our system. We think we're on to a big new market with this and are rapidly improving it as we listen to feedback from out first 100 Pro customers (doctors, dieticians, fitness coaches, nutritionists).

We're also forging ahead with some big investments in our data curation. We want to have the biggest and best nutrition database on the planet. We're only going to be able to do that if we can find clever ways to automate what is often very labor intensive data entry and curation. We're working on some smart systems to try and bring those costs way down. It's a difficult project, but a key component to our long-term success.

On a more personal level, my goal is to keep growing the company into a robust one that will be around for a long time. I have a great lifestyle and still live in a small mountain town (Revelstoke, BC) with a great Ski Resort just minutes from my front door.

What are the biggest challenges and obstacles you've overcome?

The biggest challenge has always been the lack of resources to get things done. Being bootstrapped means your capacity to get things done is capped by cash flow, which can be endlessly frustrating. We're always maxed out on cash flow with an ever-growing backlog of work to do. We have to wait to hire much needed people until the growth is there to support them.

I often wonder where I'd be with this business if I had raised a traditional round of financing and been more aggressive with it early on!

One decision I made early on has had long-lasting consequences. When I wrote the native iOS and Android apps, I didn't spend time making any UI to sign up and configure an account. I focused just on getting the app out with the essentials, so an existing user who had already made an account on Cronometer could download our app and use it.

However, anyone new who came to us through the App Store would not be able to make an account. To avoid the customer service overhead of all the complaints I'd inevitably get from these users, I decided to charge for the app hypothesizing that no one would pay $2.99 for the app if they didn't already have an account.

Fast forward to today, and we're kind of stuck with that old decision because those app sales are a large chunk of our revenue, and we can't afford to change it to a free app with ads without a huge hit to our cash flow. Meanwhile, our competitors that released free apps grew far faster — MyFitnessPal sold to Under Armour in 2015 for $474M. Oops!

Support has been a huge burden. Even with dedicated help, so many things still have to be escalated to me, it eats up a lot of time that I wish could be spent on development instead. But at the same time, it's so important to have that constant dialogue with your customers, and talking directly to customers experiencing pain points in your product is invaluable.

What have your biggest advantages been?

With this business, I had the rare luxury of stumbling upon traction without looking for it. It started as a personal hobby project to scratch my own itch, and eventually there was a clear signal that there was a market demand for it.

If you're not trying to be the next Silicon Valley unicorn, that's probably a good strategy for finding traction. If you build a product for yourself because it doesn't yet exist and you really need it, there's probably a million others like you out there. Maybe not a billion, but unless you're a freak, there's a million. And thats enough to build a good small company out of.

I can't really claim there's any other secret sauce — if you have an MVP with traction, then all you need after that is good execution. On the development side, I'm very comfortable. Other than resource constraints providing a heavy throttle, we can execute on that very effectively. I feel like at this point in my career I confidently know how to write software and run a team.

Executing operationally is also important. Pay attention to your metrics/log/customers every day. I have a morning routine over my first few cups of coffee:

  1. I read through the support email queue and forums and triage any important issues.
  2. I scan our system metrics in New Relic, read through any fresh stack traces and crash logs.

It's a quick pulse check on how things are operating, and it often uncovers hidden issues I wouldn't have otherwise spotted until much later.

Despite having a viable and growing product that people love, I still wake up every day and see a dumpster fire.

As we're a 100% remote team (with people in Canada, US, and Ireland), we use Slack to run the company. Not just for daily chat, but operational awareness. We integrate source control, issue tracking, builds, deployment messaging, alerting, sales, and KPI messaging into Slack, so as a team we all know operationally what's going on in the system.

On the marketing side of things, I'm still completely out of my element. To grow there, I feel will need outside help or to hire to bring that experience on. As an engineer, I just don't process that world well. On my more arrogant days, I feel we don't need to invest in marketing, as we already have strong organic acquisition, so resources are better spent on improving the product (yielding better retention and more word-of-mouth).

I firmly believe in making sure we offer great support. Nothing surprises and delights customers more than a fast and personal response to their emails. Don't waste opportunities to delight your users. This pays dividends and helps you earn loyalty and glowing reviews.

What's your advice for indie hackers who are just starting out?

Most of this is cliche, but it's true!

  • Release early and often. You should constantly be embarrassed about your product in front of people, and just keep grinding away at improving it in the open. People are forgiving if it's useful, and respond positively to seeing progress! Feedback is invaluable. The more they feel your product has potential, the more complaints you'll get. Complaints and demands for improvements are a strong signal you have traction. Lack of criticism means no one cares about your product enough to complain.

  • Have a way to make money from day one. You need to cover costs, and you need to know if people will pay. And users need to know you're not going to go belly up, so you'd better demonstrate a viable business model from day one, even if you have a free tier.

  • I worked another job full time while running Cronometer for years. It was doable, but I came close to burning out several times. To help with this, I was lucky I was able to negotiate moving to part-time at my day-job until I could afford to go full-time.

  • Cloud all the things! We use AWS, BitBucket, Pivotal Tracker, Stripe, and Slack.

  • Work/life balance, duh! I don't work more than 40 hours a week. I take mornings off to ski the powder days. I live a good life. It's a marathon, not a sprint.

  • Despite having a viable and growing product that people love, I still wake up every day and see a dumpster fire. All I can see are all the flaws and missing features and problematic user experiences. All I can do is spend our limited resources to try and improve things, one day at a time.

Where can we go to learn more?

Our website is Cronometer.com, and you can learn more about me at https://www.linkedin.com/in/theaarondavidson.

I'm happy to take some questions down below!

  1. 1

    Hi Aaron, impressive story of turning your side-hobby to a business generating steady MRR and think your B2B strategy makes a lot of sense to serve insurers, dieticians and the like. Would be curious to see what the users' demographics is like? Where I'm based in Hong Kong, and wider Asia, there is a massive wellness evolution and a solution like Cronometer would be highly relevant

  2. 1

    Very nice. I've been a user of Cronometer for a long time, nice to see that you've been able to turn it into a profitable business. I always just assumed it was profitable as it has always been reliable. I'm an engineer as well and often wondered about the development challenges, specific calculating data over time. The main question I asked myself was whether or not I would store pre-computed data for calories/carbs/fats/protein/vitamins/minerals/etc. for everyday, calculate it on the fly, or use some sort of materialized view that gets recomputed triggered by changes to prior data. Computed views seem risky if any bugs creep into the calculations done but useful for taking some load off of the database and speeding up queries for backtracking data. Has this been an issue for you?

    1. 1

      We calculate everything on the fly. It's not very expensive to do so, as generally calculations are over short time ranges, and large time range are infrequent.

  3. 1

    Have you had any offers to buy Cronometer?

  4. 1

    I use Cronometer myself, and was pleasantly surprised to see this interview here! It's a great product that meets a demand none similar do well—highly detailed and accurate micronutrients (vitamins, minerals, amino acids, etc.) tracking. It really sends home the effectiveness of taking the time to build and improve a tool to do a specific job so uncompromisingly well.

  5. 1

    Hi Aaron thanks for sharing , not sure if I am asking this too late.

    How did you come up with $2.99 for the paid plan?

    I mean was there any significance with that numeric figure of 2.99?

    Do you have any plans to change this price as your product develops or user growth accelerates etc?

    1. 1

      I set it to $2.99, to deter random people from purchasing it. I didn't want the support burden of dealing with zillions of free users. I only wanted existing web users to discover it and I figured they'd be comfortable paying that fee. I could probably raise the price but I haven't experimented more. Long term, I'd like to switch to a free model with gold subscriptions, like we have on the web version.

  6. 1

    Hey Aaron! My wife and I were married in Banff. Love it.

    I'm very interested in your goal of creating the best nutrition database on the planet. Do you think you'd make that available as a service/API?

    1. 1

      That's not our immediate focus, but it's certainly a potential additional business model we could explore someday

      1. 1

        I was searching the web to see if cronometer api existed and came across this interview. I have found it very useful, thank you for sharing your story. I have been working on and off on a meal planner project for the last 3 years as a side project while working in construction. I personally use chronometer as I am passionate about nutrition and fitness, and I would love to integrate cronometer api to my meal planner should you decide to make this available one day. MyfitnessPal has an api available but of course they don't have the most accurate database on the planet ;)

        How would you recommend I implement nutritional information tracking in my meal planner app? i.e. how would I go about building my own database with accurate information, how did you go about doing it?

        1. 1

          For US data, use USDA's Food Data Central: https://fdc.nal.usda.gov
          For EU data, try https://world.openfoodfacts.org
          Good luck with your planner!

          1. 1

            Thank you for taking the time to reply. I appreciate it.

            1. 1

              Hello, I was considering the same things, I think cronometer is one of the most useful apps I have on my smartphone. I was thinking about create a similar app for italian market, since here people really don't know english foods' names. And database is a bit different, I also have an idea on use AI to detect food from photos.
              If some of you is interested in this as a side project I would be really excited. Because as far as I know cronometer is not exposing APIs and the databse is motly US.

              Bye guys.

      2. 1

        Not an entirely serious question but what about a photo-shazam (to quote a show) for food. Take a photo of a food item or dinner plate and it says "this fits in your caloric intake plan". Think of the future dual-camera phones with stereoscopic-imaging you could get dimensions of the food and estimate calories by volume.

        1. 1

          A few apps have tried to do this. I think it's pretty gimmicky because it is not possible to do this correctly except for simple contrived examples like a piece of fruit. You can't take a photo of a sandwich or a soup and know what the ingredients are, and be even remotely accurate.

          1. 1

            Thank you for taking the time to respond to my post. Yeah you're right especially stuff that is not visible. It was a pointless-thought on my part. A "wouldn't it be cool if..."

            Good luck with your continual growth and thanks for sharing on IH where I was able to glean some insight.

  7. 1

    What % of your users converted to a paid plan? Also can you explain more about the cross-promotions with authority figures that helped attract users from their audiences?

    1. 1

      It depends how you define a user — a signup? or an active user? Less than 1% of signups convert to a paying subscription, but 20% convert to a one-time purchase of our mobile app ($2.99), and a much higher % (sorry I don't have it handy) of highly active users convert to our gold subscriptions.

      Our biggest cross-promotion so far was with mercola.com, a massively popular alternative health website — we did some customized co-branding and specialized features for Dr. Mercola's latest book (promoting a low-carb high-fat diet), and he has in turn promoted us heavily to his large audience. We have also experimented with directly sponsoring some popular youtube channels in the vegan community, and a popular ketogenic podcast — to mixed results.

  8. 1

    Hey Aaron! Great story, I hope your company continues to grow :) I'm from Toronto so good to hear an indie hacker story from Canada.

    My question is: How minimal should an MVP be? I'm constantly asking myself, how ugly/crappy should I let my projects be when I first launch them? I'm an aspiring indie developer so I don't have much experience on these things.

    I guess it's sort of a broad question, but if you could give me your thoughts on your experience with MVPs it would greatly help!

    Thanks!

    • Josh
    1. 1

      Hi Josh, MVP should have the core functionality that offers a customer some true value, but nothing more. It doesn't need any bells or whistles, just the basic idea should be functional. It doesn't have to be pretty either, but the UI shouldn't be horrific. This all depends a bit on existing competition as well. If you're in a market with existing offerings, you might need a bit more 'basics' to not be immediately dismissed by users, but your main value prop should be able to stand on it's own. If you get people begging for features/complaining, you can consider that a strong signal they care about your MVP and see the potential.

      1. 1

        I have always struggled with determining the initial level of aesthetics in my projects, thanks for clearing it up. Your other points are also very helpful :) thanks!

        1. 1

          I think as long as you solve a problem for a user, and the UI isn't so bad it gets in the way of solving the problem, that's going to be a good MVP