Skip to main content
LobbyStack is open source and can be run with your own provider accounts. Self-hosting is an advanced path: you operate the app, configure external services, manage secrets, and handle provider billing directly.
Self-hosting is not a one-click install. You need a Convex deployment, a public voice gateway, Twilio, OpenAI, and a static web dashboard deployment before live calls can work.

Components

ComponentPurpose
Convex backendStores business data and runs backend functions, HTTP endpoints, auth, billing logic, calendar sync, SMS, and knowledge workflows.
Voice gatewayNode.js service that handles Twilio Voice, Twilio Media Streams, OpenAI Realtime, transfers, and recording upload.
Web dashboardReact/Vite app operators use to configure the receptionist and review activity.

Required providers for live voice

  • Convex for backend and storage.
  • Twilio for phone numbers, voice calls, SMS, and phone verification.
  • OpenAI for Realtime voice conversations.
  • A hosting platform for the voice gateway with a public HTTPS URL.
  • Static hosting for the web dashboard.

Optional providers

  • Google Calendar for calendar availability and booking sync.
  • Firecrawl for website knowledge import.
  • Google Gemini for knowledge embeddings and non-realtime text generation.
  • Resend for password reset and email-change emails.
  • Polar if you are operating hosted billing for your own customers.
  • PostHog for analytics and telemetry.

What self-host does not do for you

When self-hosting, you are responsible for:
  • Twilio account setup, phone numbers, webhooks, A2P/10DLC compliance, and SMS costs.
  • OpenAI usage costs.
  • Convex project ownership and deployment settings.
  • Voice gateway uptime and public networking.
  • Secret management.
  • Product, privacy, retention, and compliance policies for your deployment.

Next steps

Environment variables

Review the main runtime and provider variables used by the app.

Third-party providers

See what each external provider does in LobbyStack.