Skip to content
Amigo Chat App project screenshot
Project

Amigo Chat App

Real-time chat with group conversations, media sharing and voice notes, on a room-based socket model that keeps delivery decoupled from message persistence.

React
Socket.io
Node.js
MongoDB
WebSocket
Real-time
Real-time messaging with WebSocket technologyGroup chats and community channelsPhoto, video, and file sharingVoice notes and media sharing

50K+

Active Users

Real-time

Messaging

E2E

Encrypted

01 // Overview

Real-Time Messaging Platform

Amigo is a feature-rich chat application that enables instant communication through text, voice, and media sharing. Built with modern WebSocket technology for lightning-fast message delivery and a smooth, engaging user experience.

Real-time Chat

Instant message delivery with WebSocket technology, typing indicators, and read receipts for seamless conversations.

Groups & Communities

Create group chats, add members, manage admins, and build community channels for different interests.

Media Sharing

Share photos, videos, documents, and files with fast upload and download speeds.

02 // Features

App Capabilities

Voice Notes

Record and send voice messages with high-quality audio playback.

Search & History

Search through conversations, find old messages, and access complete chat history.

Privacy & Security

End-to-end encryption, block users, and control who can contact you.

Engineering

The Decisions Behind It.

What made this hard?

In real-time messaging, message ordering, delivery guarantees, and reconnection handling are the part nobody sees in a demo and the part that breaks everything in production.

How was the system structured?

The Socket.io event layer is kept separate from the REST layer: persistent data over REST, live events over sockets. A room-based channel model lets group conversations scale horizontally, and message persistence is decoupled from socket delivery so an offline user's message is never lost.

What does the codebase look like now?

Socket events follow a naming convention and a central event registry, which keeps client and server contracts in sync. Reconnection and retry logic is isolated on the client, so network-failure behaviour is controlled from one place.

All engineering case studies