~/devshowcase

git log --since=2025-09-04

A year of building with AI

What I built between September 2025 and September 2026. The big ones get the full story. The rest get a picture and a paragraph, because that is what they were.

total 15 · the long builds, the tools, and the small ones

The costs-portal dashboard: a month total, project cards with sparklines, and the watchman panelcosts-portal
The md reader showing a document with its outline rail and a code blockmd
A Boswell conversation, the assistant answering from what it remembersboswell
The ReviewKit recording overlay: a waveform, a timer, and the live transcriptreview-kit
The Hungry Grave: a run replaying, rings of orbiting shots around the playerthe-cabinet

The long builds · 5

01 / 15

boswell

drw------- · private · 463 commits · Python 3.12 · FastAPI · pgvector · Pipecat · Next.js 16

Chat assistants forget you between sessions and run on someone else's servers. Boswell keeps a continuously distilled model of one person's life, on hardware they control, and surfaces things at the moment they matter.

The Boswell chat surface: the assistant answering questions about what it knows, with a cited memory underlinedchat surface
just audit-turn
The memory browser: questions and grounded answers, each answer linked to the trace that surfaced itmemory browser

02 / 15

champ-sage

drwxr-xr-x · public · 424 commits · TypeScript · React 19 · RxJS · Overwolf Electron · Whisper · evalite

Every League companion app serves pre-computed tier lists that ignore your actual items, augments, and enemy team. Champ Sage is a voice-first coach for the game you are in right now.

The in-game overlay: three augment cards, each with a coaching verdict above it, and the coach answering a question in the cornerin-game overlay · augment verdicts
The desktop app in champ select: your pick with a build direction and summoner spells, the enemy team still pickingdesktop window · champ select
The post-game review: three takeaways from the match, the coach-side timeline, and the final build matched six for six against the planpost-game review

03 / 15

brief

drwxr-xr-x · public · 234 commits · Next.js 16 · React 19 · Vercel · WorkOS · AI SDK · [live]

Long videos hide whether they are worth watching behind the watching. Brief turns a YouTube link into a timestamped, structured summary so you can decide to watch now, later, or never, and keeps every brief in a searchable library.

A brief: the video player, the gist, and the AI-generated chapters with timestampsa brief · chapters
The library: search, tag filters, date filters, and a grid of briefslibrary · filters
the brief CLI

04 / 15

the-cabinet

drwxr-xr-x · public · 224 commits · TypeScript · Vite · PixiJS 8 · React 19 · Upstash Redis · [hungry-grave] · [housewarming]

My games had no shared home, and a repo per game costs an install, a tracker and a deploy each. One repo holds every game plus a launcher, and each game keeps its own stack.

The Hungry Grave mid-run at full weapon levels, the window filled with the player's own projectilesThe Hungry Grave
The Housewarming title screen: the name above a single lit candle in the darkHousewarming
The replay route: a verified tape playing back at tick 9698, rings of orbiting shots around the player#/replay · a tape at tick 9698

05 / 15

regimen

drwxr-xr-x · public · 234 commits · TypeScript · Bun · SQLite · OpenTelemetry · Grafana Cloud

Engineers judge their AI-assisted work on feel. Regimen captures what actually happened across Claude Code, Codex, Copilot, and Gemini into a local store, then tells the engineer where the work went wrong and whether their fixes helped.

regimen rollup
regimen status

The tools · 6

The md reader with the outline rail open beside a document with code blocksreader · outline rail
A document in the md reader, set wide, with a Mermaid flow diagram and a code blocka doc with a diagram

md

[live]117 commits

Turn a markdown file into a legible shareable link, faster than a gist and more durable than a pastebin. The second audience is a coding agent that needs to publish and edit docs there as fluidly as it edits local files.

pickai with two capability rules applied, 854 of 1,738 models passing, ordered by ratingrule rail · results table
One model expanded in pickai, showing scores with vote counts, capabilities, prices, and datesper-model panel

pickai

[public]93 commits

models.dev lists roughly 2,200 model identities, and most people pick the one name they have heard of. pickai takes a project's hard rules and what matters this week, then returns a short ordered list worth testing, with the reasoning attached.

A run in progress: round 1 evaluating, three models answering the same questiona run in progress

One model's answer is one opinion. This sends a question to several models at once, lets them read each other and refine over rounds, and has an evaluator model decide when they have converged.

The niftymonkey.dev homepage: a whoami line and a directory listing of projects with permission stringsls -la ./projects/
A notebook entry with two rated evidence cards and the contents raila notebook entry

My personal site. I want to be easier to learn from without becoming a content creator. It lists my projects as a terminal directory listing and holds a notebook of engineering writing worth keeping.

The costs-portal dashboard for one month: total, daily average, trend, project cards with sparklines, and the watchman and long arc panelsdashboard · watchman
One project's detail page: this month's composition, six months of spend by source, and the SKU tableproject detail

costs-portal

[private]64 commits

"What did this project cost me this month" used to mean checking five dashboards. This pulls Anthropic, OpenAI, OpenRouter, and the flat-fee SaaS tail into one project-first view on your own machine.

The ReviewKit landing page: a title, a tagline, and a coming soon buttonlanding page
The ReviewKit recording overlay mid-recording: a live waveform, the timer at fourteen seconds, the transcript so far, and the stop buttoncapture

review-kit

[private]51 commits

People forget what they did all year and then write a performance review from memory. ReviewKit captures accomplishments by voice or text as they happen, then turns the pile into goal-aligned review content.

The small ones · 4

41 commits

idea-vault

[live]

App ideas start as a braindump and end as scattered text. This stores them in a structure you can scan, keep updating, and export as a build-ready prompt.

The guided refine wizard on the Problem step, with an AI suggestion open under the editorrefine wizard
26 commits

A D&D group finishes a session with a Teams transcript and a dice log and no record anyone wants to read. This turns both into a scene-by-scene narrative recap.

Session Scribe mid-generation: extraction on scene 4 of 5, elapsed time, and the activity loggeneration in flight
20 commits

tool-radar

[public]

A hand-kept file of default tools went stale and got deleted. This is a catalog that refreshes itself: a weekly scheduled agent runs a written runbook and opens a PR. There is no UI. The showable artifacts are files.

The Tool Radar: 98 tools plotted on adopt, trial, assess, and hold rings across 23 areasthe radar
15 commits

tts-bake-off

[public]

Picking a text-to-speech voice by reading spec sheets does not work. This renders one line across eight engines, local and cloud, so the choice gets made by ear.

say.py in a terminal