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.
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.
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.
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.
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:
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:
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.
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:
- Heroku for server hosting
- Papertrail for server logs
- Sentry for exception tracking
- New Relic for server monitoring
- Sendwithus for transactional emails (duh!)
- ThemeForest for UI themes
- HelpScout for customer support
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.