Projects

Projects

My own projects, and the client work. Each page says which it is, and where the code came from.

Paid client work. Most of these start from an open-source project and extend it to fit what the client needed. Each page says what I added, and credits whoever wrote the original.

BookLore

Three people knew the catalogue. One of them left.

Built on booklore-app/booklore

KotlinSpring BootTypeScript
Read more →

FireGEO

Their analysis took 90 seconds. The page had to feel fast anyway.

Built on mendableai/firegeo

TypeScriptNext.jsDrizzle ORM
Read more →

Ableton MCP

Students who'd never opened a DAW, writing music in one session

Built on ahujasid/ableton-mcp

PythonMCPAbleton Live API
Read more →

BriefGPT

500-page patent reviews, on a machine with no internet

Built on e-johnstonn/BriefGPT

PythonLangChainLlamaCpp
Read more →

Claude Code Router

A $40k monthly bill, and nobody wanted to change how they worked

Built on musistudio/claude-code-router

TypeScriptFastifyNode.js
Read more →

Serena

Use the language server the IDE already runs, instead of building a search index

Built on oraios/serena

PythonLSPmultilspy
Read more →

CamSniff

500 cameras, 12 sites, four contractors, and no inventory

Built on John0n1/CamSniff

PythonNmapMasscan
Read more →

MCP Deep Research

Three hours of finding sources before anyone writes anything

Built on qpd-v/mcp-DEEPwebresearch

TypeScriptPlaywrightMCP
Read more →

Blender MCP

Six artists waiting two weeks for placeholder models from one person

Built on ahujasid/blender-mcp

PythonBlender bpy APIFastMCP
Read more →

MCP PDF Tools

800 regulatory PDFs a month, and someone has to open all of them

Built on hanweg/mcp-pdf-tools

PythonpdfplumberMCP
Read more →

Hybrid DJ Set

A second performer that doesn't need feeding, paying, or persuading

Built on MikeMorenoDSP/Hybrid-DJ-Set

Pure DataMixxxMIDI
Read more →

UE5 Visualizer

Visuals that follow the music, instead of a VJ following it for them

Built on ZackBerw/Unreal-Engine-Interactive-3D-Visualizer

Unreal Engine 5MaxForLiveOSC
Read more →

SYNTHesized

Thirty-five kick drums, none of them a sample

Built on nikolaStanojkovski/SYNTHesized

SuperColliderSynthDefKarplus-Strong synthesis
Read more →