Insomnia

Gregory Schier talks about growing his apps monthly recurring revenue, his journey toward financial independence, and why it's crucial to learn to finish what you start.

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

My name is Greg Schier and I'm a full-stack developer living in Victoria, Canada. I moved to Victoria from a small town in 2008 to start a degree in mechanical engineering, then eventually transitioned to computer science after being introduced to it in a first-year programming course. During my time in university I built and launched many side projects, failed at a startup, and joined Sendwithus as one of the first two employees. Now I'm a full-time solopreneur working on Insomnia.

Insomnia is a desktop application aimed to help developers interact with HTTP APIs. It allows the user to define, organize, and execute HTTP requests inside an easy to use and well designed interface (something lacking in most developer tools).

The app began as a side-project and remained that way for over a year, until I eventually left my job to pursue it full-time. After leaving, I built out Insomnia's feature-set and pushed hard to introduce a paid plan as soon as possible.

Insomnia now has 20,000 monthly users and grossed over $800 in February — the fourth month of revenue. The user base currently grows over 20% monthly, which will lead to sustainability within the next eight months.

Insomnia's Home Page

What motivated you to get started with Insomnia?

I started working on Insomnia at Sendwithus to help us interact with the API we were building. The user base began growing organically, and so did my motivation. Within a year I was spending nearly 40 hours a week on it — on top of my real job — and was burning out. I had always wanted to work for myself so I decided to leave Sendwithus and take Insomnia full-time, a decision that took over six months to make.

I can't explain how good it feels to not have to go into an office or report to anyone.

Tweet
Share

The first version of the app was very simple and intuitive because it only needed to interact with the Sendwithus API. At the time, similar tools existed (even ones made by real companies) but I found them hard to understand and navigate. I was extremely motivated by the challenge of creating a tool that I would enjoy using.

Since there were similar tools on the market, I didn't spend much time validating the idea. Very shortly after launching, It was clear that users felt the same way about existing tools as I did. Even today, after a huge increase in features and complexity, design has remained a huge priority and is still one of Insomnia's largest competitive advantages.

What went into building the initial product?

The first version of Insomnia was a true MVP (minimum viable product), didn't have a name or logo, and only took a weekend to build. It consisted of a few hundred lines of jQuery, a $20 ThemeForest theme, and a prominent button to submit feedback. I chose to release it as a Chrome App to make distribution easy and that was it. I stuck with the boring tools I was used to and it paid off.

Being a Chrome App, however, came with limitations that prevented Insomnia from providing certain key features. So, I began the huge undertaking of rewriting it as a standalone desktop app using Electron. Rewrites should usually be avoided at all costs, but Insomnia was still a side project at the time, so I treated it as a learning opportunity. It took three months to reach feature parity with the Chrome version and ended up with a more maintainable codebase as a result.

The single most valuable thing you can do is finish what you start.

Tweet
Share

When I left Sendwithus, the rewrite was only half done, so I added a signup form to the website and began collecting emails for a big launch. A month later, Insomnia launched to 1,200 people. Most of these signups originated from clicking through to the website from the Chrome Store page, and a small portion came from social media.

The rewrite turned out to be extremely beneficial in the end. Shortly after, Google announced plans to discontinue Chrome Apps in 2017. If I hadn't just spent three months rewriting it, users would have started looking for alternative tools. Also, a few major competitors on the Chrome Store still don't have alternatives which puts Insomnia in a great position moving forward.

What strategies have you used to attract users and grow Insomnia?

I'll start by admitting that marketing is one of my weakest assets. I have the design skills to make a decent website, but haven't had much real-world experience in PR, SEO, or content marketing. I was lucky to have the Chrome Store drive initial growth, but that channel disappeared after the relaunch.

After losing the Chrome growth channel I knew that Insomnia would need a larger web presence, so I spent a week building a proper website and implementing all the SEO tips I could find. Shortly after launching the new site, Insomnia got posted to Hacker News and stayed at #1 for a full day.

The HN post attracted 40,000 website visits, with about a third originating from re-posts on Reddit and social media. This sudden surge of traffic gave the relaunch of Insomnia its first 10,000 users and kickstarted organic growth. Losing the Chrome Store channel was no longer a problem.

Month Sessions
1st 529
2nd 493
3rd 178
4th 205
5th 17435
6th 25701
7th 5247
8th 2903
9th 1994
10th 838
11th 893
12th 1526
13th 1281
14th 1194

That all happened in early September 2016. Since then, I've been able to get Insomnia featured on OMG! Ubuntu! and the Electron home page but the traffic from those has been minimal compared to HN. Moving forward, I definitely want to spend more time on PR to help feed the fire of growth.

Here's what user growth has looked like since launch:

Month Revenue
8/1 8
15
29
40
31
9
13
31
23
26
25
21
3
11
28
50
100
85
71
35
107
348
424
464
479
406
120
171
487
547
557
9/1 550
443
139
196
1089
2927
1804
1609
1301
368
513
1402
1430
1397
1593
1360
486
610
1558
1684
1652
1527
1300
375
586
1569
1618
1651
1613
1307
10/1 360
506
1453
1595
1614
1535
1374
490
612
1493
1683
1595
1654
1401
409
605
1875
2042
1957
1909
1562
455
791
1973
2002
1952
1913
1563
444
643
1689
11/1 1688
1806
1815
1585
473
805
1963
1980
1920
1915
1540
490
807
1918
1990
2008
1954
1700
490
821
1994
2047
1990
1773
1437
548
906
2128
2214
2149
12/1 2120
1825
589
944
2208
2314
2348
2304
1951
599
1034
2289
2436
2447
2400
1974
561
1011
2358
2390
2336
2173
1523
424
718
1214
1632
1766
1632
1180
391
1/1 529
1459
2296
2426
2454
1926
688
1159
2691
2850
2900
2881
2388
739
1265
2924
3031
3110
3090
2615
828
1296
3031
3177
3075
2951
2502
784
1166
3038
3129
2/1 3267
3208
3055
928
1414
3403
3605
3568
3532
3066
889
1580
3666
3645
3805
3783
3140
951
1555
3547
3957
3947
3673
3101
949
1604
3678
3872
3/1 3965
3889
3289
987
1725
4013
4031
3979
4042
3468
1049
1463
4118
4136
4182
4114
3559
1063
1551
4213

How does your business model work?

The Insomnia desktop app is free to use, but can be paired with a paid account to unlock cloud features like data sync and team collaboration. This means that a free user never requires server resources. Everything cloud related requires a paid account which keeps the business sustainable. This is one of the biggest advantages of making an offline app as opposed to a web app. For web apps, there is no way to avoid the monetary cost of maintaining a free user base.

The first paid plan was launched in November of 2016. It took a month to write a basic data sync engine, account management, and payment collection via Stripe. I also chose to rely on hosted services like Heroku, New Relic, and Sentry, which increased initial costs but saved countless hours of work. The current cost is around $100 per month, which is a large portion of current MRR (monthly recurring revenue). However, the current configuration should be able to handle at least the next six months of growth.

Since launching the paid plan in November, MRR has doubled every month and is currently at $350 between 50 customers. However, because over half of customers subscribe annually, Insomnia actually earned over $800 in February. I highly recommend adding an annual plan if possible, as the extra upfront cash makes a huge impact on runway.

Here is what MRR has looked like since launch:

Month Revenue
Jul 0
Aug 0
Sep 0
Oct 0
Nov 15
Dec 46
Jan 111
Feb 323
(Mar) 395

This doesn't include revenue from annual subscriptions.

What are your goals for Insomnia's future?

The overarching goal for Insomnia is to grow MRR enough to sustain my current lifestyle. $2,000/month is enough to be ramen profitable and $10,000/month is what I'd make working for another company. At this point I'm confident that $2,000-$5,000 is attainable, but reaching $10,000 is less certain.

So far I've had the luxury of targeting the existing user base for upgrades, so MRR growth has been great at around 200% per month. However, it's hard to predict where things will settle to after that well runs dry. Based on the data I have, most upgrades are coming from new users, so hopefully that trend continues.

Besides the obvious goal of sustainability, I have a personal goal of getting out of Canada and traveling the world. A large part of why I chose to become independent is the freedom it provides. I can't explain how good it feels to not have to go into an office, or report to anyone, or sit through unimportant meetings. Obviously there are trade-offs, but so far I'm loving the lifestyle and plan to stay solo for as long as possible.

What are the biggest challenges you've faced?

As a developer by trade, one of my biggest challenges has been to stop acting like one. Software development will always be an important part of building Insomnia, but it's extremely easy to spend more time on it than necessary. For example, refactoring code is one of the most rewarding parts of software development, but in a startup it's usually a huge waste of time. Why? Because if you don't know if anyone wants what you're building, there's no reason to make it maintainable or even comprehensible. This is especially true for indie developers, since only one person needs to understand it.

If something "works" it's usually good enough, and this doesn't only apply to refactoring. If you can find other ways to save time, do it. Don't waste time on trivial things like running your own database or servers if you can just pay for a hosted solution. A boring stack is easy to maintain and frees up time to focus the important things. However, I've learned this lesson multiple times and still fall into bad habits once in awhile.

When building the backend server for Insomnia's paid features, I first tried to build it with the Serverless framework, which I hadn't used before. I ended up having to rewrite it after several weeks of work because it didn't meet performance requirements. Then, when rewriting the app, I chose to try the Elm language, but ended up switching to React because I was more proficient in it.

If I were to start over, I don't think I would do much differently aside from avoiding these time-wasting tangents. I've been fortunate to have learned from many critical mistakes in previous projects and am proud with how smoothly Insomnia has gone so far. There's still a long road ahead, though.

What were your biggest advantages? Was anything particularly helpful?

Since discovering programming in university I've built tools and apps to solve my own problems. I've noticed that a lot of programmers do this too, but many skip last 10% of effort required to launch a public release.

Because I took the extra time to launch the things I build, I learned valuable lessons in topics other than programming like marketing, design, writing, and customer support. Side projects are a great low-risk way of learning valuable product lessons without the risks of running a startup. The things I learned from them have helped tremendously while building Insomnia.

I was also fortunate to have spent three years of my life at Sendwithus, experiencing what it's like going through Y Combinator as an early employee, growing a SaaS business, talking to customers, and scaling a backend service. I don't think anything has been more valuable to me than the time I spent at Sendwithus, both in terms of professional and personal growth.

Opportunities don't just happen, you must create them yourself.

Tweet
Share

The last — and possibly most important — thing was being able to pay off a $35k student loan in two years, then continuing to save a year of living expenses. I had the privilege of earning a $60k-$90k salary, so it was possible to put over half of it in savings every month. I know this won't be possible for everyone, but if you can afford to, set a medium-term savings goal and adjust your lifestyle accordingly.

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

As someone who has launched many projects, I can tell you that the single most valuable thing you can do is finish what you start. I know a lot of people that start projects for themselves, but never actually put them out there for others to use. This is a missed opportunity. As soon as you try to release something publicly you are forced to think about things like usability, documentation, software updates, analytics, marketing, support, and so much more. So, if you only take one thing from this interview, it's this: Take every opportunity to practice launching products to real users. This will also show you whether or not you actually enjoy being an indie hacker.

My second piece of advice is to not reinvent the wheel. At Sendwithus, we were able to scale our service to millions of API requests per hour with only few back-end developers. This was a direct result of heavily investing in hosted services.

Hosting servers, maintaining databases, and tracking users are solved problems, especially at startup scale. Pay for what exists and stop wasting time. Here is a fairly exhaustive list of the services I go back to over and over:

The final piece of advice I have is to ask for what you want. Opportunities don't just happen, you must create them yourself. A few weeks ago, I was hoping to get Insomnia featured on the Electron home page but I wasn't sure how the selection process worked. So, one day I just asked, and Insomnia was featured the next week — just like that.

Where can we go to learn more?

If you're interested in learning more about my journey with Insomnia, head over to the transparency page which showcases growth numbers and also links to the transparency blog posts I do at the end of every month. You can also follow me on Twitter to for a more personal experience.

I hope you enjoyed reading this, and I'd love to answer any questions you have.

Subscribe for new interviews every week! 🤗

Courtland here! I regularly interview the indie hackers behind profitable apps and side projects like Insomnia. Enter your email below, and I'll send you new interviews when they're out. Feel free to unsubscribe whenever you want.

Share this interview:

Loading comments...