Projects

Things I built when I should have been sleeping. Some finished, some eternal works-in-progress.

Explore how these projects connect →
Featured
PSbloggen — the redesigned homepage, a review page with the SVG score arc, and the curated collections page
01. Utilities

Things built to solve suspiciously specific problems.

drift Repo →

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.

review-bot Repo →

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.

trace Repo →
trace — the private incident notebook list, a full incident with timeline and hypotheses, and the operational events feed showing a build and deployment receipt

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.

fullhouse Live →Repo →
fullhouse — mode picker, a live caller screen mid-session, and a guest's bingo card with real cover art and song/artist badges

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.

latent Live →Repo →
latent's upload screen, the editor with grain/vignette/halation/light-leak sliders cranked up on a test photo, and a generated 'send to develop' link

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.

scrawl Live →Repo →
scrawl's shared canvas mid-session with four peers painting simultaneously, and the slant-font ASCII banner shown on connect

A shared ASCII doodle wall you connect to over SSH. Everyone connected right now is drawing on the same canvas, live.

typo Live →Repo →
typo mid-typing session showing live WPM/accuracy/keys-per-second stats, and a Swedish-language lore snippet from djupet's event log

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.

stash Repo →

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.

keep Repo →

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.

wisp Live →Repo →
wisp — encrypt-and-upload success screen showing a one-time share link

Short-lived, end-to-end encrypted file sharing. Upload once, the recipient retrieves it later, and then it's gone for good.

npm-statuspage Live →Repo →

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.

flit Site →Repo →

Ephemeral, end-to-end encrypted file transfer between your own devices. AirDrop for people who self-host.

waste-go Site →Repo →
waste-go browser client join screen

A modern reimagining of WASTE — encrypted P2P chat and file sharing over WebRTC, with no server in the data path.

galr

Self-hosted private image gallery for browsing large photo collections organized in a flexible hierarchy.

Pitwall - an F1 dashboard Live →Site →
Screenshot of the Pitwall UI

A compact Formula 1 dashboard: sessions, standings, and race weekend essentials.

goonk.se Site →

Personal site reboot: simple, fast, and self-hosted.

02. Games

Things I've made playable.

Thön Live →Repo →

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.

Diariet Live →Site →Repo →
Diariet — the intro screen with a rotary phone and a corkboard map, a clean-ending case file, and the tension-driven loss ending where the handler becomes the case

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.

one more floor Live →Repo →
one more floor — the intro screen with today's rotating delver portrait, a peeked floor showing danger and reward, a mid-run floor deep in the Ruins, and a banked ending with a shareable result block

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.

Retur Live →Site →Repo →
Retur — the personnel assignment intro, the dead-letter sorting desk, a registered consequence after a bad decision, and the ending screen for a clean run

A short bureaucratic supernatural sorting game. Route impossible letters through five shifts using an expanding and occasionally contradictory rulebook.

2048 Live →Repo →
2048

The classic tile-merging puzzle game, rebuilt with a terminal aesthetic. Dark background, amber tiles, green on victory.

Djupet Live →Site →Repo →
Djupet

A Lovecraftian idle cult management game set in Malmö, Sweden. Manage devotion, dread, secrecy, and chaos as the ritual deepens.

rack Live →Repo →
rack

A browser-based idle game about running a homelab. Start with a Raspberry Pi. End somewhere you can no longer justify to anyone.

Delve: Between Descents Live →Site →
Delve: Between Descents

A town management sim set above the Warren — recruit delvers, outfit them from four shops, send them down, see what comes back.

Delve: Ashes of the Pale Flame Live →Site →
Delve: Ashes of the Pale Flame

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.

Delve (a roguelike) Live →Site →
Screenshot of the Delve roguelike

A fun little roguelike experiment — quick runs, weird builds, and learning-by-doing.