I går aftes og i morges byggede jeg to små stykker software, jeg har manglet længe: En RSS-læser, der kører i min egen terminal, gemmer alt lokalt og ikke spørger nogen om lov. To åbne projekter, og tilsammen er de mindre, end de fleste ville tro.
Hvad det er
Det første er et plugin til skallen Nushell, nu_plugin_feeds. Det tager rå RSS- og Atom-XML og forvandler det til strukturerede data, altså en rigtig tabel med titler, links, datoer og kategorier, som man kan sortere og filtrere ligesom alt andet. Det er skrevet i Rust oven på et par velafprøvede biblioteker, og en release-bygning tager under et sekund.
Oven på det ligger feeds, et lille Nushell-modul, der gemmer mine abonnementer og artikler i en enkelt SQLite-fil. Jeg kan tilføje en kilde, hente alle feeds parallelt, læse de ulæste, åbne dem i browseren og markere dem læst. Hele brugen er nogle få kommandoer:
feeds add https://hnrss.org/frontpage # abonnér på et feed
feeds sync # hent alt, gem nye poster
feeds items --unread # vis kun de ulæste
Det virker offline, det er hurtigt, og hele tilstanden ligger i én fil, jeg selv ejer.
Hvorfor det rager andre end mig
Det her handler ikke om nostalgi for et gammelt format. Det handler om, hvem der bestemmer, hvad du ser.
For ti år siden valgte du selv dine kilder. I dag vælger en algoritme dem for dig, og den er ikke bygget til at oplyse dig. Den er bygget til at holde dig på platformen. Et RSS-feed er en kedelig, gennemsigtig rørledning: Du bestemmer, hvad der kommer ind, og i hvilken rækkefølge, og ingen sælger din opmærksomhed videre undervejs.
Forbindelsen til AI
Læg mærke til, hvad det strukturerede output gør muligt. Når en nyhed kommer ind som en ren tabel frem for rodet HTML, kan jeg gøre hvad som helst med den: Filtrere den, gruppere den, eller sende den videre til en sprogmodel, der koger dagens vigtigste ned til tre linjer. Den kedelige, ejede rørledning er præcis det fundament, et AI-lag bør sidde oven på.
Det er den samme pointe, jeg har skrevet om hele ugen. Du ejer røret, og du lejer motoren. Den deterministiske skal omkring modellen er det, der overlever ethvert leverandørskifte, og det er den del, der reelt er din. En RSS-læser er bare et meget lille, meget konkret eksempel på princippet.
Det skræddersyede er blevet billigt
Det mest interessante er måske, hvor lidt det krævede. To projekter, en aften og en formiddag, og pluginet bygger på under et sekund. For få år siden ville "byg din egen feed-læser med struktureret output og lokal database" have været et lille udviklingsprojekt. Nu er det en hyggeaften. Moderne værktøj har kollapset prisen på det skræddersyede, og det er samme bevægelse, jeg beskrev, da jeg byggede mit eget CRM i Verdens bedste CRM er mit.
Du skal ikke bygge en RSS-læser. Pointen er, at de værktøjer, der passer præcis til dig og kører på dit eget jern, ikke længere er forbeholdt dem med en udviklingsafdeling. Og i en tid, hvor adgangen til de store systemer bliver rationeret og styret udefra, som jeg skrev i De deler AI op i et A-hold og et B-hold, er det værd at huske, at det meste af det, der betyder noget i din hverdag, stadig er noget, du selv kan eje.
Begge projekter ligger åbent på GitHub: nu_plugin_feeds og feeds.