<R/>

Crafting digital experiences

<R/>Rofiq.Full-Stack Product Engineer
AboutServicesWorkBlogRésuméContact
AboutServicesWorkBlogRésuméContact
Let's talk

One project slot open

Got something worth building? Let's make it real.

Start a project
<R/>Rofiq RahmanFull-Stack Product Engineer

Full-stack product engineering for teams that want the thing shipped, measured and maintainable.

Explore

AboutServicesWorkBlogRésuméContact

More

RésuméPrivacy policyUses — tools, hardware and setupRSS feed

Connect

© 2026 Rofiq Rahman. Crafted with Next.js.

Back to top
Back to all projects

Dashboard · case study

Relay — team inbox and live chat

A shared inbox where support agents handle web chat, WhatsApp and email in one thread per customer, with typing indicators, canned replies and a searchable history.

Shared team inbox with a conversation list, a live chat thread and a customer panel

Technology

  • React
  • TypeScript
  • TanStack Query
  • Socket.IO
  • NestJS
  • MongoDB
  • shadcn/ui
Role
Full-stack developer
Client
Cobalt Labs
Year
2024
Category
Dashboard

The problem

Support was three inboxes and a WhatsApp on someone's personal phone. Customers repeated themselves, agents collided on the same ticket, and nobody could answer "how long do we take to reply?"

What I built

  • One thread per customer, merging web chat, WhatsApp and email by contact identity.
  • Presence and typing indicators over WebSockets, with an assignment lock so two agents cannot answer at once.
  • Canned replies with variables, searchable by keystroke.
  • Full-text search across every message, with filters for channel, agent and date.
  • A metrics strip: first response time, resolution time, open threads per agent.

Decisions worth explaining

Optimistic sends with a visible failure state. A message appears instantly and shows a clear retry if the socket dropped. Agents trust the interface because it never silently loses a message.

Virtualised everything. Threads with four thousand messages scroll at sixty frames per second because only what is visible is mounted.

Results

  • Median first response 14 minutes → 4.
  • Duplicate replies effectively eliminated by the assignment lock.
  • Agents handle around 40% more threads per shift.

Need a similar product?

Let's build something useful.

Tell me about the challenge and I'll reply with a practical next step.

Start a conversation
Next projectQuizzly — classroom quiz platform