Next.js • React

ChittChatt – Real-Time Chat App (Discord Clone)

ChittChatt is a full-featured Discord-like real-time messaging application built using Next.js. The goal was to create a scalable, secure, and responsive messaging platform with all the core features of modern chat tools: real-time messaging, group chat, reactions, custom emoji, and end-to-end encryption.

ChittChatt website shown on a device mockup
Client
Internal Project / SaaS Prototype
Year
2024
Industry
Communication / SaaS / Social Networking
Platform
Next.js (Full Stack React Framework)
Built with
Next.js, React

Overview

This was developed as both a learning challenge and a showcase of production-ready chat app architecture, with a special focus on security, speed, and scalability.

Objectives

  • Build a real-time chat app with group channels and DMs
  • Implement end-to-end encryption for all private messages
  • Support reactions, custom emoji, and chat personalization
  • Ensure seamless performance in group conversations
  • Create a clean and responsive UI, desktop and mobile-friendly
  • Replicate and improve upon Discord-like experience

My role

  • Full-stack development using Next.js
  • Built the real-time WebSocket infrastructure
  • Implemented end-to-end encryption architecture
  • Designed and developed custom UI/UX with Tailwind & Framer Motion
  • Developed backend APIs (REST + WebSocket logic)
  • Set up MongoDB database schema and message handling logic

Tech stack & tools

  • Next.js for full-stack React framework
  • WebSockets (Socket.IO) for real-time bidirectional communication
  • MongoDB (with Mongoose) for storing messages, users, and channels
  • JWT + bcrypt for authentication and secure login
  • End-to-End Encryption (E2EE) using AES with client-side encryption keys
  • TailwindCSS for responsive design and UI components
  • Framer Motion for animations and smooth UI transitions

Real-Time Chat with WebSockets

The core of the app uses Socket.IO to enable instant messaging between users. Messages appear in real time, with typing indicators, delivery status, and instant UI updates — delivering a true chatroom experience.

End-to-End Encryption

Implemented AES-based encryption for private messages to ensure zero-knowledge messaging — even the server can’t read the messages. Encryption and decryption occur client-side, and keys are exchanged securely during session initiation.

Group Chats and Channel System

Users can create public or private groups, invite others, and assign admin roles. Each group works like a Discord server with its own message history, emojis, and settings.

  • Message history persists even after refresh
  • Admins can kick or ban users
  • Option to pin messages or mark as important

Custom Emoji and Reactions

Developed a fully custom emoji and reactions system, allowing:

  • Reacting to messages with built-in or custom emojis
  • Emoji picker with search and recently used tabs
  • Reaction counters update live via WebSocket

Group Chats and Channel System

Users can create public or private groups, invite others, and assign admin roles. Each group works like a Discord server with its own message history, emojis, and settings.

  • Message history persists even after refresh
  • Admins can kick or ban users
  • Option to pin messages or mark as important