versjon to
Da jeg dyttet versjon én av denne bloggen ut døra i sommer skrev jeg at neste steg var å gjøre "en fin blogg" om til "et ekte selvdrevet system". Versjon to var det steget, og nå er det ferdig, så her er hele greia i ett innlegg.
Bloggen fikk sitt eget postkontor. En liten e-posttjeneste eier nå alt som forlater siden som e-post, med en robust utboks så ingenting går tapt om SMTP har en dårlig dag. Det låste opp en haug med ting jeg hadde ønsket meg lenge: registrerings-e-poster med verifiseringslenker, kontaktskjema som lander i innboksen min, svar på de meldingene rett fra adminpanelet, og nå passordtilbakestilling. Glemmer du passordet finnes det endelig en "glemt passord?"-lenke. Lenka virker én gang, dør etter en time, og det å be om en røper ingenting om hvorvidt en e-postadresse har konto her, svaret ser helt likt ut uansett.
Alle feil, ett sted. Auth, blogg og e-post hadde hver sin feillogg, og adminvisningen måtte sy dem sammen i nettleseren. Nå samler en liten loggtjeneste alt. Hver tjeneste skriver fortsatt lokalt først og sender i bunker i bakgrunnen, så om loggtjenesten er nede går ingenting tapt, radene venter bare og går senere. Jeg stoppet den med vilje, kastet feil på siden, startet den igjen, og så alt komme fram nøyaktig én gang. Veldig tilfredsstillende.
Backuper som faktisk kjører. Database- og mediebackuper på timeplan, med gjenopprettingsknapper i adminpanelet og en helsesjekk som klager om en backup blir gammel. Jeg testet full gjenoppretting, inkludert tilfellet der en hel database manglet. Du vil ikke at den første gjenopprettingstesten skal være den ekte.
Push for å deploye. Merge til main bygger nå alt, kjører testene og ruller det levende nettstedet over av seg selv. Veien dit ble sin egen lille saga, første deploy feilet på en manglende vertsnøkkel, den andre på en manglende hemmelighet, og én tom variabel i produksjonsoppsettet viste seg å ha skrudd av alle e-postfunksjonene i det stille hele tiden. Den sved. Alt virker nå, og en deploy legger igjen et release notes-utkast i adminpanelet så jeg slutter å glemme hva som gikk ut.
Adminpanelet ble voksent. Det hadde blitt tretten flate menypunkter og tre ulike knappestiler etter et år med påbygging. Jeg bygde det om: gruppert navigasjon som kan foldes sammen, ett sett kontroller overalt, tabeller der sletteknappen faktisk ser farlig ut, og brukerhåndtering i én dialog i stedet for fem småting stappet inn i en tabellrad. Innstillingssiden snakker menneskelig nå i stedet for å vise rå konfignøkler.
Innlegg på tre språk, med hjelp. Bloggen har vært trespråklig siden i18n-arbeidet, men å holde en, no og es i takt for hånd er den delen som får folk til å gi opp. Nå er det en oversett-knapp i editoren som fyller ut det andre språket som et utkast jeg går over og retter før publisering. Den kjører aldri av seg selv og en sidevisning utløser den aldri, oversettelser skjer én gang, når jeg ber om det, og lagres. Personvernsiden sier nøyaktig hva som forlater serveren og når, for det betyr noe for meg.
Et fotogalleri. Jeg bor på en øy som ser slik ut og jeg går mye på tur, så bloggen er nå også en fotosamling. Masseopplasting, album, miniatyrbilder så ingen laster ned en original på 12 MB bare for å se et rutenett, og hvert bilde får sin egen side med bildetekst. Originalene kan fortsatt brukes i innlegg.
Serier og svar-e-poster. Innlegg kan høre til en ordnet serie med en "del 2 av 7"-boks og forrige/neste-lenker, som er det sjudelshistorien om byggingen av dette stedet alltid har villet være. Og om noen svarer på kommentaren din kan du få en e-post om det, én e-post selv om fem stykker kaster seg på, med en av-bryter i kontoinnstillingene. Foreløpig kommer de e-postene bare på engelsk, siden siden med vilje aldri lagrer hvilket språk kontoen din er. Det kommer jeg kanskje tilbake til.
Versjon én var meg som lærte å bygge en blogg. Versjon to var meg som lærte å drive en. Forskjellen viste seg å være større enn jeg trodde, og det meste av den er usynlig, noe jeg har bestemt meg for at er poenget. Neste: sannsynligvis et nyhetsbrev, kanskje føderasjon, definitivt flere bilder.