Skip to main content
Documentation
StartOverviewArchitectureAuthenticationSend your first message
TypeScript SDKOverviewTrusted app serverApp-user clientsRealtimeErrors & webhooks
Flutter SDKOverviewInstallationAuthenticationChannels & messagesOffline & syncRealtimeUI componentsPush & lifecycle
ConceptsTenancy & scopeChannels & messagesDelivery & reconciliationSecurity checklist
ProtocolsRealtimeSigned webhooks
ReferenceREST APIErrors, limits & retriesDeploy docs to Coolify
VV ChatDocs API v1
Recommended starting points
Build chat without rebuilding infrastructureV Chat is a multi-tenant messaging backend with typed server, web, and Flutter integration paths.StartArchitecture at a glanceUnderstand the control plane, data plane, realtime path, and SDK boundaries before integrating.StartAuthentication and credentialsSelect the correct credential for dashboard, trusted-server, app-user, realtime, and webhook flows.StartSend your first messageUse the trusted TypeScript server client to create the minimum safe messaging flow.StartTypeScript SDK overviewChoose the correct typed client for trusted servers, app users, dashboard sessions, realtime, and webhooks.TypeScript SDKTrusted app-server clientUse AppServerClient from a protected backend to manage data-plane resources and mint app-user tokens.TypeScript SDKApp-user clientsBuild browser or Node app-user flows with VChatClient or the lower-level AppUserClient.TypeScript SDK
↑↓ Navigate↵ Openesc Close
API reference
StartOverviewArchitectureAuthenticationSend your first message
TypeScript SDKOverviewTrusted app serverApp-user clientsRealtimeErrors & webhooks
Flutter SDKOverviewInstallationAuthenticationChannels & messagesOffline & syncRealtimeUI componentsPush & lifecycle
ConceptsTenancy & scopeChannels & messagesDelivery & reconciliationSecurity checklist
ProtocolsRealtimeSigned webhooks
ReferenceREST APIErrors, limits & retriesDeploy docs to Coolify
Contract sourceOpenAPI JSON
Docs/Start
Core concepts

Architecture at a glance

Understand the control plane, data plane, realtime path, and SDK boundaries before integrating.

Updated 2026-08-09•docs/architecture/COMPACT_BUILD_BRIEF.md · docs/architecture/DEPENDENCY_BOUNDARIES.md

Control plane and data plane

The dashboard-facing control plane manages organizations, applications, environments, credentials, channel types, webhooks, usage, audit, and support workflows. The data plane handles app users, channels, memberships, messages, read state, attachments, moderation, and app-user tokens.

BoundaryPrincipalTypical client
Control planeDashboard user sessionDashboardClient, OrganizationClient, ApplicationClient, WebhookClient
Trusted data planeApplication credentialAppServerClient on your server or worker
End-user data planeShort-lived app-user bearer tokenVChatClient, AppUserClient, Flutter VChatClient
RealtimeApp-user token exchanged for one-use connection ticketTypeScript or Flutter realtime connection

Durability and delivery

MongoDB is authoritative. A message mutation and its outbox record commit atomically. Workers publish scoped events after commit. Redis coordinates ephemeral connection, subscription, presence, and typing state; it is not the authority for message history.

  • Writes use exact tenant, application, and environment scope.
  • Durable channel events carry a monotonic per-channel eventSequence.
  • Consumers assume at-least-once delivery and deduplicate by stable eventId.
  • Sequence gaps trigger a documented REST reconciliation path.
  • Presence and typing are ephemeral, TTL-bound, and never written to Drift.

What your application owns

  • Your identity system, user session, and authenticated token endpoint.
  • Secure application credential storage on the backend.
  • UI state, optimistic presentation, cancellation, pagination, and explicit retry choices.
  • Native push provider setup and notification presentation when enabled.
  • Monitoring your integration and preserving request IDs for support without logging content or secrets.
PreviousBuild chat without rebuilding infrastructureNext Authentication and credentials
On this pageControl plane and data planeDurability and deliveryWhat your application owns
Report a docs issue