~ $ ls projects/

Projects

Agents & tooling

Software that builds or watches other software.

claude-to-codex

A manager/contractor split for AI coding: Claude Code plans, reviews, and merges; the Codex CLI writes every line of implementation. Each unit of work is a small markdown task packet dispatched to a sandboxed run, verified independently before anything is committed.

Node · Claude Code · Codex CLI

homelab-sre-agent

Alertmanager tells you that something broke. This tells you why — a single Go binary that catches the webhook, gathers Loki logs, Prometheus metrics, and container state around the incident, asks Claude what most likely went wrong, and pushes a plain-language diagnosis to your phone. Read-only end to end.

Go · Claude API · Prometheus · Loki

betto-balutto

Bets from a Swedish gambling podcast, pulled and settled automatically by AI. Automatic updates are off now. Frozen in time.

Cloudflare Workers · D1 · R2 · Deepgram · Claude

ralph-cli

Re-usable scaffolding for the Ralph Wiggum technique: define your work in a PRD, then let Claude Code grind through it one task per iteration, committing as it goes.

TypeScript · Claude Code

Apps & experiments

Things I wanted to exist, so I built them.

Gissa partiet

Pictures of riksdagsledamöter. You guess which party.

SvelteKit · Cloudflare Workers · D1

Gissa året

A daily Swedish headline game: everyone gets the same five headlines each day and guesses the year each one ran. Years and blurbs stay on the server until you guess, and there's no login, just today's average score.

Astro · Cloudflare Workers · KV

WC26 Jobbiga Bets

A friends World Cup prediction pool in the style of a sticker album, plus a recap of the whole tournament. Frozen now that it's over.

SvelteKit · Cloudflare Workers · D1

WC26 digest

AI-generated daily digests of played and upcoming games, for a quick overview.

Astro · Cloudflare Workers · KV

ChromaCross

A daily word puzzle where you guess letters to reveal two intersecting words. Each letter has its own color, eight wrong guesses.

TypeScript · React · Cloudflare Workers

3D Earth

Interactive 3D globe with controls for time, clouds, atmosphere, and celestial bodies. Rotate, zoom, drop markers.

Three.js · TypeScript · Cloudflare Workers

WL — Health Dashboard

A read-only iPhone app showing my HealthKit data on two screens: today's rings and thirty days of trends. No backend, no cache, no analytics — Health is the single source of truth, read live on each launch.

Swift · SwiftUI · HealthKit

bq-notebook

A local library for the BigQuery SQL you keep losing across tabs and docs. Full-text search, tags, template parameters, and table references parsed out of each query on save.

TanStack Start · SQLite

$ accent