eduardweb.
Prezentări & ShowcaseIntermediar#showcase#saas#efactura#bootstrap#go

Am lansat un SaaS de facturare pentru freelanceri români. Arhitectură și costuri la 89 de clienți plătitori

De Marian Apostol, 13 iul. 2026 · 14 vizualizări · 3 like-uri

Postat 13 iul. 2026

Am vrut să-mi rezolv o problemă personală: m-am săturat de platformele mari de facturare din România, care au devenit prea încărcate și complicate pentru un simplu PFA. Așa am scris primele linii de cod pentru un micro-SaaS de facturat, dedicat exclusiv freelancerilor care vor doar să emită 3-4 facturi pe lună, să le descarce și să le trimită automat în SPV.

Astăzi am ajuns la 89 de clienți plătitori (abonament de 5 euro/lună). Vreau să vă arăt exact cum l-am arhitecturat, cât mă costă să-l țin în picioare și de ce m-am ferit de serverless-ul „la modă”.

Arhitectura: Fără bătăi de cap și fără costuri ascunse

Când am pornit, tentația a fost să arunc cu Next.js, Vercel, Supabase și zece microservicii serverless. După ce am făcut matematica, mi-am dat seama că la primul spike de trafic sau la primul script malițios care îmi scana rutele, riscam o factură de sute de dolari de la Vercel.

Am mers pe varianta clasică, de „dev bătrân”:

  • Backend & Frontend: Un singur monolit în Go cu șabloane HTML (Go templates) și puțin Alpine.js pentru interactivitate. Go pornește instant, consumă sub 30MB RAM în idle și duce mii de request-uri pe secundă fără să transpire.
  • Baza de date: PostgreSQL rulat direct pe server.
  • Deployment: Un VPS de la Hetzner (locație în Germania, latență excelentă pentru România) care costă exact 5.40 EUR pe lună.
  • Sistemul de deployment: Coolify (o alternativă open-source excelentă la Heroku). Îmi oferă deployment la git push, SSL automat prin Let's Encrypt și monitorizare de bază.

Costurile lunare la virgulă

Iată exact cât mă costă să rulez aplicația pentru cei 89 de utilizatori activi:

  • Server (Hetzner CX21 - 2 vCPU, 4GB RAM): 5.40 EUR
  • Trimitere email-uri (Resend): 0.00 USD (folosesc tier-ul gratuit, trimit cam 1.200 de mailuri pe lună, limita lor e de 3.000)
  • Stocare PDF-uri (Cloudflare R2): 0.00 USD (primii 10 GB sunt moca, facturile mele ocupă momentan sub 300 MB)
  • Bază de date backup (S3 localizat în RO pentru siguranță): ~1.50 EUR
  • Procesare plăți (Stripe): Comision de ~1.4% + 0.25 EUR per tranzacție (se scade direct din încasări, deci nu e cost fix)

Total costuri fixe: sub 7 EUR pe lună.

Trade-off-ul sincer: Coșmarul numit ANAF

Sună idilic, dar am avut și nopți nedormite. Cel mai mare trade-off a fost integrarea cu sistemul e-Factura. API-ul ANAF este un monument de instabilitate.

La început, încercam să trimit e-Factura sincron, în timp ce userul aștepta în browser. Mare greșeală. API-ul lor dădea timeout după 30 de secunde, conexiunea pica, iar baza mea de date rămânea blocată.

Am fost nevoit să rescriu tot fluxul pe un sistem asincron. Acum, când userul apasă „Trimite în SPV”, factura intră într-o coadă de așteptare (queue) în baza de date. Un worker separat în Go încearcă trimiterea în fundal. Dacă ANAF e picat (ceea ce se întâmplă des marțea și joia), workerul reîncearcă automat la 15 minute, de maxim 5 ori, folosind un algoritm de exponential backoff.

Fără coada asta de mesaje, proiectul era mort din prima lună din cauza plângerilor de la clienți.

Ce urmează?

La 89 de useri, proiectul generează în jur de 440 EUR brut pe lună. Nu sunt bani de pensionare, dar acoperă lejer serverul și îmi oferă un buget frumos de bere și gadget-uri, plus satisfacția că rulează singur, fără mentenanță zilnică.

Voi cum abordați proiectele astea mici? Mergeți pe serverless și promisiuni de scalare infinită, sau preferați un VPS ieftin unde aveți control total asupra fiecărui?

Răspunsuri 0

Se încarcă răspunsurile…

Loghează-te pentru a răspunde

Doar membrii comunității pot lăsa comentarii.