Five systems, each written up as it was built.

Each case study covers the problem, how data moves through the system, what was built, and the decisions that mattered. Client systems are described without naming the client, and metrics that belong to a client aren’t published. The two products of my own are linked.

Client work

3 · anonymized

  1. Support agent platformAn AI support agent across tickets, live chat and a first-party chat widget, with a learning loopNext.js 16 · AI SDK v6 · Upstash Redis + Vector · Claude, Gemini, OpenRouterIn productionClient work
  2. Support IntelligenceA morning read of a support desk for people who don't read ticketsNext.js · Gemini 2.5 Flash · RedisIn productionClient work
  3. Community SignalTwo small internal tools that each replaced a weekly manual taskPython · SQLite · Claude / Next.js · monday.com GraphQL · GeminiInternalClient work

Own products

2 · open them

  1. NEPSE CopilotA multi-account investing copilot for the Nepal Stock Exchange that grades its own callsNext.js 16 · Neon Postgres · AI SDK v7 · Gemini Live · TelegramLive · sign-inOwn product
  2. offScriptA rehearsal partner for actors: two speech engines, a directing room, and a cue engine that knows the lineNext.js · Gemini TTS + ElevenLabs · Gemini Live · browser speech · IndexedDBLiveOwn product

Next step

Have a process that runs on someone copying data between two tabs?

Describe it: what it is, who does it, how often, and what goes wrong when it's late. I reply within one working day with a scoping call or a reason it isn't worth automating.

Start a project How a project runs

Free 30-minute call · one working day