NutriSync is a voice-first nutrition platform that helps patients log meals through conversation and gives dietitians structured, documentation-ready summaries.
Dietary recalls and meal documentation eat a large share of clinical time. When intake data is incomplete or scattered, care plans suffer. NutriSync was built to capture richer meal context through natural voice (and optional photo prompts) and turn it into consistent, clinician-usable output—so nutritionists spend less time chasing details and more time on patient care.
- Mobile app — Expo, React Native, Expo Router; LiveKit real-time voice; Supabase
- Web portal — Next.js, React, Supabase
- Shared logic — TypeScript package used across surfaces
- Backend-style services — Node token server and LiveKit voice agent under
mobile/ - Marketing site — Next.js app in
landingpage/(same source as the public site below)
Supported by CMU's Swartz Center Accelerator, Microsoft for Startups, and Deepgram for Startups. Led a pilot with 6 registered dietitians and 30 patients at Case Specific Nutrition before the project was put on hold.
This repository is a portfolio archive. The product was actively developed through early 2025 and is currently on hold. Setup instructions and dependencies are best-effort only—this is not a maintained open-source product, and things may not run without adjustment.
Project Overview(https://nutrisync.health)
| Path | What it is |
|---|---|
mobile/ |
Main Expo app (patients + nutritionists) |
web/ |
Next.js web portal |
shared/ |
Shared TypeScript modules |
landingpage/ |
Public marketing Next.js app |
mobile/token-server/ |
LiveKit JWT token service |
mobile/livekit-agent/ |
Conversational voice agent worker |
-
Prerequisites: Node.js 20+ recommended, npm, and platform tools for Expo / iOS or Android as needed.
-
Environment: Copy env templates and fill with your own keys (never commit secrets).
cp .env.example .env.local cp mobile/.env.example mobile/.env cp web/.env.example web/.env.local
See
.env.example,mobile/.env.example, andweb/.env.examplefor variable names (Supabase, LiveKit, OpenAI, etc.). -
Mobile app
cd mobile npm install npm run dev -
Web portal
cd web npm install npm run dev -
Landing page
cd landingpage npm install npm run dev -
Voice stack (local): Requires LiveKit (e.g. Docker), then run
mobile/token-serverandmobile/livekit-agentwith env vars set—seemobile/README.mdandmobile/livekit-agent/README.mdfor pointers.
MIT