A real-time spy thriller played across a native iPhone PWA, real SMS, live voice calls, and the player's actual inbox. Five integrated APIs running one cohesive fiction. Architected solo in 24 days in Claude Cowork.
Operation Meridian is a real-time investigation game. From the moment you start, the mission runs on a real clock against your real life. AI-driven handlers brief you over voice calls, INTEL drops hit your inbox, encrypted SMS chatter arrives on your phone, and a native iPhone PWA ties it all together: dashboard, intel, cipher lab, cables, pinned evidence, comms, and an accusation panel that closes when the window expires.
You're racing four AI agents, a fallible analyst named VESPER, and a cast of suspects across 88 authored game slots, 52 INTEL documents, 15 dossiers, and 9 puzzle types, from caesar and vigenère to fingerprint deduction. Three suspects. Four possible endings. One chance to call it.
Every figure below is from the live codebase, not a marketing approximation.
A single Node/Express core fans out to the player across every device they actually use, and a hand-authored slot system schedules every beat.
// 16 slot types · 12 original Act I + 4 Act II extensions
A 6,451-line, single-file planning application: no framework, no build step, no dependencies. The Slot Timeline Organizer turns 88 narrative beats into a draggable, zoomable, dependency-wired swim-lane timeline. Put together in one session, deployed behind admin auth.
5-day horizontal track, 4 agent lanes (Alex / Foxhound / Cipher-6 / Ghost) and 5 system lanes (VESPER, email, SMS, voice, portal). 88 cards live where they belong.
Hover any card to reveal ports. Drag between ports to create cascade relationships. 39 dependencies auto-parsed from the episode spec and rendered as bezier curves on a canvas overlay.
Click a card; the inspector pulls actual authored prose from 6 different sources (Supabase tables, HTML files, inline JSON). Each slot type renders its own field set.
seed (immutable spec) → canon (committed) → planning (working layer). localStorage persists between sessions; nothing is lost.
Markdown for Slack handoff. JSON Claude-ingest payload with embedded apply-instructions. Diff view shows exactly what changed since canon. One click, three audiences.
6 zoom levels, space-hold to pan, shift-click multi-select, shift-drag marquee, grouped card clusters, full keyboard shortcuts. Feels like Figma; built in one file.
The game engine, the story, the design system, the iPhone PWA, and this portfolio site were worked out across 42 Claude Cowork sessions over about 24 days. I brought the architecture and the direction. The agent did the building inside it.
The design system (tokens, components, dark and light theming, responsive layout) was built directly in Cowork. No Figma handoff, no separate design tool. Concept to production in one place.
Every external service is wired into the slot system: no service is bolted on, all five speak the same scheduling language. Running in production on Railway with zero cold starts.
Powers VESPER's analyst voice plus 4 agent cable handlers, each with its own system prompt. Drives a 7-intent classifier that routes free-text player replies.
Outbound briefing calls (90-second cap) and in-portal agent comms (2-5 min). Webhook transcripts persist to Supabase and reappear in the cables tab.
Real SMS to/from the player's actual phone. Keyword reply system handles commands like FOLLOW, HIDE, and PULL CROSS FIN.
14 email templates: briefings, dossiers, magic-link auth, account notifications. Every in-world email looks like it came from the right department.
Postgres database, session store, real-time state propagation. 8 tables, 9 migrations, full row-level security on player data.
Node.js + Express deployed to Railway: always-on, zero cold starts, GitHub-triggered deploys. The game runs live 24/7, not on serverless functions.
Every voice has its own system prompt, vocabulary, and trust trajectory.
Runs the mission from the operations side. Short sentences, action verbs, no hand-holding. If something is broken, Alex is the one who says it first.
A journalist-turned-leaker with a backchannel into agency cables. Won't capitalize a sentence to save their life. Tips you off when the official story doesn't add up.
Lives in the headers and metadata. Talks in vigenère keys, frequency tables, and checksum mismatches. The puzzle handler. The only one who treats the lab like home.
Drops in on encrypted cables with information you weren't supposed to have. Helpful? Honeypot? The endings split partly on whether you trust them.
Most AI assistants optimize for accuracy. VESPER does the opposite, on purpose. It's the in-world analyst on the player's portal, and it's deliberately miscalibrated at known rates across all three acts. The goal: teach players to interrogate AI output rather than accept it. Three of its reads are hand-anchored wrong regardless of dice rolls, a structural design decision, not a bug.
It's the same question enterprises face with AI tooling: when should a human override the machine? VESPER makes that question the game.
Operation Meridian goes into closed alpha in the coming weeks. Request access, read the novel that started it, or reach out directly.