Gå til indhold
cutty.dev
All posts

cutty.dev teknologistak — bevidste valg

Hvad ligger under cutty.dev og hvorfor. Uden evangelisering — filosofi: kedelig, stabil stack, hosting i EU og privatliv indbygget i en arkitektur, som én person er i stand til at vedligeholde.

De fleste "min tech stack"-artikler er en stolt liste over nyheder. Denne her handler om noget andet — om den filosofi, der ligger bag valgene hos cutty.dev: kedelig og stabil i stedet for trendy, europæisk i stedet for amerikansk, privat af natur, og enkel nok til at én person kan vedligeholde det.

Framework: Astro (server-side rendering)

cutty.dev er en Astro-applikation, der bliver renderet på serversiden. Hver anmodning går gennem serveren, sammensætter siden dynamisk og svarer med færdig HTML.

Hvorfor: jeg ønskede server-side rendering uden tungt maskineri, god understøttelse af mange sprog indbygget i selve frameworket, og hastighed uden overhead. Astro giver det hele, og koden forbliver læsbar — hvilket ved et solo-projekt er mere værd end ethvert trendy plugin.

Database: SQLite

Én database, én fil. Hertil kommer et query-lag, der er TypeScript-venligt, hvilket betyder, at ændringer i datastrukturen med det samme viser fejl i koden i stedet for i produktion.

Hvorfor: cutty.dev er primært "read-heavy" — hvert klik på et link er en læsning plus en øgning af tælleren. SQLite gør dette fremragende, helt op til meget stor daglig trafik. Backup er blot at kopiere én fil — uden replikeringsceremonier, uden komplicerede scripts. Enkelhed her er ikke en besparelse på kvalitet; det er en bevidst beslutning om, at færre bevægelige dele betyder færre ting, der kan gå i stykker.

Hosting: server i Den Europæiske Union

Dedikeret server i EU, eget TLS-certifikat, reverse proxy med automatisk HTTPS, applikation i containere.

Hvorfor: det er fundamentet for, hvordan cutty.dev behandler data. Fuld kontrol over deres placering (afgørende for kunder i EU og for GDPR), ingen afhængighed af en enkelt leverandør, ingen automatisk replikering til USA, som store cloud-platforme tilbyder, og en forudsigelig omkostning i stedet for en regning, der afhænger af trafik. Bekvemme vestlige platforme ville give en hurtigere start — men på bekostning af, hvor dine brugeres data fysisk lander.

Oversættelser: lokal AI-model

cutty.dev taler 25 sprog, og oversættelserne udføres af en lokal, åben AI-model, der kører på vores egen infrastruktur.

Hvorfor: ingen tekst fra interfacet kommer ud — vi sender den ikke til nogen ekstern AI-udbyder. Dette resulterer i nul omkostninger per enkelt oversættelse og fuld kontrol over kvaliteten: vi kan opdatere dem, når vi vil. Maskinoversættelse kræver altid menneskelig gennemgang — og hvert sprog har gennemgået en sådan gennemgang — men ved at gøre det selv betyder det, at privatliv ikke er en valgmulighed i prislisten, men en egenskab ved arkitekturen.

CSS: utility-first (Tailwind)

Ét designsystem, uden CSS-in-JS, uden separate stilfiler. Alt direkte i skabelonerne.

Hvorfor: iterationshastighed. Jeg spilder ikke tid på at udtænke klassenavne, og de ubrugte stilarter ender alligevel ikke på den endelige side. Et ensartet design tvunget igennem af selve systemet. For én person tæller hvert minut, som jeg ikke bruger på perifere ting.

Implementering: containere

Applikation i containere (Docker), implementeret på en reproducerbar, bærbar måde.

Hvorfor: det samme miljø lokalt og i produktion, ingen "det virkede på min maskine", og muligheden for at flytte det hele til en anden server på en halv time, hvis behovet opstår. Portabilitet er en form for uafhængighed.

Hvad lærte det mig

  • Kedelig stack vinder. Astro, SQLite, Tailwind, containere — alt er modent, veldokumenteret og stabilt. Intet går i stykker på det mindst forventede tidspunkt.
  • Hosting i EU er klar til produktion. Myten om, at "du skal bruge den store amerikanske cloud for at være seriøs", er netop det — en myte.
  • Lokal AI er realistisk. Man behøver ikke at give sine data til et eksternt API for at få gode oversættelser.
  • Én person kan udgive noget, der ligner et team-produkt. Tid er en mere kostbar ressource end penge, så hvert valg her har netop beskyttet tiden.

Se live. Spørgsmål om den tekniske tilgang — hello@cutty.dev, jeg svarer samme dag.