Anar al contingut
cutty.dev
All posts

Stack tecnològic de cutty.dev — eleccions conscients

Què hi ha sota cutty.dev i per què. Sense evangelisme — filosofia: un stack avorrit i estable, allotjament a la UE i privacitat integrada en l'arquitectura, que una sola persona és capaç de mantenir.

La majoria de les entrades "el meu tech stack" són una llista orgullosa de novetats. Mira, tinc això, tinc allò, i aquí encara una biblioteca fresquíssima de la setmana passada. Aquesta serà diferent.

La veritat és que, quan portes un projecte tu sol, no busques el més de moda. Busques alguna cosa que no et desperti a les tres de la matinada. I de això tracta tot aquest stack tecnològic de cutty.dev: avorrit en lloc de modern, europeu en lloc d'americà, privat des dels fonaments, i prou senzill com perquè un sol parell de mans pugui gestionar-lo.

Vaig avançant pas a pas, com si t'ho estigués explicant amb un cafè.

Astro renderitzat al servidor (i per què no alguna cosa "més interessant")

cutty.dev és Astro amb renderitzat al costat del servidor. Cada petició passa pel servidor, genera la pàgina i retorna l'HTML preparat. Avorrit? Just de què es tracta.

Venia demanant tres coses: renderització al servidor sense maquinària pesada, un suport multilingüe decent des del primer moment, i velocitat sense sobrecarga. Astro ho ofereix tot, i el codi es manté llegible. Quan hi torno després de dos mesos de pausa, sé exactament què està passant allà. En un projecte solitari, això val més que qualsevol addó modern que després d'un any ningú ja no suporta.

Un sol fitxer en lloc d'una base amb focetes


SQLite. Una base de dades, un sol fitxer al disc. A més, una capa de consultes que parla amb TypeScript, així que si canvio l'estructura de dades, l'error em apareix a l'editor i no en producció a mitjana nit.

Per què exactament això? cutty és "read-heavy". Algú clica un enllaç acortat, nosaltres fem una lectura i incrementem el comptador. Això és tot. SQLite gestiona aquest trànsit tranquil·lament, fins a números realment grans al dia. I la còpia de seguretat? Copies el fitxer. Fi. Sense cerimònies de replicació, sense scripts dels quals ningú recorda com funcionen.

Atureix-te en un punt, perquè aquesta és una trampa freqüent: la gent sent "SQLite" i pensa "un joc per a un projecte de l'universitat". No és així. Menys parts mòbils significa menys coses que poden trencar-se. Això no és estalviar en qualitat, és una decisió conscient.

El servidor es troba a Europa i no és una coincidència

Servidor dedicat a la UE. TLS propi, reverse proxy amb HTTPS automàtic, aplicació en contenidors.

Aquest és el fonament de com cutty gestiona les dades. Sé exactament on es troben físicament (amb clients de la UE i el RGPD això no és una curiositat, sinó una condició), no depèn d'un únic proveïdor, res s'escapa automàticament cap a l'altre costat de l'oceà, i la factura és previsible en lloc de variar amb el trànsit.

Sí, les plataformes còmodes de l'Oest donarien un inici més ràpid. Fes clic, deployes, funciona. Només que pagues per això amb el lloc on aterren les dades dels teus usuaris. Per a mi, va ser un mal negoci.

Traduccions fes el teu propi model, a casa tua

cutty parla 25 idiomes. Això ho tradueix un model d'IA local i obert, que s'executa a la meva infraestructura. No envio el text de la interfície cap a cap de proveïdor extern.

Els beneficis són pràctics. Una traducció única costa zero. Tinc el control total sobre la qualitat i puc actualitzar-la quan vulgui. I a més, la màquina sempre necessita un ull humà, així que cada un d'aquests 25 idiomes ha passat per una revisió. Però el fet que ho faci a casa meva significa que la privacitat no és un element en la llista de preus. És una propietat de com s'ha construït tot l'ensemble.

Tailwind, contenidors i algunes decisions més petites

Estil? Utility-first, o sigui Tailwind. Sense CSS-in-JS, sense fitxers d'estils separats, tot directament en les plantilles. No perdo el temps inventant noms de classes; els estils no utilitzats de totes maneres no arriben a la pàgina final, i el disseny té coherència perquè el mateix sistema ho obliga. Per a una sola persona, cada minut no malgastat en bajanades compta.

Aquesta implementació és Docker. El mateix entorn localment i a producció, s'acaba el "a mi em funcionava". I si algun dia fos necessari, trasllado tot a un altre servidor en unes mitges hores. La portabilitat és una forma silenciosa de independència.

Què en he extret

L'estacament avorrit guanya. Astro, SQLite, Tailwind, contenidors. Tot madur, vist i descrit. Res no es trenca en el moment en què menys ho necessites.

L'allotjament a la UE està preparat per a la producció, realment. La idea que "has de passar al gran núvol americà perquè sigui serios" és un mite. L'IA local també és real, no cal lliurar dades a una API externa per tenir traduccions decents. I l'última cosa: una sola persona pot llançar alguna cosa que sembli el treball de tot un equip. Només cal recordar que el temps és més car que els diners i, des d'aquest punt de vista, seleccionar cada peça.

Quan construïs alguna cosa pròpia, fes-te una pregunta amb cada tecnologia: seré capaç de mantenir-la per mi mateix d'aquí a un any? Si la resposta és no, probablement ja tens la resposta.

Tot això funciona aquí: cutty.dev. I si vols parlar de alguna d'aquestes decisions, escriu a [email protected], respondo el mateix dia.