Projects
Things I built when I should have been sleeping. Some finished, some eternal works-in-progress.
Explore how these projects connect →
Migrated a ten-year PlayStation enthusiast blog off WordPress and grew it into a full IGDB-powered editorial platform: curated collections, a daily guess-the-game feature, PS Plus catalog tracking, and reader accounts, all self-hosted.
Things built to solve suspiciously specific problems.
A visual-regression watchdog for the rest of the self-hosted family: screenshots every live project on a recurring interval and flags when a capture drifts from the last one — a CSS regression, a broken deploy, a dead API leaving a widget empty, silent otherwise.
A Discord bot that runs a games-editorial desk's review pipeline end to end — IGDB search, staff interest voting, reviewer assignment, embargoed press-kit DMs, and submission tracking. Built by @Khaidu (Johan Lindros); we handled dockerizing it and hosting it.
A private incident notebook and operational-receipts ledger for the self-hosted stack: what actually broke, what a build produced, and what a deploy host actually ran — kept as three separate, honest facts.
Live music bingo from a real Spotify playlist — host a session, join with no login, or play solo. Based on bingo-bango by f8al, reworked with host mode, live sync, and cover-art squares.
A phone-photo editor with a 'develop it later' option. Film-style effects in the browser, then download instantly or send it off to develop behind a randomized hours-to-days delay.
A shared ASCII doodle wall you connect to over SSH. Everyone connected right now is drawing on the same canvas, live.
A typing test built from your own code and lore. Real snippets pulled from real repos across this whole family of projects, not generic pangrams — accurate WPM, accuracy, and keys/sec.
Self-hosted read-later. Click 'Send to stash' in the browser, the article's content is extracted and stored on your own server — full-text searchable, no third party ever sees your reading list.
A self-hosted, end-to-end encrypted secrets store for deploy scripts. keep pull myapp/production gets you a decrypted .env — the server never sees plaintext, or the key that would let it.
Short-lived, end-to-end encrypted file sharing. Upload once, the recipient retrieves it later, and then it's gone for good.
A small service that reads proxy hosts from Nginx Proxy Manager and HTTP-checks them on a schedule. Serves a live status page and a JSON API.
Ephemeral, end-to-end encrypted file transfer between your own devices. AirDrop for people who self-host.
A modern reimagining of WASTE — encrypted P2P chat and file sharing over WebRTC, with no server in the data path.
Self-hosted private image gallery for browsing large photo collections organized in a flexible hierarchy.
A compact Formula 1 dashboard: sessions, standings, and race weekend essentials.
Personal site reboot: simple, fast, and self-hosted.
Things I've made playable.
An idle game about a small circle of bärare (carriers) weaving open a breach to Thön from a disused sawmill in Skellefteå. Inspired by the mythology, masks, and lyrics of the Swedish band Vildhjärta.
A bureaucratic horror game. Route five shifts of incident reports about the edges of the unexplained — and never get the full picture. That's the job.
A five-minute push-your-luck descent into the Delve dungeon. Bank the loot, spend a torch to peek the danger, or descend blind for a bigger cut — one shared seed a day.
A short bureaucratic supernatural sorting game. Route impossible letters through five shifts using an expanding and occasionally contradictory rulebook.
The classic tile-merging puzzle game, rebuilt with a terminal aesthetic. Dark background, amber tiles, green on victory.
A Lovecraftian idle cult management game set in Malmö, Sweden. Manage devotion, dread, secrecy, and chaos as the ritual deepens.
A browser-based idle game about running a homelab. Start with a Raspberry Pi. End somewhere you can no longer justify to anyone.
A town management sim set above the Warren — recruit delvers, outfit them from four shops, send them down, see what comes back.
A Slay-the-Spire-style deckbuilder set in the Delve universe — same lore, different combat. Build a deck, descend three acts, fight the Pale King.
A fun little roguelike experiment — quick runs, weird builds, and learning-by-doing.