AI-native product design and complex domain modeling
Dramaturge
A writer's platform that turns a manuscript into data-driven story analysis: character dossiers, timelines, structure maps, even generated scene music.
- Role
- Sole engineer, designer, and operator
- Year
- 2026
- Status
- In Development
- Live
- Visit site
- React 19 / Vite / TypeScript
- Python / FastAPI
- Gemini 3 Flash (extraction)
- Nano Banana 2 (imagery) / Lyria 3 (music)
- Neon PostgreSQL
- Stripe / Statsig
- AWS CDK / Caddy on EC2
621 backend + 240 frontend
Automated tests passing
2026-07-03 · CI (pytest + vitest)
Challenge
Writers analyze their own work by hand: tracking who appears when, where scenes happen, how the structure holds. Dramaturge asks whether an LLM can do that structural analysis directly, as the product surface itself, not as a chatbot bolted onto a CRUD app. The hard part is that language models hallucinate: they invent characters and miss minor ones, so the design has to make AI output trustworthy rather than pretend it is perfect.
Process
A first-class domain concept, the immutable “story form” (novel, stage play, feature screenplay, and five others), conditions every one of ten analysis lenses: a scene timeline, a character atlas, a blocking board that only exists for stage and screen, a Hero’s Journey mapper, a stakes analyzer, a story-structure engine. Extraction runs on Gemini 3 Flash in structured JSON mode, validated by typed schemas with fuzzy deduplication; a dedicated human-correction UI treats the AI output as a draft to be confirmed, built specifically around the model’s documented failure rates.
Two details show the engineering care. The query bar is two-tier: fast pattern matching handles about 90 percent of structured queries in under 100 milliseconds, falling through to Gemini with cached project context only when needed. Extraction uses an optimistic “silent swap”: client-side regex highlights proper nouns instantly, then crossfades to AI-validated entities as results stream in. Cost is bounded by a hard monthly-budget circuit breaker that returns a 503 once the ceiling is hit, and every write endpoint went through a dedicated authorization-hardening pass. The product also generates charcoal-sketch character art and scene music via Nano Banana 2 and Lyria 3.
Result
Built and deployed to production at dramaturge.io, with 621 backend and 240 frontend tests passing after a full React frontend rebuild. It is pre-launch with no real users yet; the music generation ships as an honest coming-soon until it is wired end-to-end in the UI. It is the portfolio’s deepest example of AI output as the primary product surface rather than an assistant feature.