公司
EmailEngine, Nodemailer
创始人
安德里斯·雷曼
收入
每月1.3万美元
安德里斯·雷曼是 Nodemailer的创建者,这是一个被数十万开发者使用的开源项目。但它无法支付账单。于是他推出了相关的开源产品——EmailEngine,并将其转型为每月1.3万美元经常性收入的业务。
以下是安德里斯分享的实现过程。 👇
目录
从开源到SaaS(类似)
我是一名电子邮件软件开发者和开源维护者。我最出名的是开源工作——尤其是Nodemailer,它被全球数十万开发者和公司使用。
虽然开源带来了很多知名度和影响力,但它并不能真正支付账单。我确实会收到定期捐赠,但每月只有几百美元。
大约五年前,我决定将我在电子邮件基础设施方面的经验转化为一门生意,并创办了一家开发和销售电子邮件软件的公司。
最初的计划是构建多个产品,但实际上,有一个产品明显脱颖而出。从那时起,我几乎完全专注于EmailEngine——一个自托管应用程序,让开发者通过简单的HTTP REST API访问电子邮件账户,而不是直接处理IMAP、SMTP或供应商特定的API(如Microsoft Graph或Gmail)。
我们目前每月经常性收入为1.3万美元,每年增长约20%。收入增长缓慢但稳定,因此收入图表没有突然的飙升或指数曲线——只是一条从零到当前位置的基本线性线。
从倦怠到平静创业
我曾在一家小型风投支持的初创公司担任了四年的首席技术官。我把笔记本电脑带到厕所,睡觉时放在枕头下,以防万一发生什么事情需要快速反应。四年后,我精疲力竭了。我想休息一下。
作为一名长期开发者,休息仍然意味着工作——只是没有压力。这种心态影响了我后来的许多决定。这也是为什么我不提供托管托管服务或承接大客户的原因。如果有人联系我要求演示或想与“我的销售团队”谈判,我会礼貌地指引他们去找我的一些竞争对手。
我所有的客户都是自助服务的——通常是能力强的小型技术团队,不需要手把手指导,因此不会用持续的支持请求给我带来负担。原本打算只是短暂休息,直到现金储备用完,结果却成了一项可行的业务。从那以后,我就一直在做这件事。

非主流技术栈
EmailEngine基于Node.js构建,并使用Redis作为其数据库。主页托管在umso.com上,文档是一个托管在GitHub Pages上的Docusaurus项目。我最近也经常使用Claude Code。
使用Redis作为主数据库并不是一个非常常见的选择——Redis通常被视为缓存层,而不是实际的数据库。在我的情况下,Redis是与IMAP索引兼容性最好的选项,特别是因为它有Sorted Set数据结构。不过多深入细节,这是决定性因素。
我也不想要求用户为不同目的设置多个数据库,所以我决定在所有地方都使用Redis。这是一个我有时会后悔的选择。Redis缺少很多你通常期望数据库具备的功能,比如适当的查询,这意味着我需要花时间实现一些在更传统的数据库中不需要的变通方案。
尽管如此,保持简单总体上是有帮助的。用户更容易启动他们的第一个试用实例进行测试,而且一旦有人已经在测试产品,他们更有可能开始付费。
技术挑战
EmailEngine在技术上是一个复杂的软件,主要挑战在于每个客户的使用方式略有不同,并且针对不同的电子邮件后端。尽管电子邮件协议长期以来一直是标准,但不同提供商之间仍然存在明显差异。在Gmail账户上运行良好的方式,在例如韩国Naver邮件托管上可能表现不同。
这些问题很难提前规划。如果我没有特定电子邮件提供商的账户,就没有真正的方法来测试它。如果提供商是商业性的,获取此类账户的访问权限可能很昂贵,或者在某些情况下根本不可能——特别是那些需要本地手机号码进行账户验证的区域提供商。
寻找商业模式
EmailEngine最初是另一个开源副项目,所以在头两年,我在前一份工作的空闲时间里开发它。起初,我并没有打算让它成为一门真正的生意。想法是使用它来增加我为支持开源软件开发而获得的捐赠。
这并没有真正奏效,所以我尝试了双重许可方法。开源版本在AGPL下许可,对于“严肃的企业”,我提供MIT许可的版本,收取少量年费。几乎也没有人接受这个方案。这个阶段持续了大约一年半。
最终,我决定完全商业化,几乎立即开始获得客户——主要是免费项目的先前用户,但也有希望持续更新和升级的公司。
所以现在,它是一个需要付费订阅才能运行的自托管软件。没有订阅,它会在14天免费试用模式下运行,之后就会停止工作。订阅是年度的且自动续订,我使用Stripe进行订阅管理。只有一个订阅计划。没有追加销售或层级——每个人得到的产品完全相同,无论他们是独立开发者还是大型银行。
由于没有托管或管理版本,我并不真正认为它是SaaS——更像是带有订阅模式的本地部署软件。
在货币化之后,它仍然是一个我在晚上和周末工作的副项目。但我已经厌倦了我的日常工作。我开始退出那个角色,由于各种原因,这花了大约半年时间,直到我终于能够全身心投入。
那时,EmailEngine的收入仍然不足以支持我的生活——大约每月经常性收入500美元。我靠之前的现金储备生活,但我能看到潜力,更重要的是,我实际上想在这个项目上工作。所以我全身心投入,开始全职工作。
通过开源项目实现增长
最大的障碍是达到收入足够高,让我可以开始给自己支付薪水,这样项目就不再感觉像一个临时的宠物项目。但这并不是我必须以刻意的方式“克服”的事情。起初,收入根本不够。随着时间的推移,它变得足够了。
我没有推动增长。我只是继续开发产品,看到有稳定的增长,并假设最终它会达到目标——它确实做到了。
最初的约10个订阅者都是EmailEngine在还是开源项目时的用户。当时,它有一个不同的名字——IMAP API。IMAP API相当受欢迎,在GitHub上大约有1,000颗星。
除此之外,我从一开始就使用了一种增长“策略”。我称之为工程主导的营销。我发布了许多受欢迎的开源和免费产品,并从这些产品链接到EmailEngine。
由于所有这些项目都与电子邮件相关,自然存在重叠。例如,Nodemailer用户最终可能需要Nodemailer不提供但EmailEngine提供的功能——比如使用OAuth2基于Microsoft Graph API的发送。在这些情况下,他们可能会查看EmailEngine,在极少数情况下,他们会最终付费。
我从未做过付费广告——我的营销预算一直是0美元。
唯一值得一提的其他方法是搜索引擎优化。特别是“EmailEngine vs. 某个主要替代品”类型的文章。那些对替代提供商服务不满意的用户会寻找选项,找到EmailEngine,其中一些人变成了客户。
尽管如此,这可能对双方都有效。我并不知道我是否通过这种方式获得的客户比输给竞争对手的更多,但总体来看,它似乎效果足够好。
经验带来的优势
我在构建开源电子邮件项目方面的背景是一个很大的优势。多年来——Nodemailer现在已经15年了——我在一个对大多数人来说既复杂又无聊的主题上获得了相当罕见的经验。在此过程中,我还建立了一个已经使用我项目的开发者受众。
将EmailEngine标记为“由Nodemailer的创建者制作”无疑使其更值得信赖。Nodemailer已经存在“很久”了,并且默默地做着自己的事情,所以人们倾向于认为EmailEngine可能也会这样做。
寻找你的优势
我的建议是:寻找你可能拥有的优势——一个你可能尚未注意到或你认为不是优势的优势。
例如,我从未认为我的开源工作会成为业务的增长驱动力。它只是在我已经开始之后才变成了一个。
未来规划
我计划继续构建EmailEngine,也许回到我最初构建多个相关项目的想法。多年来我有很多想法,但没有时间——EmailEngine已经足够大,需要我全神贯注。
现在,有了人工智能,软件开发变得快得多,所以我可能会重新审视一些旧的想法。例如,一个纯粹面向电子邮件发送的解决方案,比EmailEngine更具可扩展性——本质上提供相同的电子邮件发送能力,但以更可扩展的方式。
EmailEngine与单个电子邮件账户紧密耦合,由于每个账户需要持续关注——轮询新消息或访问邮箱——它消耗大量系统资源。也没有水平扩展,这使得在其之上构建大规模发送解决方案变得困难。
至于收入,我计划不超出其当前轨迹增加。作为一个几乎没有成本基础的独立企业,并且生活在东欧,我对现状相当满意。
你可以在LinkedIn上关注我。这是EmailEngine的落地页、文档和源代码。注意:EmailEngine不是开源的,但源代码可用:任何人都可以检查完整的源代码,但使用它需要有效的订阅。
订阅