π Anonymous Real-Time Chat Platform
Connect with random strangers worldwide through secure WebSocket communication
Quick Start β’ Features β’ Documentation β’ Architecture
ChatMe is a modern anonymous chat platform that connects users with random strangers in real-time. Built with cutting-edge web technologies, it offers seamless cross-platform experience on web and mobile.
No registration β’ No data collection β’ Complete anonymity
- π Anonymous Chatting - No login or registration required
- β‘ Real-Time Messaging - Instant WebSocket-based communication
- π Global Matching - Queue-based algorithm pairs users worldwide
- π Smart Reconnection - Automatic reconnection with exponential backoff
- π± Cross-Platform - Web app and native mobile apps (iOS & Android)
- π¨ Modern UI with glassmorphism and dark/light themes
- π API key authentication and CORS protection
- π Edge computing with Cloudflare Workers
- πΎ Stateful connections with Durable Objects
- π Emoji support and quick reactions
- π Environment-aware logging system
chatme/
βββ chatme-web/ # React web application
β βββ README.md # Web app documentation
βββ chatme-app/ # React Native mobile application
β βββ README.md # Mobile app documentation
βββ chatme-backend/ # Cloudflare Workers backend
βββ README.md # Backend documentation
| Project | Description | Tech Stack |
|---|---|---|
| Web App | React-based web application | React 19, TypeScript, Vite, Framer Motion |
| Mobile App | Native mobile application | React Native 0.82, TypeScript |
| Backend | WebSocket server | Cloudflare Workers, Durable Objects |
- Node.js 20+
- npm or yarn
- Cloudflare account (for backend deployment)
- Android Studio or Xcode (for mobile development)
-
Clone the repository
git clone https://github.com/yourusername/chatme.git cd chatme -
Choose your platform
Each project has its own detailed setup guide:
- Web App Setup β - For web development
- Mobile App Setup β - For iOS/Android development
- Backend Setup β - For deploying the server
# 1. Start Backend
cd chatme-backend
npm install
npx wrangler dev
# 2. Start Web App (in new terminal)
cd chatme-web
npm install
npm run dev
# 3. Start Mobile App (in new terminal)
cd chatme-app
npm install
npm run android # or npm run ios- Web: React 19, TypeScript, Vite, Framer Motion
- Mobile: React Native 0.82, TypeScript
- WebSocket API for real-time communication
- Environment-aware logging
- Modern UI with animations
- Cloudflare Workers - Serverless edge computing
- Durable Objects - Stateful WebSocket connections
- TypeScript
- Queue-based matching algorithm
- Persistent state with hibernation support
- Web App Documentation - Setup, development, and deployment
- Mobile App Documentation - Environment setup, building, and testing
- Backend Documentation - API, deployment, and monitoring
- Quick Start Guide - Fast setup for testing
- Integration Guide - Complete integration walkthrough
- Message Flow - WebSocket message protocol
- Implementation Summary - Architecture overview
graph LR
A[Client] -->|WebSocket| B[Cloudflare Worker]
B -->|Route| C[Durable Object]
C -->|Queue| D[Matching Algorithm]
D -->|Match| E[Partner Connection]
E -->|Messages| A
Client β Server:
search- Find a chat partnermessage- Send text/emojiend_chat- Disconnectping- Keep-alive
Server β Client:
searching- In queuematched- Partner foundmessage- Received messagepartner_disconnected- Partner leftpong- Keep-alive response
- β API key authentication for all connections
- β CORS protection with whitelisted origins
- β Secure environment variable management
- β No message persistence (privacy-first)
- β Anonymous sessions (no user data collected)
- Anonymous chat
- Real-time messaging
- Partner matching
- Web and mobile apps
- Secure WebSocket communication
- Image/GIF sharing (Android app exclusive)
- Typing indicators
- Voice messages
- Video chat support
- End-to-end encrypted chat
Web:
# Open multiple browser tabs at http://localhost:5173Mobile:
# iOS - Two simulators
npx react-native run-ios --simulator="iPhone 15"
npx react-native run-ios --simulator="iPhone 15 Pro"
# Android - Two emulators
npm run android
npx react-native run-android --deviceId=emulator-5556- Connection establishment
- Partner matching
- Message sending/receiving
- "Next" button (find new partner)
- "End Chat" button (disconnect)
- Reconnection after network loss
- Cross-platform compatibility
cd chatme-backend
npx wrangler tail- Analytics: Request count, errors, latency
- Logs: Real-time WebSocket events
- Durable Objects: Storage and compute usage
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
MIT License - See LICENSE file for details
- Inspired by Omegle and other anonymous chat platforms
- Built with React, React Native, and Cloudflare Workers
- Special thanks to the open-source community
Made with β€οΈ for anonymous chatting
π Connect worldwide β’ π¬ Chat anonymously β’ π Built with modern tech
β Star this repo if you find it helpful!