Someone on Reddit will eventually write: “This guy was sitting on a million-dollar idea. He built working code. Why didn’t he build a SaaS on it? I simply don’t understand these OSS fanatics.”
I will smile and not reply. Because the person who wrote that comment understands the price of everything and the value of nothing.
The Pitch
The SaaS pitch writes itself. Hosted note2cms. Five dollars a month. We manage the deployment, the database, the static hosting. Custom domain included. Premium themes for ten. Team publishing for twenty. Enterprise with SSO for call us. Investor deck ready by Tuesday.
It would work. The product-market fit is proven. The infrastructure cost is near zero. The margins would be obscene. You could build a profitable company on this in six months.
And within two years you would add an admin panel because enterprise customers demand it. Within three you would add a browser-based editor because onboarding metrics require it. Within five you would be WordPress with better typography, wondering where the soul went.
The millions of dollars left on the table are the reason the project is worth anything at all. The value of note2cms is that it is not a business. The moment it becomes one, it becomes every other CMS that compromised its way to revenue.
The Perpetual Motion Machine
WordPress hosting is a SaaS that exists because WordPress is too complex to self-host. WordPress is too complex because it accumulated features to justify its hosting revenue. The complexity funds the SaaS. The SaaS funds the complexity. It is a perpetual motion machine of unnecessary infrastructure.
Ghost Pro exists because Ghost requires a Node.js runtime, a database, and operational knowledge to maintain. Ghost requires those things because it was designed as an application, not a pipeline. The application model demands infrastructure. The infrastructure demands a managed service. The managed service charges nine dollars a month to run what note2cms does for free.
Substack exists because publishing on the internet is supposed to be hard. Publishing on the internet is hard because every platform made it hard so they could sell you the solution. The solution creates the dependency. The dependency creates the revenue. The revenue justifies the solution.
The pattern is always the same. Build something complex. Charge to manage the complexity. Defend the complexity because the revenue depends on it. Call this a business model. Call this innovation.
The Proof
note2cms publishes a blog for the cost of a domain name. Twelve dollars a year. Not because it cuts corners. Because the entire infrastructure layer that other platforms charge for was never necessary.
A blog post is an HTML file at a URL. The server does not need to think when the answer was known at write time. The admin panel does not need to exist when the notes app already won the authoring war. The database does not need to be managed when it can be deleted and rebuilt from Markdown files. The hosting does not need to cost money when every major CDN offers a free tier for static files.
Every dollar that WordPress, Ghost, and Substack charge is a dollar for infrastructure that a correctly architected system does not require. Not theoretically. In production. With a community. With a contributor who built an Obsidian plugin overnight without reading the source code.
The SaaS was not solving a problem. It was monetizing a problem it helped create.
The Incentive Trap
The moment you charge for software, you have a financial incentive to make it complex enough to justify the charge.
A free publishing tool that works in four endpoints cannot become a SaaS because there is nothing to manage. No server to keep running – the static output serves itself. No database to optimize – the taxonomy is a derived cache. No plugins to maintain compatibility with – the extension points are outside the core. No users to support – the API is four endpoints documented in a single table.
Where would you put the pricing page? What would the customer be paying for? The answer, in every SaaS publishing platform, is the same: they pay for the complexity. And the complexity exists because someone chose to build an application when a pipeline would have sufficed.
I chose the pipeline. The pipeline does not need a pricing page. The pipeline does not need a sales team. The pipeline does not need a customer success manager. The pipeline accepts Markdown, produces HTML, returns a permalink, and dies. There is nothing to subscribe to. There is nothing to manage. There is nothing to renew.
The Choice
MIT under conviction means I already made the choice. Not between money and idealism. Between being a product and being infrastructure.
Products get acquired, enshittified, and abandoned. Infrastructure gets forked, extended, and used forever. Jinja2 does not have a pricing page. FastAPI does not have a sales team. SQLite does not have an enterprise tier. They have users who will never leave because there is nothing to leave – the tool is free, the tool is theirs, the tool works.
Some people will see this as leaving money on the table. They are correct. The money is on the table. I can see it from here.
I am not picking it up. Not because I do not want it. Because the moment I do, the architecture changes. The incentives shift. The clean thing becomes the monetized thing, and the monetized thing inevitably becomes the complex thing, and the complex thing inevitably becomes the thing I built note2cms to replace.
The Subversion
The most subversive thing in open source is not free code. It is free proof that the paid version was never necessary.
Every SaaS publishing platform is now slightly less defensible because a working alternative exists that costs nothing, requires no account, stores no user data, and serves static HTML from a CDN. The alternative is not better because it is free. It is free because it is better – because a correctly architected system does not require the infrastructure that the SaaS charges for.
The Reddit commenter will not understand this. They will see a missed opportunity. They will not see that the opportunity they imagine – charging for unnecessary infrastructure – is exactly the disease, and that not charging for it is exactly the cure.
The money is on the table. I can see it from here. I am not picking it up.