Átjuks a tartalomhoz
cutty.dev
All posts

A cutty.dev technológiai stack — tudatos választások

Mi van a cutty.dev alatt és miért? Evangélium nélkül — filozófia: unalmas, stabil stack, hosting az EU-ban és az architektába beépített adatvédelem, amelyet egyetlen ember is képes fenntartani.

A legtöbb „my tech stack” bejegyzés a legújabb technológiák büszke listája. Nézd csak, ez megvan, az is megvan, és itt egy teljesen friss könyvtár a múlt hetről. Ez más lesz.

Az igazság az, hogy amikor egy projektet egyedül vezetsz, nem a legdivatosabb megoldást keresed. Olyan dolgot keresel, ami nem ébreszt fel éjjel háromkor. És pont erről szól az egész cutty.dev technológiai stack: unalmas a divatos helyett, európai az amerikai helyett, alapoktól kezdve privát, és elég egyszerű ahhoz, hogy egyetlen pár kéz is kezelje.

Sorrendben megyek keresztül, mintha kávé mellett magyaráznám neked.

Szerveroldali renderelésű Astro (és miért nem valami „ennél szebb”)

cutty.dev egy Astro, szerveroldali rendereléssel. Minden kérés keresztülmegy a szerveren, összeállítja az oldalt, és visszaküldi a kész HTML-t. Unalmas? Pont ez a lényeg.

Három dolgot akartam: szerveroldali renderelést nehéz gépezék nélkül, azonnali, megfelelő többnyelvű támogatást, és sebességet extra terhelés nélkül. Az Astro mindent nyújt, a kód pedig olvasható marad. Amikor két hónapos szünet után visszatérek hozzá, pontosan tudom, mi történik ott. Egy egyéni projektnél ez többet ér, mint bármelyik divatos kiegészítő, amit egy év után már senki sem támogat.

Egyetlen fájl a tűzijáték-adatbázis helyett

SQLite. Egy adatbázis, egy fájl a meghajtón. Ehhez tartozik egy lekérdezési réteg, amely kommunikál a TypeScripttel, így ha megváltoztatom az adatszerkezetet, a hiba az editorban jelenik meg, nem pedig éjfélkor a produkcióban.

Miért pont ez? a cutty "read-heavy". Valaki rákattint egy rövidített linkre, mi elvégezzük az olvasást és növeljük a számlálót. Ennyi. Az SQLite bátran kezel ilyen forgalmat, akár igazán nagy napi számokig is. És a backup? Másold ki a fájlt. Ennyi. Replikációs ceremóniák nélkül, olyan szkriptek nélkül, amikről senki sem emlékszik, hogyan működnek.

Itt vigyázz egy dologra, mert ez gyakori csapda: az emberek hallják a „SQLite”-ot, és azt gondolják, hogy „egy kis játék a vizsgához”. Ez nem igaz. Kevesebb mozgó alkatrész azt jelenti, hogy kevesebb dolog, ami összeomolhat. Ez nem a minőség kárbantartása, hanem tudatos döntés.

A szerver Európában található, és ez nem véletlen

Dédiált szerver az EU-ban. Saját TLS, reverse proxy automatikus HTTPS-sel, alkalmazás konténerekben.

Ez az alapja annak, ahogyan a cutty kezeli az adatokat. Pontosan tudom, hol tárolódnak fizikailag (az EU-s és GDPR-al terhelt ügyfelek esetében ez nem csak érdekes információ, hanem feltétel), nem vagyok egyetlen szolgáltatóhoz kötve, semmi sem szivárog automatikusan át az óceánon, a számlázás pedig kiszámítható, ahelyett, hogy ingadozna az árakkal együtt.

Igen, a nyugati kényelmes platformok gyorsabb indítást biztosítanának. Kattintasz, deploy, működik. Csak azért fizetsz érte, hogy ott landoljanak a felhasználóid adatai. Nekem ez rossz üzlet volt.

Fordítások készít saját modellt, saját maga által

cutty 25 nyelven beszél. Ezt egy helyi, nyílt forráskódú AI modell fordítja, amely az én infrastruktúrámon fut. Nem küldöm a felületről származó szöveget semmilyen külső szolgáltatónak.

Az előnyök gyakorlatiak. Az egyedi fordítás ingyen van. Teljes kontrollom van a minőség felett, és bármikor frissíthetem őket, amikor csak szeretném. És az gépnek is mindig kell az emberi szem, így mind a 25 nyelv átment a ellenőrzésen. De az a tény, hogy saját magamnál végzem, azt jelenti, hogy az adatvédelem nem egy tétel az árlistában. Ez az egész felépítésének tulajdonsága.

Tailwind, konténerek és néhány kisebb döntés

Stílus? Utility-first, azaz Tailwind. CSS-in-JS nélkül, külön stílusfájlok nélkül, minden közvetlenül a sablonokban. Nem pazarolom az időt osztálynevek találgatására, a nem használt stílusok pedig úgyis nem kerülnek be a végső oldalba, a design pedig összeáll, mert maga a rendszer kényszeríti azt. Egyetlen ember számára is számít minden egyes perc, amit nem pazarolunk apróságokra.

Ez a Docker bevezetése. Ugyanaz a környezet helyileg és a termékverzióban, vége a "nálam működött" dilemmának. És ha valaha szükség lenne, az egészet át tudom költöztetni egy másik szerverre körülbelül fél óra alatt. A hordozhatóság a függetlenség néma formája.

Mit tanultam ebből

A unalmas stack nyer. Astro, SQLite, Tailwind, konténerek. Minden érett, bepróbált, dokumentált. Semmi nem omlik össze akkor, amikor a legkevésbé szükséged van rá.

Az EU-s hosting valódi termékgyártásra kész. A „szükséges az amerikai felhő, hogy komoly legyen” mítosz csak egy mítosz. A helyi AI is valóságos, nem kell átadni az adatokat egy külső API-nak, hogy decent fordításokat kapjunk. És az utolsó dolog: egyetlen ember is kiadhat valamit, ami úgy néz ki, mintha egy egész csapat munkája lenne. Csak azt kell megjegyezni, hogy az idő drágább, mint a pénz, és ezen az alapon kell minden elemet kiválasztani.

Amikor valami sajátot építesz, tegyél fel magadnak egy kérdést minden technológiánál: fogom-e tudni egy év múlva egyedül fenntartani? Ha nem, akkor valószínűleg megvan a válasz.

Minden itt működik: cutty.dev. És ha szeretnél beszélni valamelyik erről a döntésről, írj az [email protected] címre, ugyanazon a napon válaszolok.