Idi na sadržaj
cutty.dev
All posts

Tehnološki stack cutty.dev — svjesni izbori

Što je ispod cutty.dev i zašto. Bez evangelizma — filozofija: dosadan, stabilan stack, hosting u EU i privatnost upisana u arhitekturu koju jedna osoba može održavati.

Većina članaka "moj tech stack" su ponosni popis noviteta. Ovaj je o nečem drugom — o filozofiji koja stoji iza izbora cutty.dev: dosadno i stabilno umjesto trendovskog, europsko umjesto američkog, privatno po prirodi, i dovoljno jednostavno da ga jedna osoba može održavati.

Framework: Astro (server-side rendering)

cutty.dev je Astro aplikacija koja se renderira na strani poslužitelja. Svaki zahtjev ide preko poslužitelja, dinamički sastavlja stranicu i odgovara gotovim HTML-om.

Zašto: želio sam renderiranje na strani poslužitelja bez teške mehanizacije, dobru podršku za više jezika ugrađenu u sam framework i brzinu bez suvišnog opterećenja. Astro nudi sve to, a kod ostaje čitljiv — što je kod projekta koji vodi jedna osoba vrijednije od bilo kojeg modernog dodatka.

Baza podataka: SQLite

Jedna baza, jedna datoteka. Uz to sloj upita prilagođen TypeScriptu, zahvaljujući čemu promjena strukture podataka odmah prikazuje pogreške u kodu umjesto u produkciji.

Zašto: cutty.dev je prvenstveno "read-heavy" — svaki klik na poveznicu je čitanje plus povećanje brojača. SQLite to radi izvrsno, do vrlo velikog dnevnog prometa. Sigurnosna kopija je jednostavno kopiranje jedne datoteke — bez ceremonije replikacije, bez složenih skripti. Jednostavnost ovdje nije ušteda na kvaliteti; to je svjesna odluka da manje pokretnih dijelova znači manje stvari koje mogu poći po zlu.

Hosting: poslužitelj u Europskoj uniji

Namjesteni poslužitelj u EU, vlastiti TLS certifikat, reverse proxy s automatskim HTTPS-om, aplikacija u kontejnerima.

Zašto: to temelj načina na koji cutty.dev tretira podatke. Potpuna kontrola nad njihovom lokacijom (ključno za klijente u EU i za GDPR), izbjegavanje ovisnosti o jednom pružatelju usluga, nedostatak automatske replikacije u SAD koju nude velike cloud platforme, te predvidljiv trošak umjesto računa ovisnog o prometu. Praktične zapadne platforme omogućile bi brži početak — ali po cijeni toga gdje fizički završavaju podaci vaših korisnika.

Prijevodi: lokalni AI model

cutty.dev govori na 25 jezika, a prijevode izvodi lokalni, otvoreni AI model pokrenut na našoj vlastitoj infrastrukturi.

Zašto: nikakav tekst iz sučelja ne izlazi van — ne šaljemo ga nijednom vanjskom AI pružatelju usluga. Uz to ide nula troškova po pojedinačnom prijevodu i puna kontrola kvalitete: možemo ih osvježavati kada god želimo. Prijevod strojnim metodama uvijek zahtijeva ljudsku provjeru — i svaki jezik je prošao takvu reviziju — ali to što to radimo sami znači da privatnost nije opcija u cjeniku, već svojstvo arhitekture.

CSS: utility-first (Tailwind)

Jedan sustav stilova, bez CSS-in-JS, bez zasebnih datoteka stilova. Sve izravno u predlošcima.

Zašto: brzina iteracije. Ne gubim vrijeme na smišljanje naziva klasa, a neiskorišteni stilovi ionako ne dolaze na finalnu stranicu. Dosljedan dizajn nametnut samim sustavom. Za jednu osobu je bitna svaka minuta koju ne provodim na sporednim stvarima.

Implementacija: kontejneri

Aplikacija u kontejnerima (Docker), implementirana na ponovljiv, prenosiv način.

Zašto: isto okruženje lokalno i na produkciji, nema "kod mene je radilo", i mogućnost premještanja cjeline na drugi poslužnik u pola sata, ako do toga dođe potreba. Prenosivost je oblik neovisnosti.

Što me je to naučilo

  • Dosadan stack pobjeđuje. Astro, SQLite, Tailwind, kontejneri — sve je zrelo, dobro dokumentirano, stabilno. Ništa ne pukne u najmanje očekivanom trenutku.
  • Hosting u EU je spreman za produkciju. Mit "moraš otići na veliku američku cloud platformu da bi bilo ozbiljno" je upravo to — mit.
  • Lokalni AI je stvaran. Ne treba predavati svoje podatke vanjskom API-ju kako biste imali dobre prijevode.
  • Jedna osoba može izbaciti nešto što izgleda kao proizvod tima. Vrijeme je resurs skuplji od novca, stoga je svaki izbor ovdje upravo štedio vrijeme.

Pogledajte uživo. Pitanja o tehnički pristup — hello@cutty.dev, odgovaram istog dana.