LiveKit voice onboarding, GPT-4o seven-day meal plans, Clerk + Stripe, Python agent on GCP + Next.js 14 on Vercel.
Built an AI-powered nutrition and meal-planning platform with real-time voice onboarding. The Next.js 14 App Router uses Clerk and Stripe with webhook-driven lifecycle tracking. Users join a LiveKit room where a Python agent (Deepgram STT, GPT-4o, OpenAI TTS, Silero VAD, Krisp) collects preferences and writes profiles to PostgreSQL via Prisma — then GPT-4o generates seven-day plans with nutrition, recipes, and images persisted across relational tables.
Browser → Next.js 14 (Clerk, Stripe, server actions, shadcn, R3F landing) ↔ LiveKit ↔ Python agent → Prisma/Supabase | LangGraph + Tavily for recipe enrichment | Bull/ioredis for background jobs | Stripe webhooks for subscriptions.
Coordinating LiveKit token creation, agent join, and Prisma write-back from Python; a fallback voice pipeline on Next.js API routes for clients without LiveKit; Stripe webhook idempotency; structuring GPT-4o output into MealPlan → DailyMeal → NutritionValue → Recipe; split deploy (Vercel + GCP Compute Engine).
Auth with webhook-driven user sync to Prisma; subscription gating and payment-intent creation via server actions.
Python agent collects allergies, goals, cuisines; profile persisted through Prisma from the agent runtime.
GPT-4o structured output mapped to MealPlan, DailyMeal, NutritionValue, and Recipe rows with Recharts on the dashboard.
Secondary agent searches the web to enrich recipes and keep plans varied beyond a single prompt.
Next API routes for STT → GPT-4o → TTS when needed; Bull/ioredis for async jobs; R3F landing for marketing craft.
Marketing and authenticated app on Vercel alongside the Python LiveKit agent on GCP Compute Engine, with GitHub Actions SSH deploy — so voice latency and web UX could evolve independently without blocking releases.
Marketing and authenticated app on Vercel alongside the Python LiveKit agent on GCP Compute Engine, with GitHub Actions SSH deploy — so voice latency and web UX could evolve independently without blocking releases.
Primary onboarding path through managed rooms and server-side agents; Deepgram STT and OpenAI TTS with Silero VAD and Krisp filtering, plus Next.js API fallback when LiveKit is unavailable for constrained clients.
Managed rooms and first-class server agents versus self-hosted TURN and signaling for a voice-first MVP.
Deepgram beat Whisper-class paths on latency for real-time STT in the agent loop.
Managed identity with webhooks that map cleanly to Prisma users and middleware-gated routes.
Supabase PostgreSQL + Prisma (TS and Python clients) fit relational meal data better than document stores.
Mature LiveKit agent SDK and audio stack versus forcing the voice loop into Node for parity alone.
LangGraph + Tavily added agentic search without rewriting the core meal-plan generator.
We take on a small number of projects at a time. If the problem is hard, we're interested.