Mergi la conținut
cutty.dev
All posts

Stack-ul tehnologic al cutty.dev — alegeri conștiente

Ce se află sub cutty.dev și de ce. Fără evangelism: filosofie bazată pe un stack stabil și plictisitor, găzduire în UE și intimitate integrată în arhitectură, pe care o persoană poate întreține singură.

Majoritatea articolelor „stack-ul meu tehnic” sunt o listă mândră de noutăți. Acesta este despre altceva — despre filozofia din spatele alegerilor cutty.dev: plictisitor și stabil, în loc de la modă, european în loc de american, privat din start, și suficient de simplu încât o singură persoană să îl poată întreține.

Framework: Astro (randare pe server)

cutty.dev este o aplicație Astro randată pe partea serverului. Fiecare cerere trece prin server, compune pagina dinamic și răspunde cu un HTML gata formatat.

De ce: voiam randare pe partea de server fără o infrastructură grea, suport bun pentru multe limbaje încorporat direct în framework și viteză fără overhead. Astro oferă toate acestea, iar codul rămâne lizibil — ceea ce la un proiect condus solo valorează mai mult decât orice funcționalitate la modă.

Bază de date: SQLite

O singură bază de date, un singur fișier. În plus, un strat de interogări prietenos cu TypeScript, care face ca modificarea structurii datelor să evidențieze imediat erorile în cod, nu în producție.

De ce: cutty.dev este în principal „read-heavy” — fiecare click pe un link implică o operație de citire și creșterea număratorului. SQLite face acest lucru excelent, chiar și pentru trafic zilnic foarte mare. Backup-ul este pur și simplu copierea unui singur fișier — fără ceremonii de replicare, fără scripturi complicate. Simplitatea aici nu înseamnă compromisuri asupra calității; este o decizie conștientă că mai puține părți mobile înseamnă mai puține lucruri care se pot strica.

Găzduire: server în Uniunea Europeană

Server dedicat în UE, certificat TLS propriu, proxy invers cu HTTPS automat, aplicație în containere.

De ce: acesta este fundamentul modului în care cutty.dev gestionează datele. Control total asupra locației acestora (esențial pentru clienții din UE și pentru GDPR), lipsa dependenței de un singur furnizor, lipsa replicării automate către SUA oferită de platformele mari de cloud, și costuri predictibile în locul unei facturi dependente de trafic. Platformele occidentale convenabile ar oferi o pornire mai rapidă — dar cu prețul locului unde ajung fizic datele utilizatorilor tăi.

Traduceri: model local de IA

cutty.dev vorbește în 25 de limbi, iar traducerile sunt realizate de un model AI local, open-source, rulat pe propria noastră infrastructură.

De ce: niciun text din interfață nu este transmis în exterior — nu îl trimitem către niciun furnizor extern de AI. Acest lucru implică un cost zero per traducere și control total asupra calității: putem reîmprospăta traducerile oricând dorim. Traducerea automată necesită întotdeauna o verificare umană — iar fiecare limbă a trecut prin astfel de revizuiri — dar a face acest lucru intern înseamnă că confidențialitatea nu este o opțiune în tarifar, ci o proprietate a arhitecturii.

CSS: utilitar-first (Tailwind)

Un singur sistem de stiluri, fără CSS-in-JS, fără fișiere de stil separate. Totul direct în șabloane.

De ce: viteza de iterare. Nu pierd timp inventând nume pentru clase, iar stilurile neutilizate nu ajung în pagină. Un design coerent impus chiar de sistem. Pentru o singură persoană, contează fiecare minut pe care nu îl petrec pe activități secundare.

Implementare: containere

Aplicația în containere (Docker), implementată într-un mod repetabil și portabil.

De ce: același mediu local și în producție, lipsa expresiei „la mine funcționează” și posibilitatea de a muta totul pe un alt server în jumătate de oră, dacă este necesar. Portabilitatea este o formă de independență.

Ce m-a învățat acest lucru

  • Stack-ul plictisitor câștigă. Astro, SQLite, Tailwind, containere — totul este matur, bine documentat și stabil. Nimic nu se strică în cel mai neașteptat moment.
  • Gazduirea în UE este gata de producție. Mitul „trebuie să mergi la o cloud major american ca să fii luat în serios” este exact asta — un mit.
  • AI-ul local este real. Nu trebuie să preiei datele tale către o API externă pentru a avea traduceri bune.
  • O singură persoană poate lansa ceva care arată ca un produs de echipă. Timpul este o resursă mai scumpă decât banii, așa că fiecare alegere aici a protejat tocmai timpul.

Vezi live. Întrebări privind abordarea tehnică — hello@cutty.dev, răspund în aceeași zi.