backend/— Express server that holds your API key and calls Akapulu with@akapulu/serverfrontend/— React app (Vite) using@akapulu/reactand@akapulu/react-ui
Prerequisites
- Node.js 20+ and npm
- An Akapulu API key — akapulu.com/api-keys
- A scenario — akapulu.com/scenarios (guide)
Setup
Clone the repo:backend/.env.example to backend/.env.local and add your API key:
backend/server.ts:
record_conversation: true is required for the post-call review to have a recording to show.
Start the backend (localhost:3001) and leave it running:
How it works
The frontend (localhost:5173) calls your backend (localhost:3001), which calls Akapulu with your API key.
The backend exposes four routes:
src/App.tsx— the styledAkapuluConversation(dark styles, custom tool toast, custom transcript rows) plus an event logger. A singlereviewIdstate switches to the review screen when the call ends (no router).src/customization.tsx— thedarkStylesobject and the custom tool toast renderer.src/ConversationReview.tsx— post-call screen; fetches details and polls until the recording is ready.
Related examples
- Prebuilt UI — minimal
AkapuluConversationdemo - Customized UI — custom hooks + Daily video UI + post-call review

