Hello! What's your background, and what are you working on?
Hi! My name is Alan Hamlett, and I'm the founder of WakaTime, a collection of plugins to measure your programming.
WakaTime is used by programmers, contractors, and students to automatically report stats about their programming activity and editor usage. And it's very recently reached the 100 thousand user milestone!
What motivated you to get started with WakaTime?
It was in May 2013 after work one day. Back then I had a full time job, but was also independently contracting. That meant I had to track my hours for billing. Remembering to start and stop the timer was very annoying so I decided to automate it.
Around 10pm on May 13th, 2013, I was talking with my friends and roommates around our fire pit. We were all programmers living in a hacker house and aspiring to build startups.
While we had some steaks, smores, and beer, I pitched the idea to my friends. Like every idea, there was a lot of criticism and skepticism. However, one of my friends verbally "signed up" to use it when ready.
So I started working on the prototype that night, and a month later this friend became the second WakaTime user.
What went into building the initial product?
Mostly my time. It takes a great deal of time to build anything. Domain names are cheap, micro servers were free back then, but these days I would go serverless with something like Graph.cool.
Building an MVP for WakaTime was only possible with a lot of time and experience building many other products. I limited features in the MVP to only one chart and two editor plugins.
The first WakaTime plugin was for Vim, which took a month from start to finish. During that month I also built the website to show a simple breakdown of each day's coding activity in an SVG chart.
After the Vim plugin and the website, I built the Sublime Text plugin in about a week. My oldest coding activity is from June 25th, 2013, which was the first time the Vim plugin was able to track my coding while building WakaTime.
Over the next 4 years I worked a full-time job, while spending my evenings and weekends building WakaTime. Each plugin took about a week or two of programming for the initial release, and more maintenance afterwards.
WakaTime Plugins
Plugin coding activity
However, the plugins were easy compared to the website. In total, I've put in over 2,600 hours of coding activity since 2013 on the website.
I also couldn't have built WakaTime without the help of open-source libraries like Flask and SQLAlchemy.
How have you attracted users and grown WakaTime?
I launched WakaTime in 2013 with a Show HN post to Hacker News, which brought around 700 initial signups. I measure three different growth metrics:
- Signup
- Onboarded (when the user has installed the plugin)
- Paid Upgrades
From the initial 700 signups, 160 finished onboarding. A year later I created paid plans, and eventually 20 of the 700 initial users became paid users.
Every time I finished a new plugin, I treated it as a mini-launch and emailed any subscribers waiting for it, as well as posted to message boards and forums about the new editor support.
I don't use paid advertising, because past Facebook ads resulted in mostly fake signups that never installed a plugin. Google adwords performs better than Facebook, but it's also more expensive. You can get most of the adwords traffic with good SEO.
Growing by word of mouth has worked great. People tell their friends about a good product, and that growth is much steadier than artificial paid spikes.
To increase active users, I focused on improving the onboarding experience. In 2013 only 15% of users finished onboarding, and now in 2017, 65% of new signups finish onboarding. This means the effort I spend finding new users is not wasted, because more of those new users finish onboarding.
Onboarding Completion Rates
2013 to 2017
% of newly-registered users who finished onboarding
What's your business model, and how have you grown your revenue?
When I started WakaTime in 2013, I just wanted to build a product that I myself and other programmers would enjoy using. I had plans for SaaS pricing ready, but honestly didn't know if anyone would upgrade to the paid plans. I was focusing on improving the dashboards, building more plugins, and just keeping the website online with fast page loads. My housemates Rob and Kirubakaran convinced me to spend a weekend adding paid plans, so it wasn't until a year after launching that you could pay for WakaTime.
A difficult part of paid plans is figuring out how much to charge for your product. WakaTime started at $5/mo, but as the number of features increased it started to seem undervalued for what it offered.
I was reluctant to increase prices, but changed the individual premium plan to $9/mo and added a team dashboard for $12/mo per seat. This helped keep the revenue above costs as the traffic and data grew.
Paying Users
2013 to 2017
Paid users are spread out worldwide, with most in the US, followed by the EU, South America, then Asia. Stripe is amazing and accounts for most of the paid users. PayPal/Braintree is more popular among non-US users.
Things I spend money on to keep the website up:
- Nephoscale: $1,600/mo
- Stripe: $300/mo
- Braintree/PayPal: $200/mo
- Mailgun: $160/mo
- Namecheap: $60/yr
- Amazon AWS: $21/mo
- GitHub: $9/mo
- Google GSuite: $9/mo
I also send out sponsored emails for developer-related products. Upstart and Pear are good places to find advertisers for your newsletter. This is supplementary, but nowhere near the main SaaS revenue.
What are your goals for the future?
Personally, I think life's too diverse for only one language, so I'm learning German.
For WakaTime, I want to make onboarding easier with a universal installer. After that, I'll add an invoicing tool so you can generate and send PDF invoices pre-filled with your coding activity.
It might sound strange, but I also want to set a goal to spend less time building WakaTime. This would mean being more productive with my time, and being more focused when working on WakaTime.
What are the biggest challenges you've faced and obstacles you've overcome?
With startups the challenges are always present. As soon as you solve one marketing hurdle, scaling problem, or product feature, you're presented with bigger challenges. That's part of the fun of startups… always having new challenges.
The biggest obstacle I've overcome was having the constant persistence to work on WakaTime, even when it wasn't making any revenue.
I put off charging for WakaTime until over a year after launching. If I could do things differently I would have created a paid version from day one.
Have you found anything particularly helpful or advantageous?
The biggest advantage I've had is that I built WakaTime for myself. This way feature development came naturally, and I already knew how to market it. Also, it helped me continue working on WakaTime even without it making revenue or seeing exponential growth.
Books can make you feel like you're being productive without actually building anything. The best startup book is one you never open because you're too busy marketing and building your product.
I have found tremendous help with a network of entrepreneurial-minded friends. Whether they were doing a startup or working for one, they all helped more than a book would have.
What's your advice for indie hackers who are just starting out?
Stop reading and start building.
Even if you don't code now, you can figure out enough to build a prototype. My suggestion is to get good/fast at building working prototypes.
Where can we go to learn more?
WakaTime.com to sign up.
You can follow @WakaTime on Twitter.
I'll be reading the comments below and will do my best to answer your questions!
Thanks for the interview!
Just signed up, and found the "Goals" feature. It's exactly what I've been looking for, something to ensure that I'm hitting my programming targets. I'm always stressing that I'm not spending enough time per week on my side projects, this is a great way to track exactly how much time I've spent!
Awesome job!
I liked these 2 points.
"You can get most of the adwords traffic with good SEO."
"Stop reading, and start building."
Hi Alan,
Thanks for the interview!
What do you use Nephoscale for? It seems like the monthly cost dwarfs all of your other services.
Nephoscale replaced my EC2 virtual machines... I was spending $3k to $5k per month on Amazon EC2, but switched all the servers to Nephoscale for half the price and better performance.
Alan, really insightful interview. Thanks!
Quick question: I've been using WakaTime for a couple years now but only as something interesting to check out here and there. As a consultant, I bill for activities that don't necessarily require my editor be on my screen, which was my initial reason for dismissing WakaTime as an accurate time tracker. But you're saying that lots of people are using WakaTime as a time tracker. Does it take all the other work into account? Does it need to be paired with a traditional time tracker for that sort of work?
Great question! On your WakaTime dashboard there's a chart showing when you started and stopped coding each day. Instead of a traditional time tracker, I use that chart and bill for all time in-between. I recently wrote a blog post related to this here that shows the chart I'm talking about: https://wakatime.com/blog/27-fill-the-gaps-in-your-coding-activity
I use my editor to take notes during meetings, so that time is in WakaTime. If I'm doing something completely unrelated to coding, I would open my editor and save a text file before starting just so the time is tracked. For that last use case I've thought about allowed annotations so you can manually add chunks of time to WakaTime. Would you use a manual annotation if WakaTime supported that?
Using Wakatime over a year now,
A great great product. Really useful
Thanks !
Thank you!
Thanks for your sharing. Hope you can contribute more quality posts to this page. Thank you!
https://despacito-lyrics.com,
http://colorswitch2.com
Additional to the "Goals" feature, I also love the private leaderboards. I can compare my weekly coding time with that of my friends, which motivates me to code more but it also helps me to keep track of my friend's skills. Every now and then I get surprises, e.g.: "Oh, I didn't know Amy codes in Go, I should tell her about what I'm working on..."