我如何靠每月20美元的技术栈运营多家月均收入1万美元的公司

昨晚,我又一次在路演之夜被拒了。这还只是预面试环节,问题并非出在我的产品上——我的产品已经有稳定的月经常性收入(MRR),也有每天都依赖它的用户。

得到的反馈只有一句:“你到底需要融资做什么?”

每次我试图拓展自己的想法时,都会听到这样的话。精打细算、轻量运营已经刻进了我的骨子里。我开发过你可能用过的工具,比如websequencediagrams.com,也做过你大概率没听说过的垂直领域产品,比如eh-trade.ca。这种对效率的极致追求,让我能靠自举(bootstrapping)把公司做起来,但说实话,很多风投机构恰恰反感这一点。

把成本控制在近乎零的水平,能给你带来的现金流存续周期,和拿到100万美元融资却背负高昂烧钱率的效果完全一样。这种模式压力更小,能让架构保持极致简洁,还能让你有充足时间找到产品-市场契合点,不用承受董事会步步紧逼的压力。

如果你厌倦了当下那些“企业级”的繁文缛节,下面这份实操手册,就是我如何搭建公司架构、以近乎零成本运营的全部秘诀。

使用轻量服务器

2026年,搭建网页应用最外行的做法是:打开AWS,部署EKS集群,配置RDS实例,设置NAT网关——结果还没一个用户看过你的落地页,每月就先花掉300美元。

而聪明的做法是,租一台虚拟专用服务器(VPS)。

我的第一步,是选一台便宜又靠谱的服务器。别碰AWS,你根本用不上它,而且它的控制面板就像一座迷宫,设计初衷就是诱导你升级付费。我用的是Linode或DigitalOcean,每月花费不超过5到10美元。

对现在的网页开发者来说,1GB内存听起来简直离谱,但只要你懂行,完全够用。如果需要一点缓冲空间,建个交换文件(swapfile)就行。

我们的目标是处理请求,而非维护基础设施。当你只有一台服务器时,你能精准知道日志在哪、服务器崩溃的原因是什么,以及该如何重启它。

使用轻量编程语言

现在你有了约束条件——只有1GB内存。你当然可以用Python或Ruby作为后端主语言,但何必呢?光是启动解释器、管理gunicorn进程,就要耗掉一半内存。

我的后端全部用Go编写。

在网页相关任务中,Go的性能远超其他语言,它是强类型语言,而且对2026年来说至关重要的一点是,大语言模型(LLM)能极其轻松地理解Go代码。但Go真正的魔力在于部署流程:没有pip安装依赖的噩梦,不用配置虚拟环境。你只需在笔记本电脑上,把整个应用编译成一个静态链接的二进制文件,通过scp传到那台5美元的服务器上,就能直接运行。

下面是一个完整的、可投入生产环境的Go语言网页服务器代码——完全不需要臃肿的框架:

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "你好,你的月经常性收入(MRR)在这里很安全。")
    })

    // 就算是低配服务器,这段代码也能轻松每秒处理数万个请求
    http.ListenAndServe(":8080", nil) 
}

用本地AI处理长时运行任务

如果你家里有显卡,那你就拥有了无限的AI调用额度。

我开发eh-trade.ca时遇到过一个具体问题:需要对数千家公司做深度的定性股市研究,总结海量的季度报告。外行的解决方案是把这一切都丢给OpenAI API——我本可能花数百美元在API调用额度上,结果却发现提示词循环里有个逻辑漏洞,不得不重新运行整个批量任务。

但我没有这么做。我在脸书二手市场买了一张落灰的900美元显卡(RTX 3090,24GB显存),在上面部署了VLLM。诚然,这是一笔前期投入,但从此之后,我再也不用为批量处理任务向AI服务商支付任何费用。

本地AI的升级路径非常清晰:

  • 起步用Ollama:只需一条命令(ollama run qwen3:32b)就能完成部署,还能立即试用数十种模型,是迭代提示词的理想环境。
  • 生产环境切换到VLLM:当系统跑通后,Ollama会成为并发请求的瓶颈。VLLM会把GPU锁定到单个模型,但它采用了PagedAttention技术,速度大幅提升。你可以把系统设计成同时发送8或16个异步请求,VLLM会在GPU内存中批量处理这些请求,16个请求完成的时间几乎和处理1个请求一样。
  • 更复杂的需求用Transformer Lab:如果需要做模型预训练或微调,Transformer Lab能让本地硬件的操作变得简单。

为了管理这一切,我开发了laconic——一款专为8K上下文窗口优化的智能研究代理。它管理LLM上下文的方式,就像操作系统的虚拟内存管理器:会把对话中无关的内容“换出”,只将最核心的关键信息保留在活跃的LLM上下文窗口中。

我还用到了llmhub,它能把任意LLM抽象成简单的“提供商/端点/API密钥”组合,无论是文本还是图像输入输出,无论模型运行在我桌下的硬件还是云端,都能流畅处理。

用OpenRouter处理高速/智能LLM需求

并非所有事都能在本地完成。有时候,面向用户的低延迟聊天交互,需要Claude或ChatGPT这种顶尖的推理能力。

我不会同时管理Anthropic、谷歌、OpenAI的计费账户、API密钥和速率限制,而是直接用OpenRouter。只需在代码中集成一套兼容OpenAI的接口,就能立即访问所有主流的前沿模型。

更重要的是,它支持无缝的降级路由。如果周二下午Anthropic的API宕机(这种情况确实会发生),我的应用会自动切换到等效的OpenAI模型。用户不会看到任何错误页面,我也不用编写复杂的重试逻辑。

用Copilot而非炒得火热的AI IDE

每周都有新的、贵得离谱的模型发布。我总听开发者说,他们每月花数百美元订阅Cursor、购买Anthropic API密钥,就为了让AI帮自己写模板代码。

而我整天用Claude Opus 4.6,每月账单却几乎不超过60美元。我的秘诀?利用微软的定价模式。

2023年我买了GitHub Copilot订阅,把它接入标准版VS Code后,就再也没换过。我试过Cursor和其他花里胡哨的衍生工具——它们曾短暂凭借智能编码代理功能领先,但Copilot Chat总能很快跟上。

这里有个你可能没注意到的技巧:不知为何,微软是按“请求数”收费,而非按“令牌数”。而一个“请求”,就是我在聊天框里输入的内容。哪怕这个智能代理花30分钟遍历我整个代码库、梳理依赖关系、修改数百个文件,我也只需要支付大约0.04美元。

最优策略很简单:写下极其详尽的提示词,附带严格的成功标准(这本身也是最佳实践),告诉智能代理“一直改到所有错误都修复为止”,按下回车,然后去泡杯咖啡——剩下的计算成本,都由萨提亚·纳德拉(微软CEO)补贴了。

所有场景都用SQLite

我启动新项目时,总会把sqlite3作为主数据库。先别急着反驳,这并不像你想的那么离谱。

企业思维会告诉你,需要一个进程外的数据库服务器。但事实是,通过C接口或内存通信的本地SQLite文件,比通过TCP网络连接远程Postgres服务器快好几个数量级。

你可能会问:“那并发问题怎么解决?”很多人认为SQLite每次写入都会锁定整个数据库,这其实是错的。你只需开启预写日志(WAL)即可。打开数据库时执行一次以下编译指示(pragma):

PRAGMA journal_mode=WAL;
PRAGMA synchronous=NORMAL;

搞定。从此读操作不会阻塞写操作,写操作也不会阻塞读操作。仅靠NVMe硬盘上的一个.db文件,你就能轻松支撑数千并发用户。

由于实现用户认证通常是基于SQLite启动新项目时最麻烦的环节,我开发了一个库:smhanov/auth。它能直接集成到你使用的任何数据库中,管理用户注册、会话和密码重置。甚至支持用户通过谷歌、脸书、X(原推特),或公司专属的SAML提供商登录。没有臃肿的依赖,只有简洁、可审计的代码。

总结

科技行业总想让你相信,打造一家真正的公司,需要复杂的架构编排、每月高昂的AWS账单,以及数百万美元的风险投资。

但事实并非如此。

只需一台VPS、静态编译的二进制文件、用于批量AI任务的本地GPU硬件,以及极速的SQLite,你就能自举搭建一家高可扩展的初创公司,每月成本还不到几杯咖啡的钱。这会给你的项目带来无限的现金流存续周期,让你有时间真正解决用户的问题,而非为烧钱率焦头烂额

翻译来源:https://stevehanov.ca/blog/how-i-run-multiple-10k-mrr-companies-on-a-20month-tech-stack/stevehanov.ca/blog/how-i-run-multiple-10k-mrr-companies-on-a-20month-tech-stack