Challenge
Scenario DNA needed a browser-based research environment where data scientists could explore hypothetical sequences, review curated genomic sources, and record decisions without moving between disconnected tools.
The platform also needed streamed AI conversations, configurable research personas, private knowledge sources, subscription-controlled access, and reliable synchronization between billing and application entitlements.
Role and responsibilities
I built the product interface and supporting application flows with Next.js, React, and TypeScript. My responsibilities included:
- Implementing streamed, multi-model research conversations with the Vercel AI SDK.
- Connecting AI responses to curated sequence data, annotation metadata, and private research notes.
- Building reactive experiment, subscription, and access states with Convex.
- Integrating Clerk authentication and Stripe subscription controls.
- Building administrative interfaces for prompts, research personas, subscriptions, and dataset health.
- Handling upload, webhook, and entitlement states across the frontend and application routes.
Technical decisions
Vercel AI SDK for streamed model interaction
The application needed conversations to render incrementally while supporting configurable research personas and optional tools. The Vercel AI SDK provided the streaming and tool-invocation layer without requiring a custom chat transport.
Convex for reactive application state
Experiment state, subscription status, dataset metadata, and billing events needed to update the interface as they changed. Convex queries and mutations allowed badges, calls to action, and access states to react to those updates without a separate synchronization layer.
Separate authentication, application data, and billing responsibilities
Clerk manages authenticated sessions, Convex stores structured research and subscription state, and Stripe controls checkout and subscription events. This kept access concerns separated instead of concentrating them in one custom backend.
Idempotent webhook processing
Stripe and upstream services can retry events. Each processed webhook is recorded in a dedicated table so repeated delivery does not apply the same subscription or entitlement change more than once.
Result or measurable impact
A working research platform shipped with streamed, knowledge-backed AI conversations; configurable research personas and prompts; authenticated, subscription-controlled access; dataset ingestion and experiment-health tracking; and administrative controls for research and billing state.
The subscription flow handles trials, plan changes, cancellations, payment failures, grace periods, and recovery. No numerical adoption, performance, revenue, or research-outcome metrics are currently available, so none are claimed here.
Screenshots

