cutty.dev tehnoloogiastack — teadlikud valikud
Mis on cutty.dev all ja miks. Ilma evangeeliumi — filosoofia: igav, stabiilne stack, hosting ELis ja privaatsus on osa arhitektuurist, mida üks inimene suudab üle pidada.
Enamik artikleid "minu tech stack" on uhke nimekiri uudistest. See aga räägib millest teisest — filosoofiast, mis seisab cutty.dev valimiste taga: igav ja stabiilne eelistatuna trendika asemel, euroopalane asemel ameerikliku, algupärane privaatne ja piisavalt lihtne, et üks inimene saaks seda hallata.
Framework: Astro (server-side rendering)
cutty.dev on serveripoolne Astro rakendus. Iga päring läheb läbi serveri, koostab lehe dünaamiliselt ja vastab valmis HTML-iga.
Miks: tahtsin serveripoolset renderimist ilma raske masinastikuta, raamiistikku sisseehitatud head mitmekeelset tuetust ja kiirust ilma lisekoormata. Astro pakub kõike seda ning kood jääb loetavaks — mis on üksi projektis töötades väärtuslikum kui ükski trendikas lisaosa.
Andmebaas: SQLite
Üks andmebaas, üks fail. Lisaks on see TypeScripti-sõbralik päringute kiht, tänu millega muutub andmestiku struktuur koheselt koodis vigu näidates, rather than productionis.
Miks: cutty.dev on eelkõige "read-heavy" — iga lingile klõpsutamine on lugemine pluss loenduri suurendamine. SQLite teeb seda suurepäraselt, kuni väga suure liikumise taseni päevas. Varukoopia on lihtsalt ühe faili kopeerimine — ilma replikatsiooniprotsessideta, ilma keeruliste skriptideta. Lihtsus siin ei tähenda kvaliteedi säästmist; see on teadlik otsus, et vähem liikuv另 osi tähendab vähem asju, mis võivad rikki minna.
Hosting: server Euroopa Liidus
Eraldi server ELis, oma TLS-sertifikaat, tagasiproksi (reverse proxy) automaatse HTTPS-iga, rakendus konteinerites.
Miks: see on fundament sellele, kuidas cutty.dev andmetega käsitleb. Täieline kontroll nende asukoha üle (oluline ELi klientidele ja isikuandmete kaitse üldmääruse jaoks), sõltumatus üksikust tarnijast, puudumine automaatsele USA-sse replikeerimisele, mida pakuvad suured pilveplatvormid, ja ennustatav hind liikluse põhineva arve asemel. Mugavad lääne platvormid annaksid kiirema alguse — kuid maksina selle eest, kus teie kasutajate andmed füüsiliselt asuvad.
Tõlge: kohalik AI-mudel
cutty.dev räägib 25 keeles ning tõlked teeb kohalik, avatud AI-mudel, mis on käivitatud meie enda infrastruktuuril.
Miks: ükski tekstis olev tekst ei väljadu väljapoole — me ei säilita seda ühegi välise AI tarnija juures. Selle tulemusena on üksik tõlge tasuta ja kontroll kvaliteedi üle on täielik: saame neid uuendada millal soovime. Masinatõlge vajab alati inimlik kontrolli — ja iga keel on läbinud sellise kontrolli — kuid seda ise teha tähendab, et privaatsus ei ole hinnakirjas valik, vaid arhitektuuri omadus.
CSS: utility-first (Tailwind)
Üks stiilisüsteem, ilma CSS-in-JS-ita, ilma eraldi stiilifailideta. Kõik otse šablonidest.
Sebab: iteratsiooni kiirus. Ma ei raasta aega klasside nimede mõttlemisega ning kasutamata jäävad stiilid ei jõua siiski lõplikule lehele. Süsteemi enda poolt sunditud ühtne disain. Ühe inimese jaoks loeb iga minut, mida ma ei kuluta kõrvalasjadega.
Rakendamine: konteinerid
Konteinerite rakendus (Docker), mis on rakendatav korduvatel ja ülekandatelavatel viisil.
Miks: sama keskkond kohalikult ja productionis, puudub "minul töötas", ning võimalus üle kolida kogu süsteem poolide sekundis teisele serverile, kui vajadus tekib. Ülekantavus on iseseisvuse vorm.
Mida see mind õpetas
- Igav bükk võidab. Astro, SQLite, Tailwind, konteinerid — kõik on küpseid, hästi dokumenteeritud ja stabiilseid. Midagi ei purdu kõige ootamatamat hetkel.
- Hosting ELis on tootmise valmis. Müüt "pead minema suure Ameerika pilve, et olla tõsine" on just see — müüt.
- Kohalik AI on reaalne. Ei ole vaja anda oma andmeid välisele API-le, et saada häid tõlkeid.
- Üks inim saab välja anda asja, mis näeb välja nagu meeskonna produkt. Aeg on ressurss, mis on rahalt kallim, nii et iga valik siin säästis just aega.
Vaata liveist. Küsimused tehnilise lähenemise kohta — hello@cutty.dev, vastan samal päeval.