New: Live Streaming SDK beta — 10,000 free minutes every month on every plan. Read the announcement →

Ship chat, voice & video on infrastructure built for real-time.

Build on a reliable, high-quality real-time engagement platform that delivers messages in under 100 ms worldwide and keeps voice and video crystal-clear and lag-free — with an admin console and HIPAA-ready security included.

NNNN
Chatzic network Public internet
Clear HD video call frame on Chatzic ● HD · 84 ms
Pixelated, laggy video call frame over the public internet ● 240p · 480 ms · packet loss
Supported platforms
From Niftonic — the studio behind 10+ production apps for US clients
⭐ 5.0 on Clutch⚛ 8+ years React Native🔒 HIPAA BAA available🇺🇸 US-hosted
⚛ React Native◆ Flutter iOS · Swift🤖 Android · KotlinJS Web⚙ REST API🔒 HIPAA BAA🇪🇺 GDPR🔔 FCM + APNs🎥 Video calls🎙 Voice notes📡 Live streaming🛡 AI moderation🌐 Translation📊 Admin console

Real-time network

Messages that arrive in 84 milliseconds. Anywhere.

Chatzic runs on a global edge network with intelligent routing. Messages, presence and call signaling take the fastest path to every device — and keep flowing on 3G, in elevators and across network switches.

  • Edge delivery — connections terminate at the nearest region and fan out server-side.
  • Offline-first SDK — queue, retry and sync so nothing is lost when the network drops.
  • Resilient media — adaptive bitrate keeps calls stable at up to 60% packet loss.
How it works
us-east · primaryus-westeu-west · 2027sa-eastme-centralap-south
<84msmedian message latency
99.9%uptime target · public status
60%packet loss tolerated on calls

Chat SDK

Complete in-app messaging — 60+ features, zero infrastructure.

1-on-1, groups up to 1,000 and live chatrooms for 20,000. Photos, video, PDFs, voice notes, reactions, threads, mentions, polls, translation and moderation — with a prebuilt UIKit you can theme in one prop.

  • UIKit or Core SDK — drop in finished screens or build your own UI on the same API.
  • Push that just works — FCM and APNs delivery, retries and PHI-safe previews handled.
  • Offline sync, receipts, presence — the details users notice, on by default.
All chat features
9:41
‹
Emily Carteronline
Today
Just landed in Austin ✈️ sending pics
Gorgeous! Send me the itinerary when you can✓✓ Read
PDFAustin-itinerary.pdf640 KB
0:08
+Message…

Voice & video calling Beta

From a chat thread to a face-to-face call in one tap.

HD video up to 25 participants, group voice up to 50, screen sharing, picture-in-picture and cloud recording — all on the same client and user system as your chat, so a call button is a one-day feature, not a quarter.

  • Ringing push — native full-screen incoming-call UI on iOS and Android.
  • AI noise suppression — keyboards, traffic and cafés filtered out.
  • Call events in chat — missed and ended calls land in the thread automatically.
● 12:08 · HD · encrypted Emily Carter

Live streaming Beta

Interactive live streams with chat at the center.

Host-and-audience streaming with co-hosts, unlimited viewers and a 20,000-member live chatroom under every stream. Reactions, pinned messages, slow mode and moderation come from the chat you already have.

  • Bring viewers on stage — invite anyone from the audience as a co-host mid-stream.
  • RTMP in and out — ingest from OBS, relay to YouTube or Twitch.
  • From $0.29 per 1,000 viewer-minutes — with 10,000 free minutes a month.
Live Streaming SDK
● LIVE · 2,418 ❤️ 12.4k
jake_m this collection is 🔥
olivia.b link to the sweater?? 🧶
host 📌 Drop is live — 20% off for the next 10 min
Say something…❤️🎁

Developer onboarding

Three ways to build. Pick your speed.

01

SDK

Full control. Build your own chat and call UI on the Core SDK's events and data model — React Native, Flutter, Swift, Kotlin, JS.

Start with the SDK
02

UIKit

Ship this week. Prebuilt conversation list, channel screen, composer and call screens — themed to your brand with one prop.

Start with the UIKit
03

No-code console

Operate without engineers. Moderation rules, push credentials, retention, roles and billing — all from the Admin Console.

See the console

Add-ons

Switch on more when you need it.

AnalyticsRetention cohorts, busiest channels, call quality
Cloud recordingCalls and streams, retention controls
TranslationAutomatic, on-demand and push translation
AI moderationImage and text classification before delivery
TranscriptionVoice notes and calls to text · coming 2027

Carrier-grade quality & compliance

Built for apps that can't afford a leak.

Telehealth, finance, education — Chatzic ships with the controls regulated products need, and a BAA when you need one.

HIPAAHIPAA-readyBAA on Pro & Enterprise
GDPRGDPR & CCPADeletion & export APIs
AESAES-256 at restMessages & files
TLSTLS 1.3 in transitEvery connection
SOC2SOC 2 Type IIAudit in progress
LOGAudit logsEvery admin action

Built to scale

Numbers that hold up in production.

60+chat features out of the box
20Kmembers per live chatroom
6SDK platforms, one API
10Kfree call minutes, every month

Product tour

Every conversation, beautifully handled.

Real screens from the Chatzic UIKit. Tap through what your users get on day one — from a simple DM to a group video call.

9:41
‹
Emily Carteronline · typing…
Today
Hey! Did the new build go out? 🙌
Yes — v2.4 is live on TestFlight 🚀✓✓ Read 9:38
Home screen looks so clean!
Glad you like it 😄 push notifications are next✓✓ Read 9:40
+Message…
‹
Launch Week 🚀12 members · 5 online
Emily
App Store approved! @Alex 🎉
🎉 5🔥 3
Jake
0:09
Pinning the launch checklist 📌✓✓ Read by 11
Marcus
Team dinner Friday? 🍕 vs 🌮 — vote below
Olivia
+Message Launch Week…
‹
Jake Milleronline
PDFContract-v3.pdf1.8 MB · PDF
0:42Demo walkthrough 🎬✓✓ Delivered
0:21
Trip pics + receipt 🧾
XLSBudget-2027.xlsx320 KB · Spreadsheet
+Message…
Voice call · end-to-end encrypted Emily Carter 04:32
● 12:08 · HD · encrypted Emily Carter
  • Presence & last seen — see who's online the moment the screen opens.
  • Delivery & read receipts — single and double ticks, with timestamps.
  • Typing indicators — live, per conversation.
  • Inline photos — auto-compressed with CDN thumbnails.
  • Offline sync — messages queue and replay when the network returns.
  • Groups up to 1,000 — plus live chatrooms for 20,000 on Pro.
  • @mentions — mention badges and mention-only push.
  • Emoji reactions — tap-to-react with live counts.
  • Voice notes — record, waveform preview, 1x / 1.5x / 2x playback.
  • Read by N — group read receipts without the noise.
  • Any file type — PDF, Office docs, zips up to 100 MB with virus scanning.
  • Video messages — auto thumbnails, duration badges, in-chat playback.
  • Voice notes — recorded in-app, streamed from the CDN.
  • Image galleries — multi-image messages with a built-in viewer.
  • Server-side thumbnails — generated for you, nothing to build.
  • 1-on-1 & group voice — up to 50 participants. Beta
  • Ringing push — full-screen incoming-call UI on iOS & Android.
  • AI noise suppression — café and keyboard noise filtered out.
  • Call events in chat — missed calls drop a message in the thread.
  • Quality stats — per-call MOS scores in the admin console.
  • Group video up to 25 — grid and active-speaker layouts. Beta
  • Picture-in-picture — keep chatting while on the call.
  • Screen sharing — a screen or a single window.
  • Cloud recording — retention controls and a REST API.
  • Start from any chat — one tap on the call icon in a conversation.
See the UIKit docs

Demo videos

Press play. See it work.

Short interactive demos rendered live from the real UIKit — watch a group chat fill up, a voice note land, and a call start from a thread.

0:00 / 0:14
Group chat with attachmentsReactions, a PDF, a voice note and read receipts — in 14 seconds.
0:00 / 0:12
Telehealth 1-on-1 (HIPAA)A patient–provider thread with images, auto-translation and encrypted delivery.
0:00 / 0:10
Call from a chat threadTap the call icon → ringing → connected video with PiP. Beta.

Admin Console

Your clients get a dashboard, not a support ticket.

Every Chatzic app ships with a web console. Clients see how many users signed up, which chats are active, message volume, flagged content and push health — without asking a developer.

OverviewAcme Health · ProductionLast 30 days ▾
Total users12,480▲ 8.4% this month
Active chats1,932▲ 312 today
Messages today48,210▲ 12%
MAU used7,214 / 10,000Pro plan
Daily active userspeak 3,120
3.2k2.4k1.6kOct 9Oct 24Nov 8
Messages by type48.2k
TextImageVoiceVideoFile 31k8k5k2.4k1.8k
Recent conversationsMessagesStatus
Emily Carter ↔ Dr. Patel212Active
LWLaunch Week 🚀 (12)1,480Active
Jake Miller ↔ Support37Flagged

Launch partners

Launching with the apps we already ship.

Chatzic is being rolled out first inside Niftonic's own client portfolio — telehealth, social communities, marketplaces, food tech and events — before general availability. Case studies will be published here with each launch.

🩺 Therapy & telehealth

Secure 1-on-1 messaging and video visits for a US therapy platform — the reason HIPAA mode exists.

🎲 Social & communities

Interest-based groups, events and moderation tooling for a US social app with growing communities.

🍳 Food & events

Host–guest chat, booking threads and live updates for food-tech and event products.

Start free today.

1,000 MAU, every core feature, the Admin Console and 10,000 call minutes a month. No credit card.

Get started

Talk to an engineer.

Migrating from another provider, need HIPAA, or want us to integrate it for you? We reply within one business day.

Contact sales

Developer resources

Everything you need to ship.

Niftonic Private Limited · Office No. 3, Second Floor, Cowork24 PWD, Islamabad, Pakistan · hello@chatzic.com All systems operational

Home / Features

Everything a modern chat needs. Nothing to build twice.

The same depth you expect from the big chat platforms — organized around five jobs: message, engage, call, moderate and measure.

Message

1-on-1, groups, channels and live chatrooms with every message type your product needs.

Engage

Reactions, threads, mentions, polls and smart push that bring users back daily.

Moderate

Filters, reporting, bans and a moderation queue in the console that keep communities safe.

Analyze

Users, active chats, retention and message analytics plus webhooks and data export.

● Conversations & messages

  • 1-on-1 private chat
  • Group channels (up to 1,000 members)
  • Public channels & live chatrooms (20K)
  • Text, image, video, audio & files
  • Voice notes with waveform
  • GIFs, stickers & emoji
  • Location & custom JSON messages
  • Multi-image galleries
  • Auto media thumbnails (CDN)
  • Message edit, delete & recall
  • Offline messages & auto-sync
  • Multi-device login & sync
  • Server-side message history
  • Scheduled messages
  • Link previews
  • Forward & copy

● Engagement

  • Typing indicators
  • Read & delivery receipts
  • Online presence & last seen
  • Emoji reactions
  • Threads & replies
  • @user & @channel mentions
  • Pinned messages
  • Unread & mention counts
  • Polls & announcements
  • Message search
  • Push (FCM & APNs) + DND hours
  • Auto & on-demand translation
  • Channel mute & archive
  • Starred / saved messages

● Calls & live Beta

  • 1-on-1 & group voice (50)
  • 1-on-1 & group HD video (25)
  • Call invitations from any chat
  • Ringing push (VoIP / FCM)
  • Screen sharing
  • Picture-in-picture
  • AI noise suppression
  • Cloud recording
  • Live streaming with co-hosts
  • RTMP ingest & relay
  • Live chatroom under streams
  • Call quality stats (MOS)

● Moderation & safety

  • Moderation queue in console
  • Profanity & keyword filters
  • Block, mute, ban & deactivate
  • User & message reporting
  • Channel operators & freeze
  • Slow mode for chatrooms
  • Rate limiting & flood protection
  • AI image moderation
  • Pre-send review webhooks
  • Moderation logs
  • Link & domain filters
  • Shadow-ban

● Admin Console

  • Total & new users
  • Active chats & DAU / MAU
  • Messages by type & hour
  • Conversation viewer (RBAC)
  • User search, profile & actions
  • Push credentials & tester
  • Filters & rule editor
  • Webhook manager
  • Team members & roles
  • Usage, invoices & plan
  • Data export (JSON / CSV)
  • Audit log

● Security & compliance

  • HIPAA-ready, BAA available
  • TLS 1.3 in transit
  • AES-256 at rest
  • GDPR deletion & export APIs
  • Audit logs for admin actions
  • Role-based console access
  • IP allowlisting (Enterprise)
  • Custom retention policies
  • US hosting · EU on roadmap
  • SOC 2 Type II (in progress)
  • SSO / SAML (Enterprise)
  • Signed webhooks

Need a feature you don't see?

We ship from a real roadmap and build custom features for Enterprise plans. Tell us what your product needs.

Home / SDKs & implementation

One API. Six SDKs. Ten minutes to first message.

Pick your stack below. Every SDK shares the same concepts, events and data model, so a team shipping on React Native today can add a native iOS or Flutter client tomorrow without re-learning anything.

Create your app

Sign up, create an application in the Admin Console and copy your App ID.

Install the SDK

Add the package for your platform (and the UIKit if you want prebuilt screens).

Connect a user

Initialize with your App ID and connect with a user ID — server-minted tokens in production.

Create a channel & send

Create a direct or group channel, send your first message and listen for incoming ones.

Go live

Turn on push, moderation rules, webhooks and HIPAA mode from the console — no redeploy.

Prefer we do it?

Our team integrates Chatzic into existing apps as a fixed-scope service — SDK wiring, push certificates, UI theming and QA on real devices.

Ask about integration
Terminal
npm install @chatzic/react-native @chatzic/react-native-uikit
cd ios && pod install
App.tsx
import { Chatzic } from '@chatzic/react-native';
import { ChatzicProvider, ConversationList, ChannelScreen }
  from '@chatzic/react-native-uikit';

const client = Chatzic.init({ appId: 'YOUR_APP_ID' });
await client.connect({ userId: 'alex', token });

// Core SDK — your own UI
const channel = await client.channels.create({
  type: 'group', name: 'Design Squad', members: ['alex', 'emily', 'jake'],
});
await channel.send({ text: 'Hello from Chatzic 👋' });
channel.on('message', (m) => console.log(m.sender.nickname, m.text));

// UIKit — prebuilt screens
export default () => (
  <ChatzicProvider client={client} theme={{ mode: 'auto', accent: '#8B5CF6' }}>
    <ConversationList onSelect={(c) => navigate('Channel', { id: c.id })} />
  </ChatzicProvider>
);

React Native 0.71+, new architecture, Hermes and Expo dev builds supported. Full quickstart →

Terminal
flutter pub add chatzic chatzic_uikit
main.dart
import 'package:chatzic/chatzic.dart';
import 'package:chatzic_uikit/chatzic_uikit.dart';

final client = await Chatzic.init(appId: 'YOUR_APP_ID');
await client.connect(userId: 'alex', token: token);

final channel = await client.channels.create(
  type: ChannelType.group, name: 'Design Squad',
  members: ['alex', 'emily', 'jake'],
);
await channel.send(text: 'Hello from Chatzic 👋');
channel.messages.listen((m) => print('${m.sender.nickname}: ${m.text}'));

// Prebuilt screens
ChatzicTheme(mode: ThemeMode.system, accent: Color(0xFF8B5CF6),
  child: ConversationListPage(onSelect: (c) => Navigator.push(context, ChannelPage.route(c.id))));

Flutter 3.16+, iOS 13+, Android 6+. Null-safe, Riverpod & Bloc friendly. Flutter quickstart →

Package.swift / Podfile
// Swift Package Manager
.package(url: "https://github.com/niftonic/chatzic-ios", from: "0.9.0")

# or CocoaPods
pod 'Chatzic'
pod 'ChatzicUIKit'
ChatService.swift
import Chatzic
import ChatzicUIKit

let client = Chatzic.initialize(appId: "YOUR_APP_ID")
try await client.connect(userId: "alex", token: token)

let channel = try await client.channels.create(
  .group(name: "Design Squad", members: ["alex", "emily", "jake"]))
try await channel.send(.text("Hello from Chatzic 👋"))

for await message in channel.messages {
  print("\(message.sender.nickname): \(message.text ?? "")")
}

// SwiftUI prebuilt screens
ConversationListView(client: client)
  .chatzicTheme(.auto(accent: .purple))

iOS 15+, Swift 5.9, async/await, SwiftUI + UIKit components. iOS quickstart →

build.gradle.kts
dependencies {
  implementation("com.chatzic:chat-sdk:0.9.0")
  implementation("com.chatzic:chat-uikit-compose:0.9.0")
}
ChatRepository.kt
import com.chatzic.Chatzic
import com.chatzic.uikit.compose.*

val client = Chatzic.init(context, appId = "YOUR_APP_ID")
client.connect(userId = "alex", token = token)

val channel = client.channels.create(
  type = ChannelType.GROUP, name = "Design Squad",
  members = listOf("alex", "emily", "jake"))
channel.send(Message.text("Hello from Chatzic 👋"))
channel.messages.collect { m -> Log.d("chat", "${m.sender.nickname}: ${m.text}") }

// Jetpack Compose prebuilt screens
ChatzicTheme(mode = ThemeMode.System, accent = Color(0xFF8B5CF6)) {
  ConversationListScreen(client) { c -> nav.navigate("channel/${c.id}") }
}

Android 6+ (API 23), Kotlin coroutines & Flow, Jetpack Compose + View UIKit. Android quickstart →

Terminal
npm install @chatzic/js @chatzic/react
chat.ts
import { Chatzic } from '@chatzic/js';
import { ChatProvider, ConversationList, Channel } from '@chatzic/react';

const client = Chatzic.init({ appId: 'YOUR_APP_ID' });
await client.connect({ userId: 'alex', token });

const channel = await client.channels.get('ch_design_squad');
await channel.send({ text: 'Hello from the web 👋' });

// React components (also Vue & vanilla web components)
<ChatProvider client={client} theme="auto">
  <ConversationList />
  <Channel id={activeId} />
</ChatProvider>

Works in React, Next.js, Vue and plain JS. Same user sessions as your mobile apps. Web quickstart →

Terminal
# Mint a user token from your backend
curl -X POST https://api.chatzic.com/v1/tokens \
  -H "Authorization: Bearer $CHATZIC_SECRET" \
  -d '{"userId":"alex","expiresIn":3600}'

# Send a system message into a channel
curl -X POST https://api.chatzic.com/v1/channels/ch_42/messages \
  -H "Authorization: Bearer $CHATZIC_SECRET" \
  -d '{"sender":"system","text":"Your order #1042 has shipped 📦"}'

# Export last 30 days (JSON)
curl -X POST https://api.chatzic.com/v1/export \
  -H "Authorization: Bearer $CHATZIC_SECRET" \
  -d '{"from":"2026-10-09","format":"json"}'

Node, Laravel, Django, Rails, Go — anything that speaks HTTPS. Signed webhooks for events. API reference →

PlatformPackageMin versionUIKitStatus
React Native@chatzic/react-nativeRN 0.71+✓ Componentsv1.0
FlutterchatzicFlutter 3.16+✓ WidgetsBeta
iOS (Swift)Chatzic (SPM / Pods)iOS 15+✓ SwiftUI + UIKitBeta
Android (Kotlin)com.chatzic:chat-sdkAPI 23+✓ Compose + ViewsBeta
Web (JavaScript)@chatzic/jsES2019 browsers✓ React / Vue / WCBeta
REST Platform APIapi.chatzic.com/v1HTTPS—Live

Home / Pricing

Simple MAU-based subscriptions. No surprises.

Every chat plan includes unlimited messages, every core feature, the UIKit and the Admin Console. You only pay for monthly active users — people who actually connect to chat in a calendar month.

Save ~15% annually

Free

For prototypes, demos and getting to your first message.

$0 /month

1,000 MAU · 25 concurrent

  • All core messaging features
  • UIKit + Core SDK (all platforms)
  • Push notifications
  • Admin Console (1 seat)
  • 30-day message history
  • Community support
Start free

Starter

For apps launching chat to their first real users.

$199 /month

5,000 MAU included · then $0.04/MAU

  • Everything in Free
  • Groups up to 250 members
  • Basic moderation (filters, ban/mute)
  • Admin Console (3 seats)
  • 6-month message history
  • Email support
Choose Starter
Most popular

Pro

For growing products that need the full engagement toolkit and HIPAA.

$399 /month

10,000 MAU included · then $0.04/MAU

  • Everything in Starter
  • Groups up to 1,000 + 20K chatrooms
  • Translation, search & polls
  • Webhooks, analytics & data export
  • Advanced + AI moderation
  • HIPAA mode + signed BAA
  • Admin Console (10 seats, RBAC)
  • 12-month history · Priority support
Choose Pro

Enterprise

For 100K+ MAU, custom retention, SSO and white-label needs.

Custom

100,000+ MAU · volume pricing

  • Everything in Pro
  • 99.9% uptime SLA
  • Custom message retention
  • SSO / SAML · IP allowlisting
  • Dedicated Slack channel + CSM
  • White-label & integration service
Talk to sales

MAU = a unique user who connects to Chatzic in a calendar month (multi-device counts once). Unlimited messages on every plan. Annual billing is prepaid; upgrades apply immediately and are prorated, downgrades apply next cycle. Peak concurrent connections included at 10% of your MAU tier. Prices in USD, excluding tax.

Voice, video & live streaming

Pay per minute. 10,000 free every month.

Real-time media is billed by participant-minute on top of any chat plan (including Free). Every account gets 10,000 free minutes a month across voice, video and streaming — enough to launch.

Voice Calling Beta

$0.79 /1,000 participant-min

1-on-1 and group voice up to 50

  • AI noise suppression included
  • Ringing push (VoIP / FCM)
  • Call quality stats
  • Recording +$0.49 /1,000 min
Included: 10K free min

Video Calling Beta

$2.99 /1,000 participant-min

HD 720p · up to 25 participants

  • Full HD 1080p: $5.99 /1,000 min
  • Screen share at video rate
  • Picture-in-picture, grid layouts
  • Recording +$0.99 /1,000 min

Live Streaming Beta

$0.29 /1,000 viewer-min

Standard latency (3–5s) audience

  • Low-latency interactive: $0.99 /1,000
  • Hosts & co-hosts: $2.99 /1,000 min
  • RTMP ingest / relay: $1.49 /1,000 min
  • Live chatroom included with Chat plan
ItemUnitPriceNotes
Free allowanceper month10,000 minPooled across voice, video & live — every plan
Voice (1-on-1 / group)1,000 participant-min$0.79Up to 50 participants
Video HD 720p1,000 participant-min$2.99Up to 25 participants
Video Full HD 1080p1,000 participant-min$5.99Opt-in per call
Live — audience, standard1,000 viewer-min$0.293–5 s latency, unlimited viewers
Live — audience, interactive1,000 viewer-min$0.99Sub-second, for auctions & Q&A
Live — host / co-host1,000 host-min$2.99On-stage participants
RTMP ingest / relay1,000 min$1.49OBS in, YouTube/Twitch out
Cloud recording1,000 min$0.49 voice · $0.99 video30-day storage included
Translation (chat)1,000 characters$0.015Pro+ · first 500K chars/mo free
AI image moderation1,000 images$1.20Pro+ · first 20K/mo free

A participant-minute is one person connected to a call for one minute (a 10-minute call with 4 people = 40 minutes). Volume discounts from 1M minutes/month. Beta pricing — we'll give 60 days' notice before any change.

Support plans

Support that scales with your launch.

Every plan includes a support tier. Upgrade support independently when a launch, migration or compliance audit needs more hands.

Community

Included

Free plan · Discord, GitHub discussions and docs. Best-effort replies from the team.

Standard

Included

Starter plan · Email support, 2-business-day first response, bug-fix SLAs.

Priority

Included · or $199/mo

Pro plan · 8-hour first response, in-console chat with engineers, integration review call at launch.

Dedicated

From $899/mo

Enterprise · Shared Slack channel, named CSM, 1-hour critical response, quarterly architecture reviews, onboarding package.

Pricing FAQ

Questions, answered.

What counts as a monthly active user (MAU)?

Any unique user who connects to Chatzic through the SDK at least once in a calendar month. A user on three devices counts once. Registered users who never connect that month don't count.

Is there really a free plan?

Yes — 1,000 MAU, every core feature, the Admin Console, no credit card and no time limit. When you grow past it, upgrade in the console and keep all your data.

What happens if I go over my MAU limit?

Nothing breaks. Extra users are billed at $0.04/MAU on Starter and Pro. We email you before overages kick in, and you can set a hard cap in the console if you'd rather block than pay.

How is HIPAA handled?

Pro and Enterprise include HIPAA mode (stricter retention, PHI-safe push previews, console access logging) and a signed Business Associate Agreement. Email hello@chatzic.com to receive the BAA.

Do voice and video cost extra?

They're billed per participant-minute on top of your chat plan, with 10,000 free minutes every month on every plan — including Free. Most early-stage apps never exceed the free allowance.

Can I migrate from Sendbird, Agora or ZEGOCLOUD?

Yes. We provide import tooling for users, channels and history via the Platform API, and our team can run a zero-downtime migration for you using a dual-write cutover.

Is there a message limit?

No. Every plan includes unlimited messages — pricing scales only with MAU, so a highly engaged community doesn't punish you.

How do I cancel?

From the console, anytime. Monthly plans stop at the end of the billing cycle; you can export your full message history first. No lock-in, no exit calls.

Products / Admin Console

Included on every plan

The admin panel your clients will actually open.

Every Chatzic application comes with a web console. Your clients (or your own ops team) see users, active chats, message volume, moderation flags and push health in one place — with role-based access so support staff never see what they shouldn't.

Overview dashboard

Total users, new sign-ups, active chats, messages today, DAU/MAU trend, MAU used vs plan — the numbers a founder checks every morning.

Users

Search any user, see devices, last seen, channels and reports. Deactivate, ban, reset push tokens or export their data for a GDPR request in one click.

Conversations

Browse channels and message counts. Opening message content requires the Reviewer role and is written to the audit log — HIPAA mode can disable it entirely.

Moderation queue

Reports and filter flags land here. Warn, delete, mute or ban with one click; tune profanity, keyword and image rules without a deploy.

Push & integrations

Upload FCM and APNs credentials, test a push to any user, manage webhooks and API keys, see delivery rates and failures.

Analytics & billing

Retention cohorts, messages by type and hour, busiest channels, call minutes used. Invoices, plan changes and MAU caps live here too.

Roles that keep PHI where it belongs.

RoleDashboard & analyticsUser actionsMessage contentBilling & keys
Owner✓✓✓ (logged)✓
Admin✓✓✓ (logged)—
Moderator✓Mute / ban / warnFlagged only—
Analyst✓———
SupportUsers onlyReset push / devices——

Console seats: 1 on Free, 3 on Starter, 10 on Pro, unlimited on Enterprise. Every console action is written to an immutable audit log you can export.

White-label it for your clients.

Agencies and SaaS teams can brand the console with their own logo, colors and domain (console.yourapp.com) on Enterprise — your clients never see Chatzic.

Products / Security & HIPAA

HIPAA BAA on Pro & EnterpriseGDPRSOC 2 Type II — in progress

Security that regulated apps can sign off on.

Telehealth, mental-health, fintech and education teams use Chatzic because the controls are built in — not bolted on. Here's exactly what we do and what you're responsible for.

Encryption everywhere

TLS 1.3 on every client and API connection. Messages, media and backups encrypted at rest with AES-256 using per-application keys rotated quarterly. Media served over signed, expiring CDN URLs.

HIPAA mode

One switch in the console: PHI-safe push (no message previews), content viewing disabled or Reviewer-only with logging, configurable retention (down to 24 hours), and automatic session timeouts in the console.

Business Associate Agreement

Pro and Enterprise customers receive a signed BAA covering Chatzic as your business associate. Our sub-processors (cloud hosting, push providers) are listed and also under BAA.

Audit logs

Every console action — who viewed what, who banned whom, who changed a filter — is written to an immutable log with actor, IP and timestamp, exportable via API.

Data rights & residency

GDPR/CCPA deletion and export APIs per user. Data hosted in the US (us-east) with EU residency on the Enterprise roadmap. Your data is never used to train models.

Access control

Role-based console access, SSO/SAML on Enterprise, IP allowlisting for the Platform API, short-lived user tokens so your API secret never ships inside an app.

Shared responsibility, clearly split.

Chatzic handles

  • Infrastructure security, patching and monitoring
  • Encryption in transit and at rest
  • Backups, disaster recovery and uptime
  • Console RBAC, audit logging and session controls
  • PHI-safe push delivery in HIPAA mode
  • Sub-processor BAAs and annual reviews

You handle

  • Authenticating your users and minting tokens server-side
  • Assigning console roles and reviewing the audit log
  • Device-level security in your app (biometrics, screen-lock)
  • Your own privacy policy and patient consent
  • Choosing retention periods that match your policies
  • Signing and returning the BAA before storing PHI
HIPAAHIPAA-readyBAA available
GDPRGDPR & CCPADeletion & export
AESAES-256At rest
TLSTLS 1.3In transit
SOC2SOC 2 Type IIIn progress · 2027
PENAnnual pen-testReport on request

Home / Support

Support from the engineers who built it.

Open a ticket, browse the docs, or join the community — and pick a support plan that matches your launch.

Support plans & pricing

Ready to select a support plan?

Each chat plan includes a support tier. Upgrade support on its own when you're launching, migrating or going through a compliance audit.

PlanIncluded withFirst responseChannelsStandalone price
CommunityFreeBest effortDiscord, GitHub, docs—
StandardStarter2 business daysEmail, ticket portalIncluded
PriorityPro8 business hours+ In-console chat, launch review call$199/mo
DedicatedEnterprise1 hour (critical) · 4 hours (normal)+ Shared Slack, named CSM, quarterly reviews, onboardingFrom $899/mo

Submit a ticket

Thanks! This preview form doesn't send yet — please email support@chatzic.com with these details and we'll reply within your plan's response time.

Support email

support@chatzic.com

Read by engineers. Include your App ID for fastest routing.

System status

All systems operational

Realtime, Push, Media CDN, Platform API, Console — 99.97% over the last 90 days. Subscribe to incidents at status.chatzic.com.

Hours

Priority & Dedicated: 24/7 for critical issues.
Standard: Mon–Fri, 9am–6pm US Eastern + Pakistan hours, so you get coverage across the day.

Products / Video Calling

Beta · early access open

Video Calling SDK for real conversations.

1-on-1 and group video on the same SDK core as Chatzic — start a call straight from a chat thread, with invitations, ringing push and recording handled for you.

Beta is free to try — 10,000 minutes/month included — email hello@chatzic.com

1-on-1 & group calls

Up to 25 participants with dynamic grid layouts, active-speaker view and picture-in-picture.

Call invitations from chat

Ring any chat member with accept/decline signaling and missed-call messages dropped back into the thread.

Screen sharing

Share a screen or a single app window — ideal for support, telehealth and tutoring flows.

Cloud recording

Record calls to cloud storage with a REST API to fetch, retain or auto-delete recordings.

Network adaptation

Adaptive bitrate and resolution keep calls stable on weak mobile networks instead of dropping.

Device controls

Camera flip, mute, speaker routing and in-call quality stats exposed as simple SDK methods.

Pricing

HD Video

$2.99 /1,000 participant-min

720p group & 1-on-1 calls

Recording

$0.99 /1,000 min

Cloud recording · 30-day storage

Included

Free minutes

10,000 /month

Free participant-minutes on every plan

Beta pricing — 60 days' notice before any change. 10,000 free minutes every month on every plan. Full table on the pricing page.

Products / Voice Calling

Beta · early access open

Voice Calling SDK that sounds like you're there.

Low-latency group voice with AI noise suppression and ringing push — built into the same client, channels and user system as your chat.

Beta is free to try — 10,000 minutes/month included — email hello@chatzic.com

Group voice up to 50

Voice rooms and group calls with speaker indicators and raise-hand events.

AI noise suppression

Keyboard clatter, traffic and café noise filtered out before it reaches the other side.

Ringing push

Full-screen incoming-call UI via VoIP push on iOS and high-priority FCM on Android.

Call quality stats

Per-call MOS scoring, jitter and packet-loss metrics in the dashboard for support debugging.

Recording & voicemail

Record calls or capture missed-call voice notes straight into the chat thread.

Seamless with chat

One SDK, one connection, one user system — add a call button to any conversation in a day.

Pricing

Voice

$0.79 /1,000 participant-min

1-on-1 and group voice

Recording

$0.49 /1,000 min

Cloud recording & storage

Included

Free minutes

10,000 /month

Free participant-minutes on every plan

Beta pricing — 60 days' notice before any change. 10,000 free minutes every month on every plan. Full table on the pricing page.

Products / Live Streaming

Beta · early access open

Interactive live streams with chat at the center.

Host-and-audience streaming with co-hosts, reactions and Chatzic chatrooms built in — the audience is already in your chat system, so engagement features come free.

Beta is free to try — 10,000 minutes/month included — email hello@chatzic.com

Host + co-hosts

Invite viewers on stage as co-hosts mid-stream, with seat management and host controls.

Unlimited audience

Audience joins over low-latency streaming while chatting in a 20,000-member live chatroom.

Built-in live chat

Reactions, pinned messages, slow mode and moderation — the full chatroom toolkit under the stream.

Low-latency mode

Sub-second interactive mode for auctions and Q&A, or standard mode for big broadcasts.

RTMP in & out

Ingest from OBS or relay your stream out to YouTube and other RTMP destinations.

Stream events API

Webhooks for stream start/end, viewer counts and chat activity to drive your own features.

Pricing

Audience

$0.29 /1,000 viewer-min

Standard latency · unlimited viewers

Hosts & co-hosts

$2.99 /1,000 host-min

Interactive, on-stage participants

Included

Free minutes

10,000 /month

Free streaming minutes on every plan

Beta pricing — 60 days' notice before any change. 10,000 free minutes every month on every plan. Full table on the pricing page.

Home / About us

The studio behind Chatzic.

Chatzic is built by Niftonic Private Limited — a software studio founded in 2022 in Islamabad that designs, builds and maintains production React Native apps for clients across the USA.

2022Niftonic founded
10+production apps shipped
5.0verified Clutch rating
8+years of React Native

Why we built it

Almost every app we've shipped for a client needed chat — marketplaces, communities, booking apps, social products. Each time, the choice was the same: spend months building messaging infrastructure, or pay enterprise prices for a platform heavier than the product needed. So we built the chat layer we kept wishing existed: React Native-first, complete out of the box, and priced for teams that are still growing.

How we work

Product-grade defaults

Offline sync, receipts, push and moderation aren't add-ons — they're what chat means. Everything a real app needs is on by default.

Honest pricing

Unlimited messages, clear MAU tiers, published overage rates and a hard-cap option. No "contact sales" wall in front of basic numbers.

Direct support

You talk to the engineers who build the product — the same way Niftonic's agency clients have worked with us for years.

Chatzic is led by Niftonic founder & CEO Taimoor Hassan and the engineering team behind our client apps. The studio's agency work continues at niftonic.com — and it's why Chatzic comes with something no other chat platform offers: a team that can integrate it into your app for you.

Home / Contact us

Talk to a real engineer.

Questions about pricing, a migration, early access, or having our team integrate Chatzic for you — we reply within one business day.

Thanks! This preview form doesn't send yet — please email hello@chatzic.com and we'll reply within one business day.

Email

hello@chatzic.com

Sales, support and early access — one inbox, read by engineers.

Office

Niftonic Private Limited
Office No. 3, Second Floor,
Cowork24 PWD, Islamabad, Pakistan

Mon–Sat · 10:00–19:00 PKT (GMT+5)
Overlapping hours kept for US clients.

What to include

Your platform (React Native?), expected MAU, launch timeline, and whether you want our team to handle the integration — we'll come back with a concrete recommendation, not a sales script.

Docs / Introduction / Platform overview

Platform overview

Chatzic is a hosted chat platform: we run the real-time infrastructure, storage, push delivery and moderation tooling, and you integrate it through our SDKs and APIs. You keep full control of your UI and your user identity — Chatzic only needs a user ID.

What you get

  • Client SDK — connects your app to Chatzic over an encrypted realtime socket, with local caching and offline sync.
  • UIKit — prebuilt, themeable screens (conversation list, channel screen, composer) built on the SDK.
  • Platform API — server-side REST API for users, channels, messages, moderation and data export.
  • Admin Console — a web dashboard for you and your clients: users, active chats, moderation, push, analytics and billing, with roles and audit logs.
  • Webhooks — event callbacks to your backend for every message and channel event.

How a message flows

Your app connects with the Client SDK → the sender publishes a message → Chatzic persists it, fans it out to online members over the socket, and delivers push to offline members → your backend optionally receives the event on a webhook. Nothing in that path requires your own servers.

Supported platforms

PlatformPackageStatus
React Native (iOS + Android)@chatzic/react-nativeLive
React Native UIKit@chatzic/react-native-uikitLive
Platform API (REST)api.chatzic.com/v1Live
Flutterchatzic (pub.dev)Beta
iOS (Swift)Chatzic (SPM / CocoaPods)Beta
Android (Kotlin)com.chatzic:chat-sdkBeta
JavaScript / Web@chatzic/jsBeta
Admin Consoleconsole.chatzic.comLive

Next steps

Docs / Introduction / Core concepts

Core concepts

Application & App ID

An application is an isolated environment with its own users, channels and settings, identified by an App ID. Create one per product, plus a separate one for staging — data never crosses applications.

Users & tokens

A user is any identity in your system, referenced by a string userId you choose. In development you can connect with just a user ID; in production your server mints a short-lived access token per user so clients never hold secrets. See Users & auth.

Channels

TypeMembersBest for
direct21-on-1 conversations, DMs
groupup to 1,000Teams, friend groups, order threads
publicunlimited joinsCommunities anyone can discover and join
chatroom20,000 liveLive events and streams — ephemeral membership

Messages

Messages carry a type — text, image, video, audio, file, location or custom (arbitrary JSON) — plus optional metadata, a thread parent and reactions. Media is uploaded to Chatzic storage and served from a CDN with auto-generated thumbnails.

MAU

A monthly active user is a unique userId that connects at least once in a calendar month. Multi-device connections count once; registered users who never connect don't count. Plans are priced on MAU — messages are unlimited.

Regions

Applications are hosted in the US (us-east) today; EU residency is on the roadmap for Enterprise.

Docs / Introduction / Plans & limits

Plans & limits

Every plan includes unlimited messages, the full SDK + UIKit, and push. Limits below are per application; see Pricing for monthly prices.

LimitFreeStarterProEnterprise
MAU included1,0005,00010,000100,000+
Peak concurrent255001,000Custom
Group members1002501,000Custom
Live chatroom size——20,000Custom
Message history30 days6 months12 monthsCustom
Translation & search——✓✓
Webhooks & export——✓✓
SupportCommunityEmailPrioritySlack + CSM

MAU beyond your included amount is billed at $0.04/MAU on Starter and Pro. You can set a hard MAU cap in the dashboard if you'd rather block new connections than pay overage.

Docs / Quickstart / React Native SDK

React Native quickstart

Send your first message from a bare React Native app in about ten minutes.

Prerequisites

  • React Native 0.71+ (new architecture and Hermes supported; Expo via dev builds)
  • Node 18+, Xcode + CocoaPods for iOS, Android Studio for Android
  • A Chatzic application — create one in the dashboard and copy its App ID

1 — Install

Terminal
npm install @chatzic/react-native
cd ios && pod install

2 — Initialize and connect

chat.ts
import { Chatzic } from '@chatzic/react-native';

export const client = Chatzic.init({ appId: 'YOUR_APP_ID' });

await client.connect({ userId: 'alex', nickname: 'Alex' });
Production: connect with a server-minted token instead of a bare user ID — client.connect({ userId, token }). See Users & auth.

3 — Create a channel and send

chat.ts
const channel = await client.channels.create({
  type: 'direct', members: ['alex', 'emily'],
});

await channel.send({ text: 'Hello from Chatzic 👋' });

channel.on('message', (msg) => console.log(msg.text));

4 — Run it

  • Run the app on two simulators (or a device + simulator) with two different user IDs.
  • Send from one — it appears on the other in real time, with delivery receipts.
  • Kill one app and send again — reopen it to watch offline sync replay the missed messages.

Next: drop in the UIKit for ready-made screens, or wire up push notifications.

Docs / Quickstart / UIKit

UIKit

The UIKit gives you production-ready chat screens on top of the SDK: a conversation list, a channel screen with composer, media picker, reactions, threads and typing indicators — all themeable.

Install

Terminal
npm install @chatzic/react-native @chatzic/react-native-uikit
npm install react-native-safe-area-context @react-native-community/netinfo
cd ios && pod install

Wrap your app

App.tsx
import { ChatzicProvider, ConversationList, ChannelScreen }
  from '@chatzic/react-native-uikit';

<ChatzicProvider
  appId="YOUR_APP_ID"
  user={{ id: 'alex' }}
  theme={{ mode: 'auto', accent: '#5B8CFF', bubbleRadius: 16 }}>
  {/* your navigator */}
</ChatzicProvider>

Screens

  • <ConversationList /> — channels sorted by activity with unread badges and last-message preview.
  • <ChannelScreen channelId /> — messages, composer, media, reactions, threads, typing.
  • <ChannelCreate /> — member picker for starting new conversations.

Theming

Every color, radius and font comes from the theme prop; mode: 'auto' follows the device's dark/light setting. For deeper changes, each screen accepts render overrides (e.g. renderMessage) so you can replace any part without forking the kit.

Docs / Quickstart / Push notifications

Push notifications

Chatzic delivers push to offline members automatically once credentials are configured — delivery, retries, token cleanup and unread-count badges are handled by the platform.

1 — Configure credentials

  • Android (FCM): upload your Firebase service-account JSON in Dashboard → Push.
  • iOS (APNs): upload your .p8 auth key with Key ID and Team ID.

2 — Register the device token

push.ts
import messaging from '@react-native-firebase/messaging';

const token = await messaging().getToken();
await client.push.register({ fcmToken: token });   // Android
await client.push.register({ apnsToken: apns });  // iOS

3 — Test & tune

  • Use Dashboard → Push tester to send a test notification to any user.
  • Per-user quiet hours: client.push.setDnd({ from:'22:00', to:'07:00' }).
  • Per-channel mute: channel.setPush('off').
Note: push requires a development build on Expo (native modules) — Expo Go won't receive notifications.

Docs / Guides / Users & auth

Users & auth

Creating users

Users are created automatically on first connect, or explicitly from your backend:

Terminal
curl -X POST https://api.chatzic.com/v1/users \
  -H "Authorization: Bearer $CHATZIC_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"id":"alex","nickname":"Alex","avatarUrl":"https://…"}'

Access tokens (production)

Your server mints a short-lived token per user; the client connects with it, so your API secret never ships in the app:

server.ts
// POST /v1/tokens  → { token, expiresAt }
const { token } = await fetch('https://api.chatzic.com/v1/tokens', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.CHATZIC_SECRET}` },
  body: JSON.stringify({ userId: 'alex', expiresIn: 3600 }),
}).then(r => r.json());

Presence & profiles

  • Presence is automatic — subscribe with client.presence.subscribe([userIds], cb) for online/offline and last-seen.
  • Update profiles client-side (client.updateProfile({ nickname, avatarUrl })) or from the REST API.
  • Blocking: client.users.block(userId) hides a user's messages both ways.

Docs / Guides / Channels

Channels

Create, join, leave

channels.ts
const channel = await client.channels.create({
  type: 'group', name: 'Project Falcon',
  members: ['alex', 'emily'],
  metadata: { projectId: 'falcon-42' },
});

await channel.invite(['jake']);
await client.channels.join('public-channel-id');  // public only
await channel.leave();

Listing & metadata

  • client.channels.list({ limit: 20 }) returns the user's channels sorted by latest activity, with unread counts.
  • channel.update({ name, metadata }) — metadata is arbitrary JSON (order IDs, listing IDs, anything your product needs).

Operators & freeze

  • Operators can delete messages, mute and ban within their channel: channel.addOperator(userId).
  • channel.freeze() makes a channel read-only (announcements, post-event lockdown); operators can still post.

Docs / Guides / Messages

Messages

Sending

messages.ts
await channel.send({ text: 'Invoice sent ✅' });
await channel.send({ type: 'image', file: localUri });        // uploads + thumbnail
await channel.send({ type: 'custom', data: { kind: 'offer', amount: 250 } });
await channel.send({ text: 'Replying…', parentId: msg.id });  // thread reply

Edit, delete, react

messages.ts
await msg.edit({ text: 'Invoice sent (v2) ✅' });
await msg.delete();
await msg.reactions.add('🔥');
await msg.markRead();   // read receipts

History & search

messages.ts
const page = await channel.messages.list({ before: oldest.id, limit: 50 });
const hits = await client.search.messages({ query: 'invoice' }); // Pro

Offline behavior: messages sent on a dead connection are queued and retried; on reconnect the SDK syncs missed messages and receipts automatically.

Docs / Guides / Moderation

Moderation

Dashboard rules (no code)

  • Filters: profanity lists (per-language), custom keyword and domain filters — block, mask or flag.
  • Rate limiting: per-user message throttles and flood protection.
  • AI image moderation (Pro): flags or blocks unsafe images before delivery.

API actions

moderation.ts
await client.moderation.mute({ channelId, userId, seconds: 600 });
await client.moderation.ban({ channelId, userId, seconds: 86400 });
await client.moderation.report({ messageId, reason: 'spam' });

Review queue

User reports and filter flags land in Dashboard → Moderation, where operators can delete messages, warn, mute or ban — every action is written to the moderation log. On Pro, a pre-send webhook can route messages through your own review service before delivery.

Docs / Guides / Webhooks

Webhooks

Register an HTTPS endpoint in Dashboard → Webhooks and Chatzic POSTs events to it (Pro and above). Delivery is retried with backoff for 24 hours.

Events

EventFires when
message.sentAny message is delivered to a channel
message.deletedA message is deleted by user or moderator
channel.createdA channel is created
member.joined / member.leftChannel membership changes
user.reportedA user or message is reported

Payload

payload.json
{
  "event": "message.sent",
  "appId": "app_8f2…",
  "channel": { "id": "ch_42", "type": "group" },
  "message": { "id": "msg_911", "text": "Hello", "sender": "alex" },
  "sentAt": "2026-11-08T10:02:11Z"
}

Verifying signatures

Every delivery carries X-Chatzic-Signature: an HMAC-SHA256 of the raw body using your webhook secret. Reject anything that doesn't match before trusting the payload.

Docs / API reference / REST API

REST API

Base URL: https://api.chatzic.com/v1. Authenticate with Authorization: Bearer <API secret>.

Server-side only. The API secret grants full access to your application — never ship it in a mobile or web client. Clients use short-lived user tokens instead.

Endpoints

MethodPathPurpose
POST/usersCreate or upsert a user
GET/users/{id}Fetch a user
POST/tokensMint a user access token
POST/channelsCreate a channel
POST/channels/{id}/messagesSend a message as any user or as system
GET/channels/{id}/messagesList message history
POST/moderation/bansBan or mute a user
POST/exportStart a data export (JSON/CSV)

Rate limits

100 requests/second per endpoint on paid plans (10/s on Free). Responses include X-RateLimit-Remaining; a 429 carries Retry-After.

Docs / API reference / Error codes

Error codes

Errors return an HTTP status plus a stable code and human-readable message. The SDK surfaces the same codes on error.code.

CodeHTTPMeaningFix
invalid_param400A field is missing or malformedCheck the message for the field name
invalid_token401Token is malformed or revokedMint a fresh token
token_expired401Token lifetime elapsedRefresh via your token endpoint
user_banned403User is banned from the channel/appLift the ban in moderation
channel_frozen403Channel is read-onlyUnfreeze, or post as operator
not_found404User, channel or message doesn't existVerify the ID
already_exists409Duplicate createUse upsert or fetch the existing resource
rate_limited429Too many requestsBack off per Retry-After
internal500Something broke on our sideRetry; check status.chatzic.com

Docs / Quickstart / Flutter

Flutter quickstart

Flutter 3.16+, iOS 13+, Android 6+. The Dart SDK mirrors the React Native API one-to-one.

1 — Install

Terminal
flutter pub add chatzic chatzic_uikit
cd ios && pod install

2 — Initialize, connect, send

chat_service.dart
import 'package:chatzic/chatzic.dart';

final client = await Chatzic.init(appId: 'YOUR_APP_ID');
await client.connect(userId: 'alex', token: await api.chatToken());

final channel = await client.channels.create(
  type: ChannelType.direct, members: ['alex', 'emily']);
await channel.send(text: 'Hello from Flutter 👋');

channel.messages.listen((m) => debugPrint('${m.sender.nickname}: ${m.text}'));

3 — Prebuilt widgets

main.dart
import 'package:chatzic_uikit/chatzic_uikit.dart';

ChatzicTheme(
  mode: ThemeMode.system, accent: const Color(0xFF8B5CF6),
  child: ConversationListPage(
    client: client,
    onSelect: (c) => Navigator.push(context, ChannelPage.route(c.id)),
  ),
)
State management: the SDK exposes plain Streams, so it plugs into Riverpod, Bloc or Provider without adapters.

Docs / Quickstart / iOS (Swift)

iOS quickstart

iOS 15+, Swift 5.9, async/await. Ships SwiftUI and UIKit components.

1 — Install

Package.swift
.package(url: "https://github.com/niftonic/chatzic-ios", from: "0.9.0")
// targets: "Chatzic", "ChatzicUIKit"

2 — Initialize, connect, send

ChatService.swift
import Chatzic

let client = Chatzic.initialize(appId: "YOUR_APP_ID")
try await client.connect(userId: "alex", token: try await api.chatToken())

let channel = try await client.channels.create(.direct(members: ["alex", "emily"]))
try await channel.send(.text("Hello from iOS 👋"))

for await message in channel.messages {
  print("\(message.sender.nickname): \(message.text ?? "")")
}

3 — SwiftUI screens

ContentView.swift
import ChatzicUIKit

struct ContentView: View {
  var body: some View {
    ConversationListView(client: client) { channel in
      ChannelView(channelId: channel.id)
    }
    .chatzicTheme(.auto(accent: .purple))
  }
}
Push: add the Push Notifications capability and upload your APNs .p8 key in the console; call client.push.register(apnsToken:) in didRegisterForRemoteNotificationsWithDeviceToken.

Docs / Quickstart / Android (Kotlin)

Android quickstart

Android 6+ (API 23), Kotlin coroutines and Flow, Jetpack Compose or classic Views.

1 — Install

build.gradle.kts
dependencies {
  implementation("com.chatzic:chat-sdk:0.9.0")
  implementation("com.chatzic:chat-uikit-compose:0.9.0")
}

2 — Initialize, connect, send

ChatRepository.kt
val client = Chatzic.init(context, appId = "YOUR_APP_ID")
client.connect(userId = "alex", token = api.chatToken())

val channel = client.channels.create(ChannelType.DIRECT, members = listOf("alex", "emily"))
channel.send(Message.text("Hello from Android 👋"))

viewModelScope.launch {
  channel.messages.collect { m -> Log.d("chat", "${m.sender.nickname}: ${m.text}") }
}

3 — Compose screens

MainActivity.kt
ChatzicTheme(mode = ThemeMode.System, accent = Color(0xFF8B5CF6)) {
  NavHost(nav, startDestination = "list") {
    composable("list") { ConversationListScreen(client) { nav.navigate("channel/${it.id}") } }
    composable("channel/{id}") { ChannelScreen(client, it.arguments!!.getString("id")!!) }
  }
}
Push: add Firebase Messaging, upload your service-account JSON in the console, and forward the FCM token with client.push.register(fcmToken).

Docs / Quickstart / Web (JavaScript)

Web quickstart

Works in React, Next.js, Vue, Svelte or plain JavaScript (ES2019+). Same user sessions as your mobile apps — a user signed in on iOS can continue on the web.

1 — Install

Terminal
npm install @chatzic/js @chatzic/react

2 — Initialize, connect, send

chat.ts
import { Chatzic } from '@chatzic/js';

const client = Chatzic.init({ appId: 'YOUR_APP_ID' });
await client.connect({ userId: 'alex', token: await api.chatToken() });

const channel = await client.channels.create({ type: 'direct', members: ['alex', 'emily'] });
await channel.send({ text: 'Hello from the web 👋' });
channel.on('message', (m) => console.log(m.sender.nickname, m.text));

3 — React components

App.tsx
import { ChatProvider, ConversationList, Channel } from '@chatzic/react';

<ChatProvider client={client} theme="auto">
  <ConversationList onSelect={setActive} />
  <Channel id={active?.id} />
</ChatProvider>
Browser push: Web Push (VAPID) is supported — register the subscription with client.push.register({ webPush }).

Docs / Guides / Voice & video calls Beta

Voice & video calls

Calls use the same client, users and channels as chat. Enable Calls for your application in the console, then:

calls.ts
// Start a video call with everyone in a channel
const call = await client.calls.start({ channelId: channel.id, video: true });

// Incoming call (ringing push wakes the app)
client.calls.on('incoming', async (incoming) => {
  showIncomingUI(incoming.caller);
  await incoming.accept({ video: true });   // or incoming.decline()
});

// Render with the UIKit
<CallScreen call={call} layout="grid" onEnd={() => call.end()} />

// Controls
call.mute(); call.toggleCamera(); call.shareScreen(); call.startRecording();

Events in chat

Every call writes a call-type message into the channel (started, missed, ended with duration), so your conversation history stays complete without extra code.

Live streaming

Streams follow the same shape: client.live.start({ channelId }) for the host, client.live.join(streamId) for viewers, and stream.inviteToStage(userId) for co-hosts. The channel doubles as the live chatroom.

Docs / Console & compliance / Admin Console

Admin Console

The console at console.chatzic.com is where you create applications and where your clients manage their chat day to day. Each application has its own team, roles and settings.

Sections

SectionWhat it showsActions
OverviewTotal users, new users, active chats, messages today, DAU/MAU chart, MAU used vs planDate range, export PNG/CSV
UsersSearch, profile, devices, last seen, channels, reportsDeactivate, ban, reset push, GDPR export/delete
ConversationsChannels, member counts, message volumeFreeze, add operator, view content (Reviewer role, logged)
ModerationReports and filter flags queueWarn, delete, mute, ban; edit filters and rules
PushFCM/APNs credentials, delivery rates, failuresUpload keys, send test push
AnalyticsRetention cohorts, messages by type/hour, call minutesExport
SettingsAPI keys, webhooks, HIPAA mode, retention, team & rolesRotate keys, add members, audit log
BillingPlan, MAU cap, invoices, usageUpgrade, set hard cap, download invoices

Inviting your client

  1. Settings → Team → Invite; choose a role (Owner, Admin, Moderator, Analyst, Support).
  2. They receive a magic-link email and land directly in their application.
  3. Enterprise: enable white-label to serve the console from your own domain with your logo.

Embedding metrics in your own admin app

The same numbers are available from the Platform API (GET /v1/metrics/overview, GET /v1/metrics/daily) so you can surface them inside the companion admin apps you already build for clients.

Docs / Console & compliance / HIPAA implementation

HIPAA implementation guide

Prerequisite: a Pro or Enterprise plan and a signed BAA. Request it from the console (Settings → Compliance) or email hello@chatzic.com. Do not store PHI before the BAA is countersigned.

1 — Turn on HIPAA mode

Settings → Compliance → HIPAA mode. This applies per application and switches on:

  • PHI-safe push — notifications say "New message from Dr. Patel" with no message body.
  • Content viewing lock — console users cannot open message content unless you grant the Reviewer role; every view is audit-logged.
  • Retention — choose 24 h to 7 years; expired messages are hard-deleted from primary storage and backups within 30 days.
  • Session timeout — console sessions expire after 15 minutes of inactivity.
  • Export controls — data exports require Owner role and 2FA.

2 — In your app

  • Mint tokens server-side with short lifetimes (≤ 1 hour) and require your own authentication (MFA recommended) before issuing one.
  • Turn off OS-level notification previews for your app or rely on PHI-safe push.
  • Use client.setLocalCache({ encrypted: true }) so on-device message cache is encrypted with the device keystore.
  • Call client.disconnect({ wipeCache: true }) on logout.

3 — Operational checklist

  • Assign console roles by least privilege; review the audit log monthly.
  • Keep the sub-processor list (available in the console) in your own risk register.
  • Use the GDPR/HIPAA deletion API for patient data requests: DELETE /v1/users/{id}?purge=true.
  • Request our latest pen-test summary and SOC 2 progress letter for your compliance file.