cutty.dev teknologiapino — tietoiset valinnat
Mitä cutty.dev:n alla on ja miksi. Ilman evangelismia — filosofia: tylsä, vakaa stack, isännöinti EU:ssa ja tietosuoja sisäänrakennettuna arkkitehtuuriin, jota yksi henkilö pystyy ylläpitämään.
Useimmat "oma teknologiapinoni" -postaukset ovat ylpeitä listauksia uutuuksista. Katso, minulla on tämä, minulla on tuo, ja tässä on vielä viime viikolta tullut aivan tuore kirjasto. Tämä on erilainen.
Totuus on se, että kun johdat projektia yksin, et etsi trendikkäintä. Etsit jotain, mikä ei herätä sinua kolmelta yöllä. Ja juuri siitä koko cutty.dev-teknologiapino on kyse: tylsä trendikkään sijaan, eurooppalainen amerikkalaisen sijaan, yksityinen perusasioista alkaen, ja niin yksinkertainen, että yksi pari käsiä pystyy hallitsemaan sen.
Käyn läpi asiat järjestyksessä, aivan kuin selittäisin ne sinulle kahvin äärellä.
Palvelimella renderöity Astro (ja miksi ei mitään "hienompaa")
cutty.dev on Astro-pohjainen palvelinpuolen renderöinnillä (SSR). Jokainen pyyntö kulkee palvelimen läpi, koostaa sivun ja palauttaa valmiin HTML:n. Tylsää? Juuri siitä se on kyse.
Halusin kolme asiaa: palvelinpuoleisen renderöinnin ilman raskasta koneistoa, kunnon monikielituen heti käyttövalmiina ja nopeutta ilman ylimääräistä kuormaa. Astro tarjoaa kaiken tämän, ja koodi pysyy luettavana. Kun palaan siihen kahden kuukauden tauon jälkeen, tiedän mitä siellä tapahtuu. Yksin työskennellessä tämä on arvokkaampaa kuin mikään trendikäs lisäosa, jota kukaan ei enää tue vuoden kuluttua.
Yksi tiedosto sijaan tulitetun tietokannan
SQLite. Yksi tietokanta, yksi tiedosto levyllä. Lisäksi kyselykerros, joka keskustelee TypeScriptin kanssa, joten jos muutan tietorakenteen, virhe ilmestyy editoriin eikä tuotantoon puoliyöllä.
Miksi juuri tämä? cutty on "read-heavy". Joku klikkaa lyhennettyä linkkiä, me teemme lukuoperaation ja nostamme laskuria. Siinä kaikki. SQLite hoitaa tällaisen liikenteen helposti, jopa todella suuriin päivittäisiin määriin asti. Entä varmuuskopio? Kopioit tiedoston. Loppu. Ilman replikoinnin monimutkaisuutta, ilman skriptejä, joiden toimintaa kukaan ei muista.
Tässä on yksi asia, johon kannattaa varoa, sillä se on yleinen sudenkuoppa: ihmiset kuulevat "SQLite" ja ajattelevat "lelu kurssiprojektia varten". Ei pidä paikkansa. Mitä vähemmän liikkuvia osia, sitä vähemmän asioita, jotka voivat hajota. Tämä ei ole laadusta säästämistä, vaan tietoinen päätös.
Palvelin sijaitsee Euroopassa, eikä se ole sattumaa
Omistettu palvelin EU:ssa. Oma TLS, käänteinen välityspalvelin (reverse proxy) automaattisella HTTPS:llä, sovellus konttimuodossa.
Tämä on perusta sille, miten cutty käsittelee tietoja. Tiedän tarkalleen, missä ne fyysisesti sijaitsevat (EU-asiakkaiden ja GDPR:n kohdalla tämä ei ole mielenkiintoinen yksityiskohta, vaan edellytys), en ole sidottu yhteen toimittajaan, mikään ei vuoda automaattisesti valtameren taakse, ja laskut ovat ennustettavia sen sijaan, että ne hyppisivät liikenteen mukana.
Kyllä, helpot länsimaiset alustat antaisivat nopeamman alun. Klikkaat, deploy, toimii. Vain se, että maksat siitä sillä, mihin käyttäjiesi tiedot päätyvät. Minulle se oli huono diili.
Käännökset tekee oma malli, itsellään
cutty puhuu 25 kieltä. Sen kääntää paikallinen, avoin AI-malli, joka toimii infrastruktuurillani. En lähetä tekstiä käyttöliittymästä millekään ulkoiselle palveluntarjoajalle.
Hyödyt ovat käytännöllisiä. Yksittäinen käännös maksaa nolla. Minulla on täysi kontrolli laatuun ja voin päivittää niitä milloin haluan. Ja kone tarvitsee aina ihmisen silmää, joten jokainen näistä 25 kielestä on tarkistettu. Mutta se tosiasia, että teen tämän itse, tarkoittaa, ettei yksityisyys ole erikseen hinnoiteltu kohta. Se on ominaisuus siinä, miten kokonaisuus on rakennettu.
Tailwind, säiliöt ja muut pienemmät päätökset
Tyyli? Utility-first, eli Tailwind. Ei CSS-in-JS:ää, ei erillisiä tyylitiedostoja, kaikki suoraan pohjamalleissa. En tuhlaa aikaa luomaan luokkanimiä, käyttämättömät tyylit eivät kuitenkaan päädy lopulliselle sivulle, ja design pysyy kasassa, koska järjestelmä itse pakottaa siihen. Yhdelle ihmiselle jokainen minuutti, jota ei tuhlata turhuuksiin, merkitsee.
Tämä on Docker. Sama ympäristö paikallisesti ja tuotannossa, loppu "toimii minun koneellani" -ongelmille. Ja jos joskus tarvitsee, siirrän kaiken toiselle palvelimelle noin puolessa tunnissa. Siirrettävyys on hiljainen muoto itsenäisyydestä.
Mitä opin tästä
tylsä pino voittaa. Astro, SQLite, Tailwind, kontit. Kaikki on kypsää, testattua ja dokumentoitua. Mikään ei hajoa silloin, kun sitä vähiten tarvitset.
EU-hosting on tuotantovalmis, todella. Satu siitä, että "sinun täytyy siirtyä suureen amerikkalaiseen pilveen, jos haluat olla vakavasti otettava", on vain satu. Paikallinen AI on myös mahdollista, eikä tietoja tarvitse antaa ulkoiselle API:lle saadakseen kunnollisia käännöksiä. Ja viimeiseksi: yksi henkilö voi julkaista jotain, joka näyttää koko tiimin työltä. On vain muistettava, että aika on rahaa kalliimpaa, ja valita jokainen palanen tämän näkökulman mukaisesti.
Kun rakennat jotain omaa, kysy itseltäsi jokaisen teknologian kohdalla yksi kysymys: pystynkö ylläpitämään sitä itse vuoden kuluttua? Jos et, sinulla on luultavasti vastaus.
Kaikki toimii tässä: cutty.dev. Ja jos haluat keskustella jostakin näistä päätöksistä, kirjoita osoitteeseen [email protected], vastaan samana päivänä.