Overview
Story Stream is an AI-powered manuscript-analysis platform that gives authors developmental editing feedback while keeping their own voice intact. Over a four-month contract engagement as AI Agent Engineer / AI Agent Monitor, I worked across the whole stack of a Next.js and TypeScript app with an LLM agent layer: the paid product flow, the email lifecycle, the marketing site, database security, and the reliability of the background analysis workflows.
Key Features
- Paid product to launch-ready: took the sentence-level line-editor product's checkout from "looks done" to verified end to end in production, a real card flowing through the live payment webhook to a credit grant, balance reconcile, and refund.
- Email lifecycle wiring: connected the signup, upload, and purchase flows into the marketing automation platform after finding paths where lifecycle emails silently never fired and personalization fields were being dropped.
- 1:1 homepage port: ported a designer's new marketing homepage into the app pixel-perfect behind a preview flag, catching sub-pixel typography drift with an automated computed-style audit rather than eyeballing screenshots.
- Automated error triage: built a Sentry scan-triage-fix pipeline that pulls top production issues, classifies them, and opens one draft fix PR per code-fixable issue on a weekly schedule.
Technical Achievements
- Root-caused and permanently fixed a production checkout-blocking bug where a build-cache was shipping a stale chunk with a missing public key, by proving the built artifact was keyless instead of trusting the dashboard.
- Added idempotency at the workflow layer so duplicate AI-analysis runs could not be triggered by any caller, and hardened provider selection so a misconfigured environment defaults safely.
- Ran a database security audit that closed a real PII exposure leaking user emails to anonymous callers and cut standing security warnings by roughly 90 percent through function-execute lockdowns, search-path fixes, and row-level security across dozens of tables.
What I Learned
The throughline across everything here was proving that things actually work in production rather than assuming they do. The build-cache bug in particular taught me to verify what reached the build, not what the config claims. It also sharpened how I test: a green build is not proof a feature works, so I leaned on real-browser end-to-end runs and computed-style audits to catch what dashboards and screenshots miss.
Tech Stack
Frontend: Next.js (App Router), React, TypeScript, Tailwind CSS Backend / Data: Supabase, PostgreSQL, row-level security AI: LLM agent orchestration with enforced timeout and error-handling guardrails Payments: Stripe (embedded checkout, live webhooks, idempotent credit grants, refunds) Infra: Vercel, GitHub Actions, Prefect workflow orchestration Observability: Sentry Testing: Playwright, Jest
Contract engagement, Mar 2026 to Jul 2026. Shown at a skill-and-impact level; no client source code or proprietary internals are included.