J’ai deux SaaS en production : caribBook (multi-tenant, Stripe, Brevo) et DayZBeansLauncher (desktop + backend Java). Tous les deux tournent sur des VPS Hostinger orchestrés en K3s, déployés en GitOps par ArgoCD.

Beaucoup de founders me posent la même question : “Pourquoi pas Vercel + Supabase ? T’aurais zéro infra à gérer.”

Voici mon raisonnement, sans dogme.

1. Le coût réel après 12 mois

Sur le papier, Vercel + Supabase = 0€ au démarrage. Réalité après un an de prod :

  • Vercel Pro : 20$/mois × utilisateur. Dès que t’as 2 collaborateurs et 100k requêtes serverless, tu passes facilement à 50–80$/mois.
  • Supabase Pro : 25$/mois minimum, +bande passante, +stockage, +Realtime. ~60$/mois courant.
  • Egress : c’est là que ça coince. Tu paies par GB sortant. Multi-tenant + uploads = facture qui grimpe vite.

Mon setup chez Hostinger : VPS KVM4 ~10–15€/mois pièce, 4 vCPU / 16 Go RAM / 200 Go NVMe inclus. Bande passante généreuse, IP dédiée, snapshots inclus. Deux VPS par région suffisent pour faire tourner le control plane K3s + worker(s) + un Postgres dédié.

Backups : c’est là où je sors d’Hostinger. Je dump Postgres + buckets Minio chaque nuit vers Hetzner Storage Box — 1 To pour ~3,80€/mois. Parfait pour de la rétention longue, indépendant du fournisseur compute.

Stockage objet : Minio auto-hébergé sur les mêmes VPS (S3-compatible). Pas de facture par GB, pas d’egress facturé. Pour caribBook (uploads de photos villas, contrats PDF), ça change tout par rapport à un S3 managed qui te facture chaque téléchargement client.

ROI : sortie d’un Vercel + Supabase + S3 actifs payée en 2-3 mois.

2. La régionalisation pragmatique

Règle simple que j’applique : l’infra colle à la géo des clients.

  • SaaS pour clients US → VPS Hostinger côté US (ou un fournisseur équivalent côté Est ou Ouest selon où tape la majorité)
  • SaaS pour clients EU → VPS Hostinger côté EU (Lithuania ou Pays-Bas chez Hostinger)
  • SaaS multi-régions → un cluster K3s par région, DB régionale, replication asynchrone si nécessaire

Pas besoin d’edge global comme Vercel pour 95 % des SaaS B2B. Un client US n’a pas besoin de 30 PoPs ; il a besoin que ton API réponde sous 100 ms depuis sa région principale. Un VPS bien placé fait le job.

Le multi-VPS par région reste moins cher que la plupart des PaaS managés. 3 VPS Hostinger dans une région = ~30–40€/mois. Tu obtiens redondance compute + ingress + DB + Minio. Aucun équivalent géré sous 100€/mois avec ce niveau de contrôle.

3. Le contrôle (et la sortie)

Sur Vercel, ton déploiement = leur API. Sur Supabase, ta DB = leur dashboard, leurs migrations, leur RLS, leur pgsodium.

Sur K3s + Hostinger :

  • Mes manifests sont dans mon repo Git. Tout est déclaratif.
  • ArgoCD réconcilie le cluster sur le repo. Pas de “click ops”.
  • Ma DB est un Postgres standard, migrations versionnées avec Liquibase (changelogs XML/YAML, rollback, contextes par environnement). Je peux la dumper et la rendre disponible sur n’importe quel hébergeur en 15 minutes.

Si demain Hostinger me kicke, je kubectl apply ailleurs — n’importe quel fournisseur de VPS KVM fait l’affaire. Migration en 1 journée, sans rewrite.

4. Ce que tu perds vraiment

Soyons honnêtes — voici ce que tu sacrifies en self-hostant :

  • L’edge global natif : pour servir un site marketing dans 30 pays avec latence minimale, Cloudflare Pages ou Vercel restent imbattables. Pour ton API B2B, peu d’impact si tu colles à la région.
  • Le DX magique : vercel deploy vs un pipeline GitHub Actions + image push + ArgoCD sync. C’est plus à mettre en place une seule fois, mais ensuite t’oublies.
  • Le scaling auto : K3s scale vertical par défaut. HPA + cluster autoscaler, c’est encore du yaml à écrire. Pour un SaaS B2B avec un volume prévisible, rarement bloquant.

Pour un blog ou un MVP qui doit servir 50 pays, Vercel reste excellent. Pour un SaaS B2B avec un panel de clients identifié et régional, le coût/contrôle penche lourdement vers le self-hosted.

5. Ma stack exacte

Pour les curieux :

# Compute       : VPS Hostinger KVM4 (par région cliente)
# Orchestration : K3s + Traefik + cert-manager + sealed-secrets
# Déploiement   : ArgoCD (app-of-apps), repo dédié à l'infra
# DB            : Postgres avec Liquibase (changelogs versionnés)
# Storage       : Minio S3-compatible (auto-hébergé sur les mêmes VPS)
# Backups       : dump Postgres + Minio → Hetzner Storage Box (1 To, ~3,80€/mois)
# Uptime / monitoring : Uptime Kuma self-hosted (HTTP, TCP, certs)
# Analytics web : Plausible self-hosted (RGPD-friendly, pas de cookie)

GitOps end-to-end : un git push sur main du repo app, le tag d’image bouge dans le repo infra, ArgoCD sync, le pod redémarre. Aucun secret dans le pipeline (sealed-secrets).

6. Quand je dis “non” au self-hosting

À mes clients en pack Audit, je ne recommande jamais K3s par défaut. Je le recommande quand :

  • Le client a déjà un dev infra (ou veut s’y mettre sérieusement)
  • La stack est mature (pas de pivot tous les 3 mois)
  • La facture cloud actuelle dépasse ~300€/mois ou la sortie de fournisseur est un sujet stratégique (souveraineté, RGPD strict, dépendance à un PaaS qui peut fermer)
  • Le SaaS est B2B régional, pas un produit consumer mondial

Dans tous les autres cas : reste sur ta stack actuelle, paie ton SaaS-managed, code ton produit. Le yaml peut attendre.


TL;DR : K3s + ArgoCD sur VPS Hostinger, c’est un investissement de 2-3 jours de setup pour récupérer le contrôle de ta plateforme et coller la latence à la géo de tes clients. Backups externalisés chez Hetzner pour 4€/mois. Pas pour tout le monde, mais quand ça correspond, ça te fait économiser des milliers d’euros par an et garantit ta sortie de cloud.

Tu veux savoir si ton SaaS gagnerait à migrer ? L’audit gratuit 30 min tranche.