quadevs
Case / Real-time · messaging

Real-time text messaging

In-app text chat with presence, typing indicators, read receipts, threading, reactions, attachments. Built for healthcare member portals, support inboxes, and community platforms. End-to-end encryption optional, audit logs ship by default.

WebSocket · Postgres · Redis pub/sub

The problem

Healthcare member portals, support inboxes, and community platforms needed in-app text chat with presence, typing indicators, read receipts, threading, reactions, and attachments. Generic chat SDKs lacked HIPAA-grade audit logs; custom implementations ran into back-pressure and reconnection bugs at scale, which killed the feature in production.

The approach

We built a chat layer on WebSocket with Postgres for persistence and Redis pubsub for presence and ephemeral state. Typing indicators, read receipts, threading, reactions, and attachments work as expected; end-to-end encryption is optional per channel; audit logs ship by default for healthcare contexts. Reconnection buffers messages on the client and replays on resume so a flaky connection does not lose the conversation.

Stack and engineering choices

  • WebSocket transport
  • Postgres message persistence
  • Redis pubsub for presence
  • Typing + read + reaction events
  • Threaded conversations
  • End-to-end encryption optional
  • HIPAA-grade audit logs

Outcome

Member portals, support inboxes, and community platforms run real-time chat without back-pressure stalls. Healthcare contexts ship with audit logs that satisfy compliance review; community contexts ship with the moderation hooks they need. Reconnection is invisible to the user.

Have a project that overlaps this work?

Send a one-paragraph brief. We reply within one business day.

hello@quadevs.com