Gå til hovedinnhold
cutty.dev
All posts

Teknologistabelen til cutty.dev — bevisste valg

Hva ligger bak cutty.dev og hvorfor? Uten evangelisering — filosofien: kjedelig, stabil stack, hosting i EU og personvern innebygd i arkitekturen, som én person er i stand til å vedlikeholde.

De fleste "min tech stack"-innlegg er en stolt liste over nyheter. Se, jeg har dette, jeg har hint, og her er enda et helt ferskt bibliotek fra forrige uke. Denne vil bli annerledes.

Sannheten er at når du driver et prosjekt alene, leter du ikke etter det mest trendy. Du leter etter noe som ikke vekker deg klokken tre om natten. Og det er nettopp dette hele cutty.dev teknologistacken handler om: kjedelig i stedet for trendy, europeisk i stedet for amerikansk, privat helt fra grunnen av, og enkelt nok til at én person kan håndtere det.

Jeg går gjennom det steg for steg, akkurat som om jeg forklarte det til deg over en kaffe.

Astro rendret på serveren (og hvorfor ikke noe "kulere")

cutty.dev er Astro med server-side rendering. Hver forespørsel går gjennom serveren, genererer siden og sender tilbake ferdig HTML. Kjedelig? Det er nettopp det som er poenget.

Jeg ønsket tre ting: server-side rendering uten tung maskinvare, ordentlig støtte for flere språk rett ut av boksen, og hastighet uten overhead. Astro gir alt dette, og koden forblir lesbar. Når jeg kommer tilbake til det etter en pause på to måneder, vet jeg nøyaktig hva som foregår der. Ved soloprosjekter er dette verdt mer enn noe som helst trendy tillegg som ingen støtter lenger etter et år.

Én fil i stedet for en database med fyrverkeri

SQLite. Én database, én fil på disken. I tillegg et spørrelag som snakker med TypeScript, så hvis jeg endrer datastrukturen, dukker feilen opp i editoren min, og ikke i produksjon ved midnatt.

Hvorfor akkurat dette? cutty er "read-heavy". Noen klikker på en forkortet lenke, vi utfører et oppslag og øker telleren. Det er alt. SQLite håndterer slik trafikk fint, helt opp til virkelig høye daglige tall. Og backup? Du kopierer filen. Ferdig. Uten replikeringsseremonier, uten skript som ingen husker hvordan fungerer.

Her må du passe på én ting, for dette er en vanlig felle: folk hører "SQLite" og tenker "et leketøy til et skoleprosjekt". Det stemmer ikke. Færre bevegelige deler betyr færre ting som kan gå i stykker. Dette handler ikke om å spare på kvaliteten, det er en bevisst beslutning.

Serveren står i Europa, og det er ingen tilfeldighet

Dedikert server i EU. Egen TLS, reverse proxy med automatisk HTTPS, applikasjon i containere.

Dette er fundamentet for hvordan cutty håndterer data. Jeg vet nøyaktig hvor de fysisk befinner seg (for EU-klienter og GDPR er ikke dette en kuriositet, men et krav), jeg er ikke bundet til én enkelt leverandør, ingenting lekker automatisk over havet, og kostnadene er forutsigbare i stedet for å svinge med trafikken.

Ja, brukervennlige plattformer fra Vesten ville gitt en raskere start. Du klikker, deployer, og det fungerer. Bare at du betaler for det med hvor brukernes data havner. For meg var dette en dårlig avtale.

Oversettelser lager sin egen modell, hos seg selv

cutty snakker 25 språk. Dette oversettes av en lokal, åpen AI-modell som kjører på min infrastruktur. Jeg sender ikke tekst fra grensesnittet til noen ekstern leverandør.

Fordelene er praktiske. En enkelt oversettelse koster null. Jeg har full kontroll over kvaliteten og kan oppdatere dem når jeg vil. Og maskinen trenger alltid et menneskelig øye, så hvert av disse 25 språkene har blitt gjennomgått. Men det faktum at jeg gjør dette selv, betyr at personvern ikke er et punkt på prislisten. Det er en egenskap ved hvordan hele systemet er bygget opp.

Tailwind, containere og noen mindre beslutninger

Stil? Utility-first, det vil si Tailwind. Uten CSS-in-JS, uten separate stilark, alt rett i templatene. Jeg kaster ikke bort tid på å finne opp klassenavn, ubrukte stiler havner uansett ikke på den endelige siden, og designet holder sammen fordi selve systemet tvinger det frem. For én person teller hvert minutt som ikke blir kastet bort på småting.

Implementeringen er Docker. Det samme miljøet lokalt og i produksjon, slutt på "det fungerte hos meg". Og hvis det noen gang skulle bli nødvendig, flytter jeg alt til en annen server på omtrent en halvtime. Portabilitet er en stille form for uavhengighet.

Hva jeg lærte av dette

En kjedelig stack vinner. Astro, SQLite, Tailwind, containere. Alt er modent, utprøvd og dokumentert. Ingenting går i stykker i det øyeblikket du trenger det aller minst.

Hosting i EU er klar for produksjon, virkelig. Myten om at "du må bruke den store amerikanske skyen for å være seriøs", er bare en myte. Lokal AI er også realistisk; man trenger ikke å gi fra seg data til et eksternt API for å få gode oversettelser. Og den siste tingen: én person kan lansere noe som ser ut som arbeidet til et helt team. Man må bare huske at tid er dyrere enn penger, og velge hver brikke med det i tankene.

Når du bygger noe eget, still deg selv ett spørsmål ved hver teknologi: vil jeg kunne vedlikeholde det selv om et år? Hvis ikke, så har du vel svaret.

Alt fungerer her: cutty.dev. Og hvis du vil snakke om en av disse beslutningene, skriv til [email protected], jeg svarer samme dag.