Prejsť k obsahu
cutty.dev
All posts

Technologický stack cutty.dev — uvedomelé voľby

Čo je pod čelom cutty.dev a prečo. Bez evangelizmu — filozofia: nudný, stabilný stack, hosting v EÚ a súkromie zapísané v architektúre, ktorú je schopná udržiavať jedna osoba.

Väčšina článkov „môj tech stack“ je hrdý zoznam noviniek. Tento je o niečom inom — o filozofii, ktorá stojí za voľbami cutty.dev: nudný a stabilný namiesto módneho, európsky namiesto amerického, privátny zo základu, a dostatočne jednoduchý na to, aby ho mohla udržiavať jedna osoba.

Framework: Astro (server-side rendering)

cutty.dev je aplikácia Astro renderovaná na strane servera. Každý запрос ide cez server, skladá stránku dynamicky a odpovedá hotovým HTML.

Prečo: chcel som server-side rendering bez ťažkej mechanizácie, dobrú podporu viacerých jazykov zabudovanú priamo v rámci frameworku a rýchlosť bez zbytočnej režii. Astro to všetko ponúka a kód zostáva čitateľný — čo je pri projekte vedenom solo cenné viac než akýkoľvek módny doplnok.

Databáza: SQLite

Jedna databáza, jeden súbor. K tomu vrstva dotazov priateľská pre TypeScript, vďaka ktorej zmena štruktúry údajov okamžite ukáže chyby v kóde namiesto toho v produkcii.

Prečo: cutty.dev je predovšetkým "read-heavy" — každé kliknutie na odkaz je čítanie plus zvýšenie počítadla. SQLite to robí vynikajúco, až do veľmi veľkej dennej návštevnosti. Záloha je jednoducho skopírovaním jedného súboru — bez rituálov replikácie, bez zložitých skriptov. Jednoduchosť tu nie je úspora na kvalite; je to uvedomelé rozhodnutie, že menej pohyblivých častí znamená menej vecí, ktoré sa môžu pokaziť.

Hosting: server v Európskej únii

Dedikovaný server v EÚ, vlastný certifikát TLS, reverse proxy s automatickým HTTPS, aplikácia v kontajneroch.

Prečo: to je základ toho, ako cutty.dev nakladá s údajmi. Plná kontrola nad ich lokalizáciou (kľúčové pre klientov v EÚ a pre GDPR), nezávislosť od jedného poskytovateľa, absencia automatickej replikácie do USA, ktorú ponúkajú veľké cloudové platformy, a predvídateľné náklady namiesto faktúry závislej od prevádzky. Pohodlné západné platformy by umožnili rýchlejší štart — ale za cenu toho, kde fyzicky končia údaje vašich používateľov.

Preklady: lokálny model AI

cutty.dev hovorí 25 jazykami a preklady vykonáva lokálny, otvorený model AI spustený na našej vlastnej infraštruktúre.

Prečo: žiadny text z rozhrania neuniká von — neposielame ho žiadnemu externému poskytovateľovi AI. Výsledkom je nulový náklad za pojedinečný preklad a plná kontrola nad kvalitou: môžeme ich obnovovať, kedy chceme. Strojný preklad vždy vyžaduje ľudskú kontrolu — a každý jazyk taký revíziu prošiel — ale robiť to u seba znamená, že súkromie nie je možnosťou v cenníku, ale vlastnosťou architektúry.

CSS: utility-first (Tailwind)

Jeden systém štýlov, bez CSS-in-JS, bez samostatných súborov štýlov. Všetko priamo v šablónach.

Prečo: rýchlosť iterácie. Nestrácam čas vymýšľaním názvov tried, a nevyužité štýly tak či tak nekončia na finálnej stránke. Jednotný dizajn vynútený samotným systémom. Pre jednu osobu ide o každú minútu, ktorú netrávim vedľajšími vecami.

Nasadenie: kontejnery

Aplikácia v kontajneroch (Docker), nasadená opakovateľným, prenosným spôsobom.

Prečo: rovnaké prostredie lokálne aj na produkcii, žiadne "u mňa fungovalo", a možnosť presunúť celok na iný server za pol hodiny, ak by to bolo potrebné. Prenositeľnosť je forma nezávislosti.

Čo ma to naučilo

  • Nudný stack vyhráva. Astro, SQLite, Tailwind, kontejnery — všetko je vyspelé, dobre zdokumentované, stabilné. Nič nepraskne v najmenej očakávanom momente.
  • Hosting v EÚ je pripravený na produkciu. Mýtus „musíš ísť do veľkého amerického cloudu, aby to bolo vážne“ je práve tým — mýtom.
  • Lokálna AI je realná. Nemusíte odovzdávať svoje údaje externému API, aby ste mali dobré preklady.
  • Jedna osoba môže vypustiť niečo, čo vyzerá ako produkt tímu. Čas je zdroj, ktorý je drahší ako peniaze, takže každé rozhodnutie tu práve šetrilo čas.

Pozrieť naživo. Otázky ohľadom technického prístupu — hello@cutty.dev, odpovedám v ten istý deň.