PulseChat
2024
Full-stack engineer
Web · Client project
Needed a messaging surface with real presence — not just message history, but who's actually online and typing right now.
Built the Socket.io channel architecture, the presence system, and the message persistence layer.
architecture
React client over a Node/Express + Socket.io server, with MongoDB as the message store.
frontend
Optimistic message rendering with reconciliation once the server acknowledges the write, so the UI never waits on round-trip latency to feel responsive.
backend
Express handles auth and channel membership; Socket.io owns real-time delivery, typing indicators, and presence broadcast.
cloud
MongoDB stores message history per channel, indexed for fast recent-message pagination.
Presence is deceptively hard — a closed tab, a dropped connection, and an idle user all look different to the server but need to resolve to the same offline state without flickering. I added a short server-side grace window before marking a user offline, rather than trusting the disconnect event alone.
Delivered a chat experience where presence and typing state feel instant and reliable, not the flaky half-second-behind feeling most quick Socket.io implementations have.