Minimum Viable Infrastructure for a Startup: Everything You Need for $50 a Month
There is a persistent pattern in how technical startups die. Not from a bad idea and not from running out of money in the first month. But from three engineers spending six months building infrastructure for a million users they do not have and may never get.
Kubernetes, microservices, multi-region, service mesh — all of it sounds impressive in an architecture review. But at the MVP stage, serious infrastructure usually means serious waste of time. And, more importantly, serious waste of money: according to Andreessen Horowitz, infrastructure is the second largest expense for startups after payroll, averaging 50–80% of COGS for SaaS companies. (a16z)
The question is not whether these technologies are good. The question is whether you need them right now.
MVP Infrastructure: One Server, Not a Cluster
The first rule of a startup is speed to product. Everything that does not bring you closer to a working product in users' hands is reverse technical debt: a debt to the business that you take on for engineering comfort.
The minimum production infrastructure for a web application is a single VPS with Docker, a database, file storage, automated deployment, and monitoring. That is it. No orchestrators, no message queues, no separate staging environments until you have paying customers.
According to the 2025 Stack Overflow Developer Survey, 71.1% of professional developers use Docker — a 17 percentage point increase year over year, the largest jump of any technology in the survey. Kubernetes stands at 28.5%. (Stack Overflow) Docker has become a baseline expectation; Kubernetes is a scaling tool. At the MVP stage, you need the former but not the latter.
Docker + VPS: The Workhorse
A single docker-compose.yml file describes the entire application: web server, API, database, reverse proxy. To deploy, you run docker compose pull && docker compose up -d — and within seconds the new version is live. Rollback is one command. Reproducibility is absolute: what runs on your laptop runs on the server.
For a VPS in 2026, Hetzner is worth a close look. Their CX22 (2 vCPU, 4 GB RAM, 40 GB SSD) starts at €3.99 per month, the CX32 (4 vCPU, 8 GB RAM, 80 GB SSD) at €6.30. Both include 20 TB of traffic. A comparable configuration on AWS (t3.large, 2 vCPU, 8 GB) costs about $67 per month, on GCP (e2-standard-2) $52, on Azure (B2s) $70. (culta.ai) That is a 4–7x difference for identical specs. (SignalThirty)
For comparison: a minimal managed Kubernetes cluster runs $312 on GKE Autopilot, $402 on EKS, $420 on AKS. (culta.ai) Three nodes, a management fee, a load balancer — and your infrastructure budget is gone before your first user.
PostgreSQL: The Only Database You Need at Launch
Do not pick a database for future load. Pick one for current reality: one server, one application, reliability and flexibility required.
PostgreSQL reached 55% adoption among developers in 2025 according to JetBrains and 55.6% according to Stack Overflow — more than any other database. (JetBrains, Stack Overflow) The growth is not accidental: the pgvector extension for vector search lets you use Postgres for AI workloads too, saving 60–80% compared to dedicated vector databases. (byteiota) Postgres simultaneously works as a relational database, a document store (via JSONB), a search engine (via tsvector), and a queue backend (via LISTEN/NOTIFY or pg_cron).
At the MVP stage, the database runs on the same VPS as the application. When real load and real money arrive, you move it to a managed service. Not before.
One non-negotiable rule: set up backups from day one. A cron job running pg_dump with a copy to object storage takes 20 minutes to configure and will save your business one day.
Object Storage: Files Off the Server
User uploads, avatars, documents, backups — none of this should live on the VPS filesystem. Server disk is finite, backing it up entirely is expensive, and migrating to another server means manual file shuffling.
S3-compatible storage solves this problem once and for all. Every modern framework supports it out of the box.
Cloudflare R2 is the most cost-effective option for a startup. 10 GB free, storage beyond the limit at $0.015 per GB per month, and most importantly: zero egress cost. For comparison: AWS S3 egress costs $0.09/GB, GCP and Azure charge $0.08–0.12/GB. For 100 GB of storage with 1 million requests, the base price difference is small ($2.00–2.40/month), but on traffic R2 wins by multiples. (Cloudflare, culta.ai)
For database backups, static assets, and user files, a startup typically stays within the free tier for the first few months.
CI/CD: Automation From the First Commit
Manual deployment is not saving time. It is a deferred explosion: someday someone will deploy the wrong branch, skip the tests, or push to production on a Friday evening from a laptop in a bar.
GitHub Actions on the free plan provides 2,000 minutes per month for private repositories on Linux runners. For public repositories, minutes are unlimited. As of January 2026, paid runner prices dropped: Ubuntu at $0.006/min (down from $0.008), Windows at $0.010/min, macOS at $0.048/min. (GitHub, GitHub)
A minimal pipeline for a startup: run tests, build a Docker image, push to a registry, SSH into the server, and run docker compose pull && docker compose up -d. That is 15–20 lines of YAML and 2–3 minutes per deploy.
Alternative: GitLab CI with 400 compute minutes on the free plan. (GitLab) If you are already on GitLab, do not switch just for CI/CD.
Monitoring: Know Before Your Users Do
Monitoring at the MVP stage is not Datadog at $23 per host. It is three things: knowing the service is alive, knowing the server is not choking, and getting notifications when something breaks.
Uptime Kuma is a self-hosted monitoring tool with 84,000+ stars on GitHub. It checks HTTP, TCP, DNS, and sends alerts to Telegram, Slack, email. It deploys as a single line in docker-compose.yml. (Uptime Kuma)
For server metrics: node_exporter + Prometheus + Grafana is the standard stack, running on the same VPS. It uses minimal resources but gives you the full picture: CPU, RAM, disk, network, database I/O.
If you do not want to run Prometheus, at the very least set up docker stats and an alert on free disk space. A full disk is the number one cause of unexpected crashes at startups that forgot about logs.
Budget: VPS vs Cloud
Two scenarios for the same MVP.
Scenario A: VPS (Hetzner)
| Component | Solution | Cost |
|---|---|---|
| VPS | Hetzner CX32 (4 vCPU, 8 GB RAM) | ~€6.30/mo |
| Database | PostgreSQL on the same VPS | €0 |
| Object Storage | Cloudflare R2 (10 GB free tier) | $0 |
| CI/CD | GitHub Actions (free tier) | $0 |
| Monitoring | Uptime Kuma + Grafana (self-hosted) | $0 |
| Domain | .com / .dev | ~$1/mo (amort.) |
| Backup | VPS snapshot (Hetzner) | ~€1.20/mo |
| Total | ~$10–12/mo |
Scenario B: Cloud (AWS / GCP / Azure)
| Component | AWS | GCP | Azure |
|---|---|---|---|
| Compute (2 vCPU, 8 GB) | $67 | $52 | $70 |
| Managed PostgreSQL (min) | $145 | $120 | $155 |
| Object Storage (100 GB) | $2.40 | $2.10 | $2.00 |
| CI/CD | included | included | included |
| Total (MVP) | $250–400 | $200–320 | $260–420 |
Source: (culta.ai)
The difference is an order of magnitude. The VPS scenario costs $10–12 per month; a cloud MVP runs $200–400. Your application does the same thing either way.
An important caveat: all three cloud providers offer startup credit programs. AWS Activate provides up to $100,000, Google for Startups up to $100,000, Microsoft Founders Hub up to $150,000. (AWS, Google, Microsoft) If your startup is affiliated with an accelerator, these credits can cover cloud infrastructure for 12–18 months. But credits expire, and the habit of relying on managed services stays.
The core rule: every next dollar spent on infrastructure should be a response to a real problem, not an imaginary load.
Short Conclusion
Minimum infrastructure for a startup is not a crutch and not technical debt. It is a deliberate choice: to spend money and time on the product, not on maintaining infrastructure that nobody is using yet.
One VPS, Docker Compose, PostgreSQL, S3 storage, automated deployment, basic monitoring. Ten to fifteen dollars a month. Everything else — when you have users, revenue, and reasons to scale.