Lo stack tecnologico di cutty.dev: scelte consapevoli
Cosa c'è sotto cutty.dev e perché. Senza evangelismo: filosofia di uno stack noioso ma stabile, hosting nell'UE e privacy integrata nell'architettura, mantenibile da una sola persona.
La maggior parte degli articoli sul "mio tech stack" è un elenco orgoglioso delle ultime novità. Questo parla di qualcos'altro: della filosofia che sta dietro alle scelte di cutty.dev: noioso e stabile invece che alla moda, europeo invece che americano, privato per impostazione predefinita, e così semplice che una sola persona può mantenerlo.
Framework: Astro (rendering lato server)
cutty.dev è un'applicazione Astro renderizzata lato server. Ogni richiesta passa attraverso il server, che compila dinamicamente la pagina e risponde con l'HTML completo.
Perché: volevo il rendering lato server senza una complessa infrastruttura, un buon supporto per molte lingue integrato nel framework stesso e velocità senza overhead. Astro offre tutto questo e mantiene il codice leggibile — cosa che, in un progetto portato avanti da soli, vale più di qualsiasi trendy feature.
Database: SQLite
Una sola base di dati, un solo file. A ciò si aggiunge uno strato di query friendly per TypeScript, grazie al quale la modifica della struttura dei dati evidenzia immediatamente gli errori nel codice invece che in produzione.
Perché: cutty.dev è principalmente "read-heavy" — ogni click su un link comporta una lettura e l'incremento del contatore. SQLite gestisce questo compito in modo eccellente, anche con carichi di lavoro giornalieri molto elevati. Il backup consiste semplicemente nel copiare un singolo file: senza cerimonie di replicazione, senza script complessi. La semplicità qui non è un risparmio sulla qualità; è una decisione consapevole che meno componenti mobili significano meno elementi che possono guastarsi.
Hosting: server nell'Unione Europea
Server dedicato nell'UE, certificato TLS personale, reverse proxy con HTTPS automatico, applicazione in container.
Perché: è il fondamento di come cutty.dev gestisce i dati. Controllo totale sulla loro posizione (fondamentale per i clienti nell'UE e per la conformità al GDPR), nessuna dipendenza da un singolo fornitore, nessuna replicazione automatica negli Stati Uniti offerta dalle grandi piattaforme cloud e costi prevedibili invece di fatture basate sul traffico. Le comode piattaforme occidentali garantirebbero un avvio più rapido — ma a costo di determinare dove finiscono fisicamente i dati dei tuoi utenti.
Traduzioni: modello locale di IA
cutty.dev parla 25 lingue e le traduzioni sono effettuate da un modello AI locale e open source eseguito sulla nostra infrastruttura.
Perché: nessun testo dell’interfaccia viene esportato: non lo inviamo a nessun fornitore di AI esterno. Questo comporta un costo zero per ogni singola traduzione e il pieno controllo sulla qualità: possiamo aggiornarla quando vogliamo. La traduzione automatica richiede sempre una verifica umana — e ogni lingua è stata sottoposta a tale revisione — ma farlo internamente significa che la privacy non è un’opzione nel listino prezzi, ma una proprietà dell’architettura.
CSS: utility-first (Tailwind)
Un unico sistema di stili, senza CSS-in-JS e senza file di stile separati. Tutto direttamente nei template.
Perché: velocità di iterazione. Non spreco tempo a inventare nomi per le classi e gli stili inutilizzati non finiscono comunque nella pagina finale. Un design coerente imposto dallo stesso sistema. Per una persona, ogni minuto risparmiato da attività secondarie conta.
Implementazione: contenitori
Applicazione in contenitori (Docker), distribuita in modo ripetibile e portabile.
Perché: lo stesso ambiente sia in locale che in produzione, assenza di scuse come "funzionava sul mio computer", e la possibilità di trasferire l'intero setup su un altro server in mezz'ora, se necessario. La portabilità è una forma di indipendenza.
Cosa mi ha insegnato
- Lo stack noioso vince. Astro, SQLite, Tailwind, container: tutto maturo, ben documentato e stabile. Nulla si rompe nel momento meno aspettato.
- L'hosting in UE è pronto per la produzione. Il mito "devi andare sul grande cloud americano per essere presi sul serio" è proprio questo: un mito.
- L'AI locale è reale. Non è necessario cedere i propri dati a un'API esterna per ottenere buone traduzioni.
- Una persona può lanciare qualcosa che sembra il prodotto di un team. Il tempo è una risorsa più costosa del denaro, quindi ogni scelta fatta qui ha protetto proprio il tempo.
Guarda dal vivo. Domande sull'approccio tecnico — hello@cutty.dev, rispondo lo stesso giorno.