The very long road to $20k MRR
How I turned an open source side project into a $20k MRR solo business, after years of failed experiments, a broken business model, and a lot of trial and error.
I recently reached another milestone with my business EmailEngine. My MRR finally hit $20k, unlocking the next section of the revenue chart. I thought this might be a good time to look back at how I even got here with a solo business like mine. And considering how many people have lost their jobs in recent layoffs, would I recommend taking the same path to someone who is thinking about starting their own business?
To get to the beginning of the story, we have to go back quite a few years. June 2013, to be exact.
By then, I had already spent a few years developing open source email-related libraries for the almost empty Node.js ecosystem. I had started Nodemailer back in 2011, when one of the better options for sending email from a Node.js application was to pipe the email data to a PHP script running PHPMailer. So unlike today, there was hardly anything available.
One of the podcasts I regularly listened to was The Changelog, and in June 2013 they published an interview with Mike Perham, the developer of Sidekiq (episode #92). In that episode, Mike explained how he had turned his open source work into a business by selling licenses for commercial features of his otherwise free and open source software.
I was amazed. You could actually do that? Build open source software, give most of it away for free, and somehow make a living from it?
I was hooked from the start.
Unfortunately, knowing that something is possible and actually making it happen are two very different things. Over the following years, I tried countless experiments. I launched open source projects with commercial components, built various SaaS services, and tried different ways to get traction and eventually charge money for something.
My success rate was exactly zero.
Seven years after that podcast episode, when COVID hit and the lockdowns started, I decided it was time to put some more serious effort into this. I registered a company, opened a business bank account, signed up for Stripe, and was finally ready to start charging customers.
There was just one small problem. I still had nothing to charge for.
My initial business idea was to build new email-related libraries and applications, release them as open source under a restrictive AGPL license, and offer paid subscribers access to the same software under a more commercially friendly MIT license.
So I started building things to fill the portfolio. A Postfix queue file parser, some other email-related utilities, and one experiment that eventually became EmailEngine.
Back then, it was called IMAP API, because that was pretty much what it was supposed to be. A simple REST API layer on top of IMAP connections.
I listed IMAP API on my company website alongside the other projects as software that paid subscribers could use under a commercial-friendly license.
Unlike the other projects, though, IMAP API turned out to be quite large and required a lot more development work. Eventually, it became pretty much the only thing I was working on. The other libraries were still technically part of the offering, but I was no longer putting much effort into them.
Something interesting was also happening on GitHub. While the other projects got almost no attention, the AGPL version of IMAP API started getting users and GitHub stars. People were actually interested in it.
And thanks to IMAP API, I finally got my business going. Very slowly, but still.
During the first year and a half, I managed to find three paying customers. Each paid €250. And to be fair, I don't think these were even real customers in the traditional sense. It seemed they mostly wanted to support my work rather than actually needing a commercial license.
Only the third customer actually got an annual subscription. The first two received unrestricted commercial licenses because I had not even figured out the licensing terms properly yet, let alone configured all the subscription options in Stripe.
So after about a year and a half of running my company, I had made a grand total of €750.
Not exactly a successful business.
At some point, I realized that there was real potential in IMAP API, but my business model was complete nonsense.
Large enterprises were not going to start using my relatively unknown software just because I offered an alternative to AGPL licensing. Smaller businesses, on the other hand, rarely even thought about open source licenses in the first place. They wanted software that solved their problems, and whether it was AGPL or MIT was not usually a deciding factor.
I was trying to sell a solution to a licensing problem that most of my potential customers did not actually have.
So I made a major change.
I renamed IMAP API to EmailEngine, built a new user interface, and changed the licensing model completely. Instead of providing a free AGPL version with an optional MIT license, EmailEngine now required an active paid subscription to work. Without a valid license key, the software would stop operating.
I also changed the software license itself from AGPL to a commercial license. This was possible because I had required outside contributors to sign a Contributor License Agreement (CLA) from the beginning, so I had the necessary rights to relicense the code. The source code remained publicly available on GitHub, but EmailEngine was no longer open source by definition. It was now source-available software.
I kept the existing price of €250 per year.
The first month under the new business model brought in $2,000.
Still a modest amount, obviously, but it was more than twice what I had made during the previous year and a half combined. That was a pretty clear signal that I was finally doing something right.
All that revenue came from companies that had already been using the free IMAP API. They wanted to continue using it, receive updates, and apparently had no problem paying for software that provided value to their businesses.
The interesting part was that I had not suddenly built a much better product or discovered some revolutionary marketing strategy. The software was largely the same. I had just changed how I charged for it.
From that moment, the direction of my business was pretty much decided.
I stopped offering the other projects as commercial products, made them freely available instead, and concentrated all my effort on EmailEngine.
Over the following years, I kept developing the product, adding features, fixing bugs, dealing with customers, and gradually raising subscription prices. Today, the standard subscription costs $1,450 per year.
One thing that surprised me was that increasing prices did not seem to reduce the number of new customers. It turned out that for businesses that actually need this kind of software, the difference was not particularly important. The software either solved a problem worth paying for or it didn't.
And the growth continued.
Today, EmailEngine generates $20k in monthly recurring revenue. I still work alone, wearing all the hats, though these days I have my pal AI helping me with much of the work. I handle product development, support, sales, documentation, and pretty much everything else that comes with running a software company with the exception of accounting, this is the only thing I better leave to the pros.
I have no employees, no investors, and no particular plans to change that. I don't have a sales team or a marketing department. I just keep developing the software, answering customer emails, and trying to make sure that the product continues solving problems for the people who pay for it.
So, getting back to the original question. Would I recommend this path to someone who has recently lost their job and is considering starting a software business?
Not necessarily.
When people see someone running a profitable solo software business, it is easy to look at the current numbers and think that this is something you could replicate in a year or two. Maybe you can, but that is definitely not how it worked for me.
I first got the idea of making money from open source in 2013. I started my company in 2020. It took another year and a half to figure out a business model that actually worked, and several more years to reach the revenue I have today.
And this doesn't even account for all the years I had spent building open source libraries before starting my company. Those projects did not directly make me much money, but they gave me experience, credibility, and an audience in a very specific niche. When I finally had something to sell, I was not starting entirely from zero.
There were also countless failed experiments along the way. Most of them never made a single euro. Even the project that eventually succeeded initially made only a small amount in a year and a half.
If you need to replace your salary quickly, starting a software business from scratch is probably not the most reliable way to do it. You might get lucky and find paying customers immediately, but you should not count on that happening.
On the other hand, if you have some financial security, know a problem worth solving, and are willing to spend a lot of time on something that might never make any money, then I would absolutely recommend giving it a try.
One thing I learned from my experience is that building useful software and building a viable business are two different things. I had the technical part figured out long before I understood how to actually sell what I was building. And in the end, the biggest turning point was not some major technical breakthrough. It was changing the business model.
I also don't think there is any universal formula here. My approach worked partly because I already knew the email ecosystem very well, had years of open source work behind me, and happened to build something that businesses needed. Someone else might succeed with a completely different approach, or follow the exact same steps and get nowhere.
I don't know if I could repeat the same success today with a completely new product. Maybe I could, maybe not. There was certainly a lot of luck involved, along with the years of work.
But I am glad I kept trying.