07 / 09
Inertia Chat
Real-time messaging as a two-person collaboration with Khaled Alshibani.
I built the Next.js client — chat and group UI, live WebSocket updates, sent/delivered/read status, Zustand state — and worked deep in the Spring Boot server too: the message lifecycle, group roles and membership, and file attachments coordinated across REST and WebSocket.
It supports one-to-one and group conversations with role-based permissions, message history, user presence, audio recording and file sharing, with data in PostgreSQL and files in AWS S3.
What I built
Frontend
- Built the core chat experience: conversation list, chat view, group chat UI and responsive layouts.
- Integrated WebSocket-based real-time messaging with live conversation updates.
- Implemented message status handling (sent, delivered, read) and last-message synchronization.
- Managed client-side state using Zustand and optimized performance through memoization and component refactoring.
- Implemented authentication flows, route protection and UX improvements across the auth and chat screens.
Backend
- Contributed to messaging and chat features, including the message lifecycle and read/delivered tracking.
- Extended group chat functionality with roles, membership management and avatars.
- Added support for file attachments, soft deletion and REST/WebSocket coordination.
- Improved DTO mappings, REST endpoints and error handling related to chat history.