I run two SaaS in production: caribBook (multi-tenant, Stripe, Brevo) and DayZBeansLauncher (desktop + Java backend). Both run on Hostinger VPS orchestrated as K3s, deployed GitOps-style with ArgoCD.

Founders keep asking me the same question: “Why not Vercel + Supabase? You’d have zero infra to manage.”

Here’s my reasoning, no dogma.

1. The real cost after 12 months

On paper, Vercel + Supabase = $0 at start. Reality after one year in production:

  • Vercel Pro: $20/mo per seat. With 2 collaborators and 100k serverless requests, you easily hit $50–$80/mo.
  • Supabase Pro: $25/mo minimum, plus bandwidth, plus storage, plus Realtime. ~$60/mo typical.
  • Egress: that’s where it bites. You pay per GB out. Multi-tenant + uploads = bill that climbs fast.

My Hostinger setup: KVM4 VPS at ~€10–15/mo each, 4 vCPU / 16 GB RAM / 200 GB NVMe included. Generous bandwidth, dedicated IP, snapshots included. Two VPS per region cover the K3s control plane + worker(s) + a dedicated Postgres.

Backups: that’s where I leave Hostinger. I dump Postgres + Minio buckets nightly to a Hetzner Storage Box — 1 TB for ~€3.80/mo. Perfect for long retention, decoupled from compute provider.

Object storage: Minio self-hosted on the same VPS (S3-compatible). No per-GB invoice, no egress fees. For caribBook (villa photo uploads, contract PDFs), this changes everything compared to managed S3 that charges every customer download.

ROI: payback on a Vercel + Supabase + S3 setup in 2–3 months.

2. Pragmatic regionalization

Simple rule I apply: infra matches customer geography.

  • SaaS for US customers → Hostinger US VPS (or a similar provider East/West Coast depending on where most traffic lands)
  • SaaS for EU customers → Hostinger EU VPS (Lithuania or Netherlands)
  • Multi-region SaaS → one K3s cluster per region, regional DB, async replication if needed

You don’t need a global edge like Vercel for 95% of B2B SaaS. A US customer doesn’t need 30 PoPs; they need your API to respond under 100 ms from their primary region. A well-placed VPS does the job.

Multi-VPS per region is still cheaper than most managed PaaS. 3 Hostinger VPS in one region = ~€30–40/mo. You get compute + ingress + DB + Minio redundancy. No managed equivalent under €100/mo with this level of control.

3. Control (and exit)

On Vercel, your deploy = their API. On Supabase, your DB = their dashboard, their migrations, their RLS, their pgsodium.

On K3s + Hostinger:

  • My manifests live in my Git repo. Everything declarative.
  • ArgoCD reconciles the cluster against the repo. No “click ops”.
  • My DB is plain Postgres, migrations versioned with Liquibase (XML/YAML changelogs, rollback, env-scoped contexts). I can dump it and stand it up on any host in 15 minutes.

If Hostinger kicks me out tomorrow, I kubectl apply somewhere else — any KVM VPS provider works. One-day migration, zero rewrite.

4. What you actually lose

Honestly — here’s what you trade off when self-hosting:

  • Native global edge: to serve a marketing site to 30 countries with minimum latency, Cloudflare Pages or Vercel remain unbeatable. For your B2B API, low impact if you stay regional.
  • Magic DX: vercel deploy vs a GitHub Actions pipeline + image push + ArgoCD sync. More to set up once, then you forget about it.
  • Auto-scaling: K3s scales vertical by default. HPA + cluster autoscaler is more YAML to write. For B2B SaaS with predictable volume, rarely a blocker.

For a blog or MVP serving 50 countries, Vercel is still excellent. For a B2B SaaS with an identified, regional customer base, the cost/control trade-off tilts heavily toward self-hosting.

5. My exact stack

For the curious:

# Compute             : Hostinger KVM4 VPS (per customer region)
# Orchestration       : K3s + Traefik + cert-manager + sealed-secrets
# Deploy              : ArgoCD (app-of-apps), dedicated infra repo
# DB                  : Postgres with Liquibase (versioned changelogs)
# Storage             : Minio S3-compatible (self-hosted on the same VPS)
# Backups             : Postgres dump + Minio → Hetzner Storage Box (1 TB, ~€3.80/mo)
# Uptime / monitoring : Uptime Kuma self-hosted (HTTP, TCP, certs)
# Web analytics       : Plausible self-hosted (GDPR-friendly, no cookie)

End-to-end GitOps: a git push to main on the app repo, image tag bumps in the infra repo, ArgoCD syncs, pod restarts. No secrets in the pipeline (sealed-secrets).

6. When I say “no” to self-hosting

To my Audit clients, I never recommend K3s by default. I recommend it when:

  • The client already has an infra dev (or seriously wants to grow into one)
  • The stack is mature (no pivot every 3 months)
  • The current cloud bill exceeds ~€300/mo or vendor exit is strategic (sovereignty, strict GDPR, dependency on a PaaS that could shut down)
  • The SaaS is regional B2B, not a global consumer product

In every other case: stay on your current stack, keep paying your managed SaaS, ship product. The YAML can wait.


TL;DR: K3s + ArgoCD on Hostinger VPS is a 2–3 day setup investment to regain control of your platform and align latency with customer geography. Backups offloaded to Hetzner for €4/mo. Not for everyone, but when it fits, it saves thousands of euros per year and guarantees your cloud exit.

Want to know if your SaaS would benefit from migrating? The free 30-min audit decides.