Tech stack for a voice AI agent (2026)
Voice AI receptionist for restaurants, designed by StackPrism from one sentence: 9 components, a reason for each, and the live checks that watch them.
The stack
- Next.js
Supabase
OpenAI
- Inngest
PostgreSQL
Redis
Twilio
Sentry
“A voice AI agent that answers phone calls for restaurants: it takes reservations, answers questions about the menu and opening hours, and texts the guest a confirmation. Replies need to feel instant, and owners can read every call transcript.”
Make it yours. Open this stack in the editor to check its health, harden it and hand it to your coding agent. No sign-up, nothing to generate.
Start from this stackSelect a component to see what it does and what it connects to, or pick one above to see what breaks if it goes down. Pinch or use the buttons to zoom.
Why this stack
Calls come in through Twilio, which hands each one to the real-time voice agent. The agent holds the conversation with OpenAI, keeps live call state in Redis so replies stay fast, and reads the menu, opening hours and reservations from PostgreSQL. After the call, an Inngest job texts the guest a confirmation through Twilio. Owners use the admin portal to read transcripts from PostgreSQL and play back audio kept in Supabase Storage. Sentry reports errors from both sides.
Why each piece
All 9 components on the diagram: what each one does, what it talks to, and what stops if it goes down.
Real-Time Voice Agent
In Vercel
Call orchestration. Calls OpenAI, Inngest (triggers), Twilio (sends), Sentry (errors), PostgreSQL (reads/writes) and Redis (reads). Called by Twilio (webhooks).
If it goes down, 1 of 8 components degrades.
Admin Portal
In Vercel
Next.js dashboard. Calls Supabase Storage (loads), Sentry (errors) and PostgreSQL (reads).
Nothing else on the diagram depends on it.
Supabase Storage
In Data & Storage
Audio storage. Called by Admin Portal (loads).
If it goes down, 1 of 8 components degrades.
OpenAI
In External Services
LLM API. Called by Real-Time Voice Agent.
If it goes down, 1 of 8 components degrades.
Inngest
In External Services
Async jobs. Calls Twilio (sms). Called by Real-Time Voice Agent (triggers).
Nothing else on the diagram depends on it.
PostgreSQL
In Databases
System of record. Called by Admin Portal (reads) and Real-Time Voice Agent (reads/writes).
If it goes down, 2 of 8 components stop working and 1 degrades.
Redis
In Databases
Session cache. Called by Real-Time Voice Agent (reads).
If it goes down, 1 of 8 components degrades.
Twilio
In External Services
Telephony and SMS. Calls Real-Time Voice Agent (webhooks). Called by Inngest (sms) and Real-Time Voice Agent (sends).
If it goes down, 2 of 8 components degrade.
Sentry
Error tracking. Called by Real-Time Voice Agent (errors) and Admin Portal (errors).
If it goes down, 2 of 8 components degrade.
When this stack fits
- The job is narrow: reservations, menu and opening-hours questions, and a text afterwards.
- Replies have to come fast, so live call state sits in Redis rather than the database.
- Owners need to check what the agent said on every call.
When to pick something else
- You stream call audio for faster replies: that runs over WebSockets, which Vercel’s functions can’t hold open, so run the voice agent as a long-running service.
- You’d rather not build the call loop: hosted voice-agent platforms handle the phone line, speech and turn-taking, and call your API for bookings.
What you need to build this
9 components across 8 areas of the stack.
Build it with your AI agent
Hand the stack to Claude Code, Codex, Cursor or any coding agent as a brief: how it connects, install steps and a build plan.
Frontend1
- Docs
Admin Portal · Next.js
Next.js dashboard
npm install next
Backend & APIs2
Real-Time Voice Agent
call orchestration
Inngest
async jobs
Data1
- Docs
PostgreSQL
system of record
Cache & queues1
- Docs
Redis
session cache
Email & messaging1
- Docs
Twilio
telephony and sms
npm install twilio
AI1
- Docs
OpenAI
llm api
npm install openai
Storage & CDN1
- Docs
Supabase Storage
audio storage
npm install @supabase/supabase-js
Observability1
- Docs
Sentry
error tracking
npm install @sentry/nextjs
Install
npm install next twilio openai @supabase/supabase-js @sentry/nextjs
SDKs only. Pick your own database driver or ORM.