Přejít na obsah
cutty.dev
All posts

Technologický stack cutty.dev — vědomé volby

Co je pod kapotou cutty.dev a proč. Bez evangelismu — filozofie: nudný, stabilní stack, hosting v EU a soukromí zabudované přímo v architektuře, kterou je schopna udržovat jedna osoba.

Většina příspěvků „můj tech stack“ je hrdý seznam novinek. Koukej, mám tohle, mám tamto a tady ještě úplně čerstvá knihovna z minulého týdne. Tenhle bude jiný.

Proto je pravda taková, že když projekt vedete sami, nehledáte to nejmodernější. Hledáte něco, co vás nevybudí ve tři ráno. A o tom celém technologickém stacku cutty.dev to právě je: nudné místo módního, evropské místo amerického, soukromé od základů a dost jednoduché na to, aby to zvládla jedna pár rukou.

Letím postupně, jako bych ti to vysvětloval u kávy.

Astro renderované na serveru (a proč ne něco „zajímavějšího“)

cutty.dev je Astro s server-side renderingem. Každý požadavek prochází serverem, skládá stránku a vrací hotový HTML. Nuda? Právě o to jde.

Chtěl jsem tři věci: rendering na serveru bez těžké machinerie, pořádnou podporu mnoha jazyků hned od začátku a rychlost bez režie. Astro nabízí všechno to, přičemž kód zůstává čitelný. Když se k němu vracím po dvou měsících přestávky, přesně vím, co se tam děje. U solo projektů je to cennější než jakýkoliv módní doplněk, který už po roce nikdo nepodporuje.

Jeden soubor místo databáze s ohňostrojem

SQLite. Jedna databáze, jeden soubor na disku. K tomu vrstva dotazů komunikující s TypeScriptem, takže když změním strukturu dat, chyba se mi objeví v editoru, a ne v produkci o půlnoci.

Proč právě toto? cutty je "read-heavy". Někdo klikne na zkrácenou ئۇlink, my provedeme čtení a zvýšíme počítadlo. To je všechno. SQLite takový provoz zvládá v pohodě, až do opravdu vysokých denních čísel. A záloha? Zkopírujete soubor. Hotovo. Bez rituálů replikace, bez skriptů, na které nikdo nevědí, jak fungují.

Zde si dej pozor na jednu věc, protože je to častá past: lidé slyší „SQLite“ a myslí si „hračka pro projekt ke zkoušce“. Není to pravda. Méně pohyblivých částí znamená méně věcí, které se mohou rozpadnout. Nejde o šetření na kvalitě, je to vědomé rozhodnutí.

Server stojí v Evropě a není to náhoda

Dedykovaný server v EU. Vlastní TLS, reverse proxy s automatickým HTTPS, aplikace v kontejnerech.

To je základ toho, jak cutty nakládá s daty. Vím přesně, kde fyzicky leží (u klientů z EU a v souvislosti s GDPR to není jen zajímavost, ale podmínka), nejsem vázán jednomu poskytovateli, nic neuniká automaticky za oceán a náklady jsou předvídatelné místo toho, aby skákaly spolu s provozem.

Ano, pohodlné platformy ze Západu by zajistily rychlejší start. Klikneš, deploy, funguje. Jenže za to platíš tím, kde končí data tvých uživatelů. Pro mě to byla špatná dohoda.

Překlady dělá vlastní model, u sebe

cutty mluví 25 jazyky. Překládá jej lokální, otevřený model AI, který běží na mé infrastruktuře. Neodesílám text z rozhraní žádnému externímu poskytovateli.

Výhody jsou praktické. Jednotlivý překlad stojí nula. Mám plnou kontrolu nad kvalitou a mohu jej obnovit, kdykoli chci. A stroj vždy potřebuje lidské oko, takže každý z těchto 25 jazyků prošel revizí. Ale fakt, že to dělám u sebe, znamená, že soukromí není položka v ceníku. Je to vlastností toho, jak je celek postaven.

Tailwind, kontejnery a několik menších rozhodnutí

Styl? Utility-first, tedy Tailwind. Bez CSS-in-JS, bez samostatných souborů se styly, vše přímo v šablonách. Neztrácím čas vymýšlením názvů tříd, nepoužité styly stejně nekončí na finální stránce a design drží pohromadě, protože to samotný systém vynucuje. Pro jednu osobu záleží na každé minutě nezmařené na prázdnoty.

Nasazení je Docker. Stejné prostředí lokálně i na produkci, konec s „u mě to fungovalo“. A kdyby to někdy bylo potřeba, přestěhuji celek na jiný server za asi půl hodiny. Přenositelnost je tichou formou nezávislosti.

Co jsem si z toho odnesl

Nudný stack vyhrává. Astro, SQLite, Tailwind, kontejnery. Všechno je zralé, prověřené, popsané. Nic nepraská v momentě, kdy to nejméně potřebujete.

Hosting v EU je připraven na produkci, opravdu. To, že „musíš jít do velkého amerického cloudu, aby to bylo vážné“, je jen pohádka. Lokální AI je také realita, nemusíte předávat data externímu API, abyste měli slušné překlady. A poslední věc: jedna osoba může vypustit něco, co vypadá jako práce celého týmu. Jen je třeba si pamatovat, že čas je dražší než peníze, a v tomto smyslu vybírat každý dílek.

Jak buduješ něco svého, polož si u každé technologie jednu otázku: dokážu to za rok udržovat sám? Pokud ne, tak asi máš odpověď.

Všechno to funguje zde: cutty.dev. A pokud si chceš probrat některou z těchto rozhodnutí, napiš na [email protected], odpovídám ještě tentýž den.