Technologický stack cutty.dev – uvědomělá rozhodnutí
Co je pod povrchem cutty.dev a proč. Bez evangelizace - filozofie: nudný, stabilní stack, hosting v EU a soukromí zakódované do architektury, kterou zvládne udržet jedna osoba.
Většina článků „můj tech stack“ je hrdým výčtem novinek. Tento pojednává o něčem jiném — o filozofii, která stojí za výběry cutty.dev: nudný a stabilní místo módního, evropský místo amerického, soukromý od základu a natolik jednoduchý, aby to zvládl udržet jeden člověk.
Framework: Astro (rendering na straně serveru)
cutty.dev je aplikace Astro s renderováním na straně serveru. Každý požadavek prochází serverem, dynamicky sestavuje stránku a vrací hotové HTML.
Proč: chtěl jsem server-side rendering bez těžkopádné infrastruktury, dobrou podporu mnoha jazyků přímo ve frameworku a rychlost bez overheadu. Astro to vše nabízí a kód zůstává přehledný – což u projektu vedeného solo stojí za víc než jakýkoli módní doplněk.
Databáze: SQLite
Jedna databáze, jeden soubor. Navíc vrstva dotazů přátelská k TypeScriptu, díky které změna struktury dat okamžitě odhalí chyby v kódu místo toho, aby se objevily až ve výrobě.
Proč: cutty.dev je především „read-heavy“ – každé kliknutí na odkaz znamená čtení a zvýšení počítadla. SQLite to zvládá skvěle i při velmi vysokém denním provozu. Záloha je prostě zkopírováním jednoho souboru – bez ceremonií replikace, bez složitých skriptů. Zde jednoduchost není úsporou na kvalitě; je to vědomé rozhodnutí, že méně pohyblivých součástí znamená méně věcí, které se mohou rozbít.
Hosting: server v Evropské unii
Vlastní server v EU, vlastní certifikát TLS, reverzní proxy s automatickým HTTPS, aplikace v kontejnerech.
Proč: to je základ toho, jak cutty.dev přistupuje k datům. Plná kontrola nad jejich umístěním (klíčové pro zákazníky v EU a pro GDPR), žádná závislost na jednom dodavateli, žádné automatické replikování do USA, které poskytují velké cloudové platformy, a předvídatelné náklady místo účtu závislého na objemu přenosu. Pohodlné západní platformy by umožnily rychlejší start — ale za cenu toho, kde fyzicky končí data vašich uživatelů.
Překlady: lokální model AI
cutty.dev mluví 25 jazyky a překlady provádí lokální, otevřený AI model spuštěný na naší vlastní infrastruktuře.
Proč: žádný text z rozhraní neopouští systém – neposíláme jej žádnému externímu poskytovateli AI. S tím je spojen nulový náklad za jednotlivé překlad a plná kontrola nad kvalitou: můžeme jej obnovovat kdykoliv chceme. Mechanický překlad vždy vyžaduje lidskou kontrolu – a každý jazyk takovou revizi prošel – ale provádění tohoto procesu uvnitř znamená, že soukromí není volbou v ceníku, ale vlastností architektury.
CSS: utility-first (Tailwind)
Jeden systém stylů, žádné CSS-in-JS, žádné samostatné soubory se styly. Vše přímo v šablonách.
Proč: rychlost iterace. Nemarním čas vymýšlením názvů tříd a nevyužité styly se stejně nedostanou do finální stránky. Konzistentní design vynucený samotným systémem. Pro jednu osobu se počítá každá minuta, kterou nevěnuji vedlejším věcem.
Nasazení: kontejnery
Aplikace v kontejnerech (Docker), nasazovaná opakovaně a přenositelným způsobem.
Proč: stejné prostředí lokálně i ve výrobě, žádné „u mě to fungovalo“ a možnost přenosu celého řešení na jiný server během půl hodiny, pokud by k tomu došlo potřeba. Přenositelnost je formou nezávislosti.
Co mě to naučilo
- Nudný stack vyhrává. Astro, SQLite, Tailwind, kontejnery — vše zralé, dobře zdokumentované, stabilní. Nic se nerozbije v nejméně očekávaný okamžik.
- Hosting v EU je připraven k produkci. Mýtus „musíte jít na velkou americkou cloudovou službu, aby to bylo vážné“ je právě tím — mýtem.
- Lokální AI je reálné. Nemusíte předávat svá data externímu API, abyste měli dobré překlady.
- Jedna osoba může vypustit věc, která vypadá jako produkt týmu. Čas je dražší zdroj než peníze, takže každé rozhodnutí zde chránilo právě čas.
Podívejte se živě. Otázky ohledně technického přístupu — hello@cutty.dev, odpovídám téhož dne.