Skip to content
BoringStack
GitHub

Cost methodology

6 min read

Verified 2026-05

Cost methodology

The cost calculator on the Why BoringStack page compares three solution categories at four usage stages. Prices reflect public list rate cards as of 2026-05. Numbers are rounded up on purpose so the columns sit on the same scale, not to predict your bill to the cent.

2026-05

rate cards as of

3 columns

solution categories

Rounded up

on purpose

StageMAURequests / dayEgress / moDB storage
Side project~2005k5 GB1 GB
Early startup~2k80k50 GB5 GB
Growth~20k1M500 GB50 GB
Scale~100k10M5 TB250 GB

The MAU number is the dial that matters most; everything else derives from typical SaaS request and storage patterns at that audience size.

Column 1: BoringStack (VPS + Cloudflare + B2)

Section titled “Column 1: BoringStack (VPS + Cloudflare + B2)”

The runtime is the BoringStack default: one Hetzner Cloud VPS running the full Compose stack (Postgres, Valkey, API, UI, Traefik), Cloudflare proxying the apex domain (free plan), and Backblaze B2 for daily Postgres backups.

StageHostMonthly cost
SideCX22 (€4.59)~$5 (€4.59 + B2 ~$0.10)
EarlyCX32 (€7.16)~$8
GrowthCX42 (€16.40)~$16
ScaleCX52 (€32.95)~$35

What’s included. Hetzner Cloud’s plans include 20 TB of outbound traffic per month at every tier, so egress is effectively free under any of these scenarios. Cloudflare’s free plan covers DNS, the proxy, basic WAF, and unlimited CDN bandwidth. B2 charges $0.006/GB-month for storage and gives 3× the storage as free egress, so backup egress almost never bills.

What’s not included. Application code, your own time, error tracking (hosted Sentry would add ~$26/mo above the free tier; self-hosted GlitchTip is $0 extra container cost). Cloudflare paid tier becomes worth it at the Scale stage if you want bot rules or advanced WAF rules.

Sources. Hetzner Cloud pricing, Cloudflare plans, Backblaze B2 pricing.

A typical “edge functions + managed Postgres” combination. The numbers come from adding a representative Pro-tier edge platform ($20/mo base + bandwidth) to a representative managed-Postgres tier ($25/mo base + DB storage).

StageComponentsMonthly cost
SideBase plans, well under free-tier overages~$45
EarlyBase plans, small bandwidth overage~$80
GrowthBase plans + bandwidth at 500 GB tier + DB at 50 GB tier~$250
ScaleEnterprise-style pricing for 5 TB egress + 250 GB DB~$1,200

Where the money goes. Bandwidth and function execution time scale linearly with traffic; managed-Postgres tier-jumps happen at storage thresholds. The Scale-tier figure assumes you’re on the dedicated/enterprise pricing rung most platforms push you to past ~1M requests/day, not a self-serve plan.

What’s included. Auto-scaling compute, automatic TLS, CDN, managed backups, web dashboards. Things you’d otherwise wire yourself.

What’s not included. Auth-as-a-service, email, error tracking, background-job platforms. Each is priced separately if you adopt them.

Why this column exists. It represents the “fast to deploy, slow to control” path: trivial onboarding, but the bill scales with usage and you cannot move the runtime off the platform without a rewrite.

The all-in-one shape: auth + DB + background work + email + analytics bundled into one platform, priced per seat or per active user.

StagePricing modelMonthly cost
SideFree tier with a few paid add-ons~$25
Early$0.10–$0.20 / MAU above free tier~$200
Growth$0.07 / MAU at 20k MAU after volume discount~$1,500
ScaleEnterprise contract, $0.06 / MAU + platform license~$6,000

Where the money goes. Per-MAU pricing is brutal at scale: what costs $25/mo for 200 users costs $6,000/mo for 100k. The platform shape is great for fast product-market-fit experiments but stops making sense once you have real traction.

What’s included. Almost everything an early team would have to wire: auth, DB, queues, email templates, file storage, an admin dashboard.

What’s not included. Custom code paths the platform doesn’t support; you write integrations or live without them. Migrating off is usually a full rebuild.

Why this column exists. It represents the “buy the spine, pay forever” path. Lowest day-1 friction, highest steady-state cost, hardest to leave.

  • Engineering time. The PaaS and SaaS columns save days of setup. The BoringStack column trades some of that day-1 time for long-term ownership. Calculator-row cost is infra only.
  • Reliability differences. Multi-AZ managed Postgres has stronger guarantees out of the box than one VPS. The Scale-tier BoringStack figure assumes you’ve added a hot standby or moved to managed Postgres voluntarily. See the Decision Log on Postgres.
  • Enterprise sales pricing. Every column shows public list price. Real enterprise deals are negotiated and can shift any column by 30–60%.
  • Free-tier edge cases. New-account credits, promotional pricing, and pre-revenue waivers can make the early stages cheaper than shown for all three columns.

Edit src/components/landing/costData.ts. That’s the single source of truth for the calculator and these tables. Update the pricingAsOf constant at the same time so the published-date footer stays honest.