Sisu juurde
cutty.dev
All posts

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 üllä pidada.

Enamik postitusi "minu tech stack" on uhke nimekiri uuendustest. Vaata, mul on see, mul on see, ja siin on veel eelmisel nädalal ilmunud värske raamatukogu. See on teist must.

Sest tõde on see, et kui juhtid projekti üksi, siis ei otsi sa kõige trendikamat. Otsid midagi, mis ei ärataks sind ööl kell kolm. Ja just sellest koosneb kogu see tehnoloogiline stakk cutty.dev: igav asem elu, Euroopa asem Ameerika, privaatne alates fundamentidest ja piisavalt lihtne, et seda üks paar käsi hakkama saaks.

Lennan järjekorras, nagu ma seda sulle kohvi juures selgitaks.

Serveris renderitud Astro (ja miks mitte midagi "vapemast")

cutty.dev on Astro serveripoolse renderiga. Iga päring läheb läbi serveri, koostab lehe ja tagastab valmis HTML-i. Igav? Just nii see peaks ka olema.

Soosin kolme asja: serveripõhine renderimine ilma rasket masinastikuta, korralik kohene mitmekeeleline tugi ja kiirus ilma lisakoormata. Astro pakub kõike seda, samas kui kood jääb loetavaks. Kui naudan sinna pärast kahekuusist pausi, siis tean, mis seal toimub. Üksind projekte juures on see väärt rohkem kui ükski trendikas lisand, mida pärast üks aastat keegi enam ei toeta.

Üks fail asemel ilutulituste andmebaasi eest

SQLite. Üks andmebaas, üks fail kettal. Lisaks künekuskiht, mis räägib TypeScriptiga, nii et kui ma muutan andmestruktuuri, ilmub viga mulle editoris, mitte tootmiskeskkonnas kesküö kell.

Miks just see? cutty on "read-heavy". Keegi klõpsutab lühendatud linki, me teeme loetmise ja tõstame loendit. Selline. SQLite talub sellist liikumist rahulikult, kuni väga suurte arvudeni päevas. A backup? Kopeerid faili. Lõpp. Ilma replikatsiooniprotsentide, ilma skriptideta, kelle toimimist keegi ei mäleta.

Siin ole üks asi, mille suhtes tuleb olla ettevaatlik, sest see on tavaline lõks: inimesed kuulavad "SQLite" ja mõtlevad "mänguasi projekti läbimiseks". See ei ole tõsi. Vähem liikuvaid osi tähendab vähem asju, mis võivad puruneda. See ei ole kvaliteedil säästmine, vaid teadlik otsus.

Server asub Euroopas ja see pole juhus

Eraldis server ELis. Oma TLS, tagasiproksi automaatse HTTPS-iga, rakendus konteinerites.

See on alus sellele, kuidas cutty andmetega käitub. Tean täpselt, kus need füüsiliselt asuvad (EU ja GDPR klientide puhul ei ole see lihtsalt huvitav detail, vaid tingimus), ma ei ole seotud ühe pakujaga, midagi ei lekitu automaatselt üle ookeani ning arvete tõus on ennustatav, statt et need koos liikumisega hüppaksid.

Jah, mugavad platvormid Lõuna-Lõuna-Läänest annaksid kiirema alguse. Klõpsutad, deploy, toimib. Ainult seda, et selle eest maksad sellega, kuhu kuuluvad sinu kasutajate andmed. Minu jaoks oli see halb tedeal.

Tõlked teeb oma mudel, enda juures

cutty räägib 25 keeles. Seda tõlkib kohalik, avatud AI-mudel, mis sõidab minu infrastruktuuril. Ma ei säli interface'ist tekstist ühelegi välisele tarnijale.

Eelned on praktilised. Üksik tõlge maksab nulli. Mul on täielik kontroll kvaliteedi üle ja saan neid soovmis hetkel värskendada. Ja masinal on alati vaja inimlikku silma, nii et iga üks neist 25 keele on läbinud kontrolli. Kuid fakt, et teen seda ise, tähendab, et privaatsus ei ole hinnakirjas asuv rida. See on omadus sellele, kuidas tervik on ehitatud.

Tailwind, konteinerid ja mõned väiksemad otsused

Style? Utility-first, ehk Tailwind. Ilma CSS-in-JS ilma, ilma eraldi stiilifailideta, kõik otse šablonites. Ma ei raasta aega klasside nimede leiamisele, kasutamata stiile ei jõu anyway lõpplehele, ja disain on terviklik, sest süsteem seda sundib. Ühe inimese jaoks loeb iga minut, mida ei kulutata trivialidades.

Implementatsioon on Docker. Sama keskkond kohalikult ja tootmes, lõpp "minul töötas" ajaga. Ja kui kunagi vajaduks, liigutan kogu asja teisele serverile umbes poolte tunnis. Ülekanduvus on vaikne iseseisvuse vorm.

Mida ma sellest õppisin

Boring stack võidab. Astro, SQLite, Tailwind, konteinerid. Kõik on küpse, testitud ja kirjeldatud. Mitte midagi ei purune hetkel, mil seda kõige vähem vajad.

Hosting ELis on tõel see, et on valmis tootmise jaoks. Lugu sellest, et "pead minema suurscale Ameerika pilve, et see oleks tõsisem", on lihtsalt lugu. Kohalik AI on samuti reaalne; ei ole vaja anda andmeid välisele API-le, et saada korralikke tõlkeid. Ja viimane asi: üks isik võib välja laskeda midagi, mis näeb välja nagu kogu meeskonna töö. Peab vaid mäletama, et aeg on kallim kui raha, ja seda aspekti silmas pideldes iga osa valima.

Kui ehitad midagi oma, küsi iga tehnoloogia puhul endalt üks küsimus: kas aasta pärast oskan seda ise üle pidada? Kui mitte, siis sul on vist vastus.

Kõik toimub siin: cutty.dev. Ja kui soovid mõne neist otsustest rääkida, kirjuta aadressile [email protected], vastan samal päeval.