Appearance
Introduction
AW Chat is the in-app support experience for Antarctic Wallet. It wraps Intercom with a custom UI so the look, language, and behavior stay 100% on-brand.
Architecture
Client SDKs ──HTTP + polling──▶ AW Chat backend ──REST──▶ Intercom API
├──▶ PostgreSQL (contacts, devices, csat, complaints,
│ events, reads, reasons, durations)
├──▶ S3 (file uploads)
├──▶ FCM (mobile push)
└──▶ Telegram Bot (TMA push)The SDKs talk only to the AW Chat backend. The backend is the single place that talks to Intercom and holds the secrets.
Critical rules
These are non-negotiable design constraints — good to know before you integrate:
- Clients never talk to Intercom directly. All Intercom calls go through the backend; API keys stay server-side.
- No WebSocket. Message delivery is polling-based (default 4s). There is no persistent connection.
- No WebView on mobile. The React Native SDK uses native components only.
- One-line integration. You import
<AWChat />with props. That's it. - CSAT and complaints bypass Intercom and go to our own database → admin panel.
- No PII in logs. The backend never logs message bodies, seed phrases, or raw files.
Packages
| Package | What it is |
|---|---|
@aw-chat/web | Web + Telegram Mini App SDK |
@aw-chat/react-native | iOS / Android SDK (native components) |
@aw-chat/core | Shared types, API client, stores (used by both SDKs) |
@aw-chat/server | The backend you deploy |
Feature set
- A continuous support thread per user (text + file attachments, images inline in history).
- Topic-gated requests — pick a main → sub reason; the request auto-starts.
- Close → CSAT — closing a request prompts a 1–5 star rating that persists.
- Multiple tickets with a state machine (submitted → in progress → awaiting reply → resolved) and a reply thread.
- Rich operator messages (links, bold, lists) rendered natively, plus reply-to-a-message quoting.
- Unread badges backed by a real per-user read marker.
- CSAT (1–5 stars) and formal complaints (→ admin panel).
- Push notifications (FCM for mobile, Telegram for TMA).
- Diagnostics message (device/app metadata, no PII).
- Light/dark themes, RU/EN locale, brand-color theming.