Skip to content

Architecture overview

This section is for technical readers. It explains the shape of CoveCall — the services, what each is responsible for, and how a call flows — at a level that’s safe to publish.

Web app + API (Vercel)

A React + Vite single-page app, with serverless API functions for everything the dashboard and onboarding need.

Voice engine (Render)

A real-time Node service that handles live call audio and runs the conversation — transcription, the language model, and speech.

Database & auth (Supabase)

Postgres for all data, with authentication and row-level security so each business sees only its own records.

Telephony (Twilio)

Phone numbers and live, two-way call audio via Media Streams; SMS for alerts and follow-ups.

Services on a live call
Caller
TwilioMedia Streams
Voice engineASR → LLM → TTS
Toolscalendar · CRM · SMS
Supabasecalls · summaries

The dashboard reads the results; the voice engine handles the live conversation.

  1. A caller dials your Twilio number; the audio is streamed to the voice engine.
  2. The engine runs the conversation — see the voice pipeline — following your agent configuration and Call Map.
  3. When the agent acts (book, look up a customer, send a text), it calls allow-listed tools that reach your connected integrations.
  4. Results — the transcript, summary, outcome, and any alerts — are written to Supabase, and the dashboard reads them.
  • The browser only ever talks to the API and reads data it’s authorized to see.
  • The voice engine is reached through short-lived, signed authorization for each call — never a shared password in the browser.
  • Connector credentials are encrypted and only readable by trusted server-side roles.

See Security & data for the details.