HOW-TO

Ship a Real SaaS on a $5 VPS

Managed Postgres, serverless and CDNs all bill you for scale you may not have yet. A single small VPS genuinely runs a paying SaaS. Here is why, and where the limits really are.

Why SQLite + PHP-FPM is enough

The instinct that "SQLite cannot scale" usually means "SQLite cannot scale to many writer machines" โ€” which is true and irrelevant on a single box. With WAL mode, SQLite handles concurrent readers alongside writers comfortably, and PHP-FPM serves requests without a separate application server. No database server to run, patch or pay for. For most B2B and indie SaaS workloads, the bottleneck is never SQLite.

The whole stack on one box

NGINX + PHP-FPM

A standard, boring, well-understood web tier that any host supports.

SQLite (WAL)

Your database is a file on the same disk โ€” backed up with a copy, restored just as easily.

Stripe webhooks

Billing events arrive over HTTPS and update local state โ€” no queue or worker required.

SES (SMTP) email

Transactional email over SMTP, so login links and receipts just work.

When you would outgrow it

Honesty builds trust, so: you would move off a single box when you need horizontal write scaling across machines, multi-region low latency, or a team that wants managed-database guarantees. Most products never reach that, and the ones that do can migrate the data layer later โ€” by which point you have paying customers funding the move. Until then, a fixed-cost VPS is the cheapest way to run a SaaS.

SEE IT RUNNING

This storefront and every demo run on this exact code.

Click through them, then ship your own on a small VPS.