How I bootstrapped my software business to $1,000 MRR

I run a software product called EmailEngine. Last month I finally hit $1,000 MRR by selling subscriptions for it – not a large number by any definition, but not nothing as well –, so I'll write a bit about how I made it that far.

EmailEngine is software that "translates" REST API requests into IMAP commands and converts responses from the IMAP server into JSON documents. So if your app wants to list emails on an IMAP account, it runs a REST query against EmailEngine. EmailEngine would run an IMAP command against the IMAP server, retrieve an IMAP response and return a JSON array with email documents to your app. Your app would not need to know anything about MIME, IMAP, RFC822, etc. You can learn more about it from EmailEngine's homepage.

Idea

I got the idea for EmailEngine from a past job. I was hired in 2012 by a CRM startup (Pipedrive) to build an email integration system. The CRM had an activity view for every contact in the system, and the company wanted to include emails sent to and received from these contacts in the activity timeline. I had experience with email protocols, so they tasked me to build a system that integrates IMAP accounts and matches emails with these CRM contacts.

It turned out that IMAP at scale is super hard. It does not remotely resemble protocols we use today, there are tons of things to be wary of and which I did not know about, so my project flopped. I did manage to build an MVP, but it was not usable in production. Next, the Snowden thing happened, and suddenly, everyone cared about email security. I left the CRM company to work for an encrypted email startup, and my half-baked project was replaced with an external SaaS service.

Fast forward to 2020. I was working on an open-source email debugging app based on Electron, and one of the features was that you could upload emails to an IMAP account straight from the app. I needed an IMAP library for this feature and found all existing options awful. So I started building an IMAP library from scratch. Once I got it working, I saw that it turned out quite well and thought about what else I could use it for, and then I remembered the issues I had with IMAP in the CRM company.

I did a quick research and saw that there is one major player on the market, a SaaS offering with relatively high pricing (Nylas), and that was pretty much it. The only other option was to build the entire integration yourself, which would take months at best. I saw a niche and started building an open-source project named IMAP API that later would become EmailEngine.

Monetization

From the start, I tried to monetize the app. I set up a two-license distribution model. By default, you got the free AGPL licensed version. If you bought a subscription, you got the same code but an MIT license.

The business did not go well during the next year and a half. I managed to get only three subscribers. For a 250€ yearly subscription price, it was not much revenue. On the other hand, the app was quite popular as a free open source project, as it gained more than 1000 stars on Github. You can't pay your utility bills with Github stars alone, so in November 2021, once I significantly rewrote the app, I launched it as version 2 and completely changed the business model. The code was available on Github for inspection and bug reports, but you needed a license key to run the app. And to get a key, you had to subscribe to my subscription service. It took about a week for the first previously free open-source users to convert to the paid model, so I made more revenue in 2 weeks than I made in 1.5 years.

Keeping costs down

I run everything myself to keep the costs down — coding, accounting, customer support. You name it. This is also why I do not provide a SaaS service but a downloadable run-your-own-saas-kind-of software. If I offered a SaaS option for a complex app like EmailEngine (this is not your regular CRUD app, it's a worker thread juggler), it would mean maintaining and paying for a lot of servers. Also, making sure the service is up and running 24/7 as I have customers around the world. I could manage everything as things are now but would lose focus if I had to do system maintenance as well.

Product Hunt

I did Product Hunt two times (probably broke a rule or two). First for IMAP API. It did not go well. I retried later when I renamed the app to EmailEngine.

It happened to be a slow day, and I got included in the featured list of the Product Hunt's newsletter and, in the end, reached #2 of the day. I did not follow any best practices for running a PH campaign. It was pure luck – I prepared for that campaign, like, literally 5 minutes. Uploaded the already existing screenshots, wrote some sentences, and that's it.

I did not get any customers from this campaign, but the #2 badge I added to EmailEngine's homepage has worked well to prove to random visitors that it's a serious project.

The pricing

Initially, I asked 250€ (that's around the same amount in $ as well these days) per year. I only provide the yearly subscription option. Providing monthly subscriptions seemed too risky, as EmailEngine is downloadable software. There is no guarantee the user would continue subscribing once they had the license key, as the key was indefinitely valid for that specific version.

Also, as you may remember, I do the accounting, and there's a big difference if I have to record an invoice in the accounting system once or 12 times.

In May, I increased the pricing to 495€, leaving all existing subscriptions at their initial price.

Marketing

I haven't done much marketing, except guerilla tactics, like submitting each blog post to Hacker News. Running the company completely open (you can find business metrics from here) has also been a similar guerilla tactic – I don't lose anything by releasing that data. Still, I might gain some visitors to check out my product.

The main marketing channels, though, have been the documentation pages of my open source projects. Over the years, I have started many open-source projects, some extremely popular. I added links to EmailEngine to these project pages. The result is that 60% of web traffic reaching EmailEngine's homepage (the total monthly unique visitors count is 6k) is referred from these open-source projects.

I try to write a relevant blog post now and then as well to increase the SEO for the homepage.

Customer support

Instead of ticketing, I set up a public Discord channel for support. It is possible to send a DM, but most users don't bother and ask their questions in public. This means that other users also see these and do not have to ask the same question multiple times.

At first, I planned to include support as a subscription component. It turned out, though, that most questions would arise before subscribing, not after it. Once users had tried out the trial and resolved their issues, there weren't too many issues left.


Over the years, I have worked with many smart people doing their specific work very well. Be it marketing, sales, design, or whatever. None of these are my strengths. The lesson I have learned from them is that while I can't do much in the primary sense of their job, there are alternative options that I can do.

For example, if I tried cold calling for sales, I would get hanged up before I even could stutter out my name, so there is no point in doing it. It would be a waste of time. Trying to run paid ad campaigns would probably cost a lot of money with no actual results because I don't know the ins and outs of that business. On the other hand, I can do things by leveraging my strengths to reach the same results.

For example, if I build a new open source tool for something, then it looks like coding, but in reality, I can consider it as marketing as I would add links to my main service, and if the project takes off, it will drive way more relevant traffic to my service, than any paid campaign would.

So, to sum it up, I've tried to stick to my specific niche (IMAP), do it extremely well (and only that), and ask for a fair price. I have nowhere to hurry. I don't seek hypergrowth and thus do not have to come up with schemes to scale things. It's only $1,000 for now, but I expect it to grow over time as this is a low-churn business (how often do you want to rewrite your email integration system anyway?). Things can only go up from here. Fingers crossed.

Subscribe to Postal Systems OÜ

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe