Messaging infrastructure for multi-tenant SaaS

Build the conversation layer. Keep control of the product.

Add private and group messaging with explicit tenant boundaries, versioned contracts, realtime delivery, and client SDKs your team can understand from day one.

  • Tenant + app scoped
  • REST + WebSocket
  • TypeScript + Flutter
139generated API operations
REST + WSone typed conversation lifecycle
TS + Flutterclient and UI integration paths
Tenant × appscope at every data boundary

The hard parts, made explicit

Chat is more than a message box.

It is an authorization model, a realtime protocol, a storage system, and an operating surface. V Chat keeps those boundaries visible so your team can ship faster without inheriting a black box.

For product teams

Build DMs, group conversations, threads, reactions, read state, and moderation.

Explore capabilities

One coherent messaging surface

The building blocks users already expect.

Start with conversations and grow into the delivery, safety, and operational controls your product needs—without crossing scope boundaries.

Conversations

Messaging that feels native to your product.

Private and group channels, replies, reactions, mentions, read state, unread summaries, search, and moderation under one channel model.

Connected

Realtime with recovery built in.

Authorized subscriptions, monotonic channel sequence, reconnect supervision, gap detection, and REST reconciliation.

Tenant isolation is not optional context.

Every app-owned operation carries immutable organization, application, and environment scope derived from verified credentials.

Delivery ecosystem

Events your systems can trust and reconcile.

Durable outbox publication, signed webhooks, retries, deduplication, audit events, and bounded operator recovery.

Flutter that stays useful offline.

Drift-backed scoped caches, pending writes, lifecycle handling, reconnect, and responsive UI primitives.

Local state synchronized

A contract, not a guessing game

From first token to live channel in readable code.

V Chat separates app-user, trusted server, and dashboard credentials. The SDK makes lifecycle, retry, cancellation, and realtime ownership visible instead of hiding network behavior behind global state.

  • 01 Generated OpenAPI transport plus handwritten resource clients
  • 02 Stable typed errors and bounded request behavior
  • 03 Explicit connect, watch, unsubscribe, and disconnect lifecycle
Read developer docs
TypeScript App user
import { VChatClient } from '@vchatsdk/sdk-typescript';

const client = new VChatClient({
  baseUrl: 'https://api.example.com',
  userId: currentUserId,
  tokenProvider: fetchCurrentUserChatToken,
  webSocketFactory: (url, protocols) =>
    new WebSocket(url, [...protocols]),
});

await client.connect();
const channel = client.channel(
  'messaging',
  'support-123',
);
const watched = await channel.watch(applyTypedEvent);

await channel.sendMessage(
  { text: 'Hello' },
  { messageId: crypto.randomUUID() },
);
Typed lifecycle mutations: no auto-retry

Understand the system you operate

Clear boundaries from your product to every delivery path.

A modular monolith keeps ownership explicit today. Durable state, realtime fan-out, and customer integrations cross versioned ports—not hidden shared writes.

Your product

Web + mobileShort-lived app-user token
Your backendProtected application credential

V Chat

API adaptersApplication use casesDomain rulesInfrastructure ports
tenantId+appId+environment

Delivery + state

MongoDB Redis Workers Webhooks

Durable commit → outbox → authorized fan-out

01Commit before publishDurable state and event cannot silently diverge.
02At-least-once by designStable IDs, deduplication, and explicit recovery.
03Scale after evidenceNo speculative broker, shard, or service sprawl.

Isolation is the product boundary

Designed so one missing scope is a release blocker.

V Chat keeps dashboard sessions, customer application credentials, and app-user tokens separate. Foreign resources follow non-leaking behavior, and secrets stay out of browser and mobile clients.

Review the security model
01

Scope from verified identity

Never trust tenant or app identity from request JSON alone.

02

Bounded public inputs

Allowlisted filters, stable errors, cursors, limits, and explicit DTOs.

03

Signed delivery boundaries

Versioned events, signed webhooks, retry evidence, and safe replay.

04

Redacted operations

No message text, credentials, tokens, or private URLs in shared telemetry.

Deploy on your terms

One reviewed artifact. Clear runtime roles.

V Chat includes repository-prepared AWS and Coolify deployment profiles with separate API, dashboard, and worker processes, external MongoDB and Redis, health gates, and prior-digest rollback.

  • Single-region pooled architecture with explicit limits
  • Runtime secrets injected outside the image
  • Staging-first promotion without rebuild drift
Read the deployment guide

Build the part your users remember

Make messaging part of your product, not your backlog.

Start from the contracts, explore the source, and connect the dashboard when your environment is ready.