Corporate communication
Corporate Chat
End-to-end encrypted team chat and the WhatsApp inbox in one app: the team talks to each other and serves customers without switching screens.
- encrypted in the browser
- E2E
- people the system is sized for
- 150

Architecture
- React
- TweetNaCl
- ffmpeg
Features
- 1:1 and group conversations encrypted in the browser, end to end: each room has its own key, sealed for every member — not even the database admin can read them.
- Single WhatsApp inbox: on first contact a menu asks for the department, and the conversation reaches only the right team, always answered by a human.
- Mentions as a to-do list: tag someone with @ and it stays pending in that person's "Mentions" space until they mark it done.
- Reactions, pinned messages, favorites, editing, quoted replies, per-member read receipts and forwarding between internal chats and WhatsApp contacts.
- Encrypted attachments in private storage — documents, photos, audio, video, voice and screen recordings — downloaded through short-lived signed links.
- Push notifications with the app closed, never carrying the message text; online presence, typing indicator and unread counts in real time. Installable as an app.
- PIN or passphrase vault to recover the private key on another device; accounts only by invitation from the department manager.
Infrastructure
- React 19, Vite and Tailwind on the front end; Node serverless functions on Vercel, with a daily cron that collects orphaned files.
- Supabase: Postgres with RLS on every table, Realtime, private Storage, Auth and an Edge Function for push.
- WhatsApp Cloud API (Meta) with signature-verified webhook and the 24-hour window respected; audio and video transcoded with ffmpeg into formats WhatsApp accepts.
- Turnstile, rate limiting, CSP and HSTS; Sentry with minimal telemetry; CI with lint, typecheck, tests, Playwright e2e and a load test.
What it solves
- Cuts three or four open apps down to one.
- Customers on WhatsApp get answered faster, because the message already lands in the right department.
- A request made mid-conversation doesn't get lost: it becomes a mention and stays pending until done.
- Internal conversations nobody outside can read — not even the database provider.
- One place for the whole team, which shortens onboarding for newcomers.
Want something similar?
Tell me how your process works today. In a quick call I get to know the problem and send a proposal with scope, timeline and price.