<HC />
Back to Projects
Full-Stack Web DevelopmentActive Development

ConverseCloud

A full-stack language exchange platform that connects users with native speakers for real-time language practice through messaging and video calls. The platform includes user onboarding, friend discovery, chat, video communication, and extensive theme customization.

React 19Vite 7Node.jsExpress.jsMongoDB AtlasMongooseTanStack QueryReact Router v7ZustandAxiosStream Chat APIStream Video APITailwind CSSDaisyUIJWT AuthenticationbcryptjsCookie-Based Authentication

Screenshots

ConverseCloud — Landing / Login Page
Landing / Login Page
ConverseCloud — User Onboarding
User Onboarding
ConverseCloud — Home / Discover Users
Home / Discover Users
ConverseCloud — Real-Time Chat Interface
Real-Time Chat Interface
ConverseCloud — Video Calling Interface
Video Calling Interface

Key Metrics

30+

Real-Time Messaging · Video Calling

JWT + httpOnly Cookies

MERN Stack

Render

Stream Chat · Stream Video

Overview

ConverseCloud is a language-learning social platform that helps users connect with native speakers around the world. Users create profiles, discover compatible language partners, send friend requests, chat in real time, and conduct video calls. The project was built to explore real-world challenges in authentication, WebSocket management, real-time communication systems, and scalable full-stack architecture.

Problem

Most language-learning platforms focus heavily on vocabulary and grammar but provide limited opportunities for real conversational practice with native speakers. Users often struggle to find language partners and maintain meaningful language exchange interactions.

Solution

Built a language exchange platform that matches users based on native and learning languages, enabling them to form connections, communicate through real-time messaging, and practice speaking through integrated video calls.

Architecture

MERN-based architecture with a React frontend and Express backend. User data, profiles, and friend requests are stored in MongoDB Atlas through Mongoose. Authentication is handled using JWT tokens stored in httpOnly cookies. Real-time chat and WebRTC video communication are powered through Stream Chat and Stream Video APIs, while TanStack Query manages server state and caching.

Challenges

  • Coordinating authentication between frontend, backend, and Stream services.
  • Handling authentication state propagation without Redux.
  • Balancing build-vs-buy decisions when integrating managed communication infrastructure.

Lessons Learned

  • Real-time communication architecture.
  • Authentication using JWT and httpOnly cookies.
  • Server state management with TanStack Query.
  • Backend token generation and secure API design.
  • Tradeoffs of managed infrastructure services.
  • MongoDB data modeling and query optimization.
  • Full-stack application deployment and integration.

Future Improvements

  • Refresh token rotation.
  • Redis caching.
  • Recommendation pagination.
  • MongoDB transactions.
  • API rate limiting.
  • Zod validation.
  • Helmet.js security hardening.
  • Automated testing.
  • CI/CD pipelines.
  • Lazy loading and bundle optimization.
  • Docker containerization.

Development Log & Engineering Decisions