Kul och inte sÄ lite speciellt att snacka med Farzad Farzaneh i P4 Stockholm om sl-map.gunnar.se och biljettkoll.se
Kul och inte sÄ lite speciellt att snacka med Farzad Farzaneh i P4 Stockholm om sl-map.gunnar.se och biljettkoll.se
Links break. It’s one of the sad facts of the web â a blog post you linked to five years ago might just be gone today. The domain expired, the server was shut down, or the page was quietly removed. This is called link rot, and studies suggest that over 25% of all web links eventually stop working.
I built Wayback Link Preserver to do something about it, specifically for Micro.blog.
The plugin scans the external links in your blog posts and checks if they’re still alive. For broken links, it looks up the Internet Archive Wayback Machine for an archived copy. If one exists, a small green “View archived copy” badge appears next to the link, giving your readers a one-click fallback to the content you originally linked to.
Working links are left completely untouched. No icons, no styling, nothing changes.
When a reader visits one of your posts, two things happen:
Results are cached in the reader’s browser, so repeat visits don’t trigger any new requests.
The whole thing runs client-side â no server needed, no database, no background jobs. It’s just JavaScript that gets injected via the Micro.blog plugin system.
Since the plugin runs in the browser, it can only detect server-level failures: domains that no longer exist, servers that are offline, connections that time out. It cannot detect a 404 page on an otherwise working server â the server still responds, but with an error page. Detecting that would require a server-side component, which Micro.blog’s plugin architecture doesn’t support.
Automattic and the Internet Archive recently released a Wayback Machine Link Fixer for WordPress. It’s a great plugin with server-side link checking, background jobs, and proactive archiving. I wanted something similar for Micro.blog, adapted to the constraints of a static site.
The plugin is open source and available on GitHub: wayback-link-preserver
You can install it from the Micro.blog plugin directory, or add it manually via Design â Edit Custom Themes â New Plug-in.
If you care about your links surviving the years, give it a try.
Jan Gradvall har med biljettkoll.se pÄ sin lista i DI Weekend. Roligt att höra hur fler och fler hittar biljetter till utsÄlda förestÀllningar.
Uppdaterar nu sidan med mina projekt: gunnar.se/mina-proj…
Tack för all kÀrlek under kvÀllen, har varit otroligt. KvÀllens kodrunda för sl-map.gunnar.se blev följande uppdateringar:
Gjorde en grej. En sida som live visar hur tunnelbanetÄgen och bussarna i Stockholm rör sig. Mindfulness. sl-map.gunnar.se

För precis ett Ă„r sen ville jag se hyllade förestĂ€llningen Arv pĂ„ Dramaten. Ă tta timmar av magisk teater. Men tiden var knapp, det var inte mĂ„nga veckor kvar innan den skulle tas ner frĂ„n repertoaren. Jag satte upp en bevakning via en webbtjĂ€nst som skickade SMS nĂ€r bokningssidan Ă€ndrades och ordet âslutsĂ„ldâ försvann. Jag sĂ„g Arv tvĂ„ gĂ„nger.
Det fröet lÄg kvar.
Den 30 januari installerade jag Claude Code i terminalen och pekade den mot en tom mapp pÄ datorn. Jag har jobbat med webb sedan 1995, som redaktör, produktÀgare, konceptutvecklare, men aldrig skrivit kod. Jag Àr nybörjare pÄ det hÀr, bÄde pÄ att utveckla och pÄ att ta hjÀlp av AI för att göra det. Men jag ville testa att bygga nÄgot pÄ riktigt. Som en webbsnickare som fÄr hjÀlp med bygget.
Hemma hade jag en Raspberry Pi 4, julklapp frÄn barnen. Stod i bokhyllan. Jag frÄgade Claude om den kunde installera det som behövdes dÀr.
Det gick bra.
UngefÀr min första frÄga. Ingen spec, ingen wireframe.
Claude utforskade dramaten.se, hittade att förestÀllningsdata lÄg inbÀddad i sidans HTML, och frÄgade om jag ville spara det i en databas. Ja. Om jag ville kunna bevaka förestÀllningar. Ja. SÄ rullade det vidare.
âJag vill skicka notiser via mejl nĂ€r det finns biljetter, kan du kolla vilka tjĂ€nster som Ă€r bra för det?â Claude kom tillbaka med alternativ och rekommenderade Resend â gratis, enkelt API. Jag sa kör.
âKan du göra en tillgĂ€nglighetsgranskning?â Claude körde en, hittade problem, Ă„tgĂ€rdade.
âĂr vi artiga mot deras servrar nĂ€r vi skrapar?â Claude la in pauser mellan anropen.
SÄ gick det till. Jag vet vad jag behöver frÄga om. Claude vet hur man bygger det.
Vid kvÀllen hade jag en fungerande webbapp. Skrapning, inloggning, bevakning, mejlnotiser. PÄ julklappen i bokhyllan.
Dag tvĂ„: SMS-notiser. Changelog. VĂ€lkomstguide. Jag bestĂ€mde att man loggar in innan man bevakar â fĂ€rre felstavade mejladresser.
Dag tre: fler teatrar. Kulturhuset Stadsteatern visade sig köra Tixly som biljettsystem. Liksom Uppsala, Scala, Malmö, Helsingborg, BorÄs och Göteborg. Sju av Ätta teatrar, samma system. En dag, Ätta teatrar.
Dag fyra: flytt frĂ„n Raspberry Pi till en riktig server. Egen domĂ€n â biljettkoll.se. Google-inloggning. Och stĂ€dning â 1 500 rader kopierad kod ersatt med gemensamma moduler. Varje skraper hade byggts som en kopia under de snabba dagarna. Jag sa att det behövde göras om.
I takt med att projektet vÀxte föreslog Claude att vi skulle ta fram en plan innan vi började bygga. Dag ett hade allt vuxit fram organiskt. Men Ätta teatrar och en refaktorering behövde struktur. Jag gick pÄ det.
Under helgen fick nÄgra vÀnner testa och komma med förslag pÄ förbÀttringar. OvÀrderlig hjÀlp som alltid.
Det gick inte alltid smidigt. Claude föreslog vid ett tillfĂ€lle att jag borde optimera för Google med köplĂ€nkar sĂ„ att folk kunde hitta biljetter via min sajt. DĂ„ satte jag ner foten. Det hĂ€r ska aldrig vara ett stĂ€lle att köpa biljetter pĂ„. Det ska bara vara till för att upptĂ€cka förestĂ€llningar som byter status. DĂ„ fick jag ett ödmjukt âförlĂ„t, du har rĂ€tt, jag ska aldrigâŠâ tillbaka.
Den typen av grÀnsdragningar hamnade i en fil som heter CLAUDE.md i roten av projektet. Claude lÀser den varje gÄng den börjar jobba. DÀr har Claude noterat mina krav: följ Web Sustainability Guidelines, var artig mot teatrarnas servrar nÀr vi skrapar, alla textelement ska fungera i mörkt lÀge med tillrÀcklig kontrast.
Det Àr i grunden min erfarenhet, fast nedskriven sÄ att Claude följer den varje gÄng.
Feber skrev om biljettkoll.se TjÀnsten var fyra dagar gammal och domÀnen en dag. En ironisk sak jag tÀnkt pÄ Àr att jag har byggt ett verktyg som gör det svÄrare för mig sjÀlv att fÄ tag i biljetter, men lÀttare för alla.
Det Àr inte magi och det Àr inte kodning. Man behöver veta vad man vill bygga och varför. Man behöver kunna ge tydlig feedback pÄ resultatet. Jag bestÀmmer vart vi ska, Claude bygger vÀgen dit.
Jag snickrar redan pĂ„ nĂ€sta idĂ©, inspirerad av Johan Hallberg, âman borde köra en MVP* i veckanâ. DomĂ€nen Ă€r ledig. Byggstarten har börjat.
* MVP = bygg den enklaste versionen av din produkt som faktiskt fungerar, slĂ€pp den, lĂ€r dig av anvĂ€ndarna, förbĂ€ttra sedan. IstĂ€llet för att gissa vad folk vill ha i ett halvĂ„r.ââââââââââââââââ MVP - Minimum Viable Product