Randall is a free, modern, open-source random video chat application and privacy-first Omegle alternative. Connect instantly with strangers worldwide across 1-on-1 video, group video calls (up to 5 users), and text chat β with zero accounts, no history stored, and peer-to-peer WebRTC encryption.
π Try it live: https://randall.superezz.dev/
- πΉ 1-on-1 Full-Bleed Video Chat: WhatsApp-style immersive full-bleed video interface with floating Picture-in-Picture (PiP), multi-corner movement, and tap-to-swap views.
- π₯ Adaptive Group Video Grid (Up to 5 Users): Responsive, dynamic multi-party grid layout optimized for mobile portrait, mobile landscape, tablet, and desktop viewports.
- π Spotlight / Pin Mode: Tap any participant in a group call to spotlight them in a large primary stage while keeping other participants in a smooth thumbnail filmstrip.
- π Full-Frame "Fit View" vs. "Fill View" Toggle: Instant toggle between edge-to-edge fill (
object-cover) and 100% full uncropped camera frame (object-containwith ambient backdrop blur). - ποΈ Active Speaker Detection: Real-time Web Audio API frequency analysis that highlights the active speaker with an animated glowing green ring.
- π Room Host Controls: Automatic host assignment and failover, allowing the room host to mute participants or kick disruptive users.
- π Rear & Front Camera Switcher: Seamlessly toggle between selfie and rear cameras on mobile devices with live camera enumeration.
- π₯οΈ Screen Sharing: One-click screen sharing with dynamic WebRTC track replacement.
- π¬ Text-Only Chat Mode: Anonymously connect and chat with random users without using your camera or microphone.
- π― Interest & Topic Matching: Enter your favorite interests (e.g.
coding,music,gaming,anime) to match with like-minded people. - π Privacy First & Zero Registration: No accounts, emails, passwords, or phone numbers needed. No chat logs or media recorded.
- π‘οΈ Community Safety & Moderation: Instant skip, user report mechanisms, and automated bot prevention via Arcjet and Zod.
- β‘ Real-Time Presence: Live online user counter, typing indicators, and instant matchmaking over native WebSockets.
- β¨ Modern Responsive UI: Built with React 19, Tailwind CSS, Lucide Icons, and Motion.
| Feature | π« Omegle (Defunct) | π₯ Traditional Chat Apps | π₯ Randall (Open Source) |
|---|---|---|---|
| Open Source | β Proprietary | β Proprietary | β 100% AGPL-3.0 Open Source |
| Group Video Calls | β No | β Yes (Adaptive 1-5 Grid) | |
| Spotlight / Pin Mode | β No | β Yes (Instant Stage Focus) | |
| Fit vs. Fill No-Crop | β Fixed Crop | β Fixed Crop | β Per-Tile & Global Toggle |
| Active Speaker Glow | β No | β Web Audio API Frequency Analysis | |
| Host Moderation | β None | β Mute / Kick / Auto-Failover | |
| No Account Needed | β Yes | β Requires Sign-up | β Instant 1-Click Access |
| Peer-to-Peer Encrypted | β Relayed Servers | β WebRTC P2P Direct + STUN/TURN | |
| Bot Protection | β Poor | β Arcjet Shield & Zod | |
| Modern Responsive UI | β 2000s Web Layout | β Vibrant, Clean & Fast |
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React 19 + Vite | Fast, responsive Single Page Application (SPA). |
| P2P Video / Audio | WebRTC (RTCPeerConnection) |
Direct browser-to-browser media streaming with zero server recording. |
| Real-time Signaling | WebSockets (ws) |
Instant user matching, multi-peer signaling negotiation, and text messages. |
| Backend Server | Node.js + Express | Lightweight API server, WebSocket broker, and TURN credential provider. |
| Styling & UI | Tailwind CSS + Motion + Lucide | Responsive design with micro-animations and adaptive grid geometry. |
| Security & Validation | Arcjet + Zod | Bot detection, rate limiting, and schema validation. |
[User A (Browser)] <====== WebSockets Signaling (Match & ICE) ======> [User B (Browser)]
| |
+=========== Direct WebRTC P2P Media Stream (Video/Audio) ===========+
(Zero server relay β 100% private and encrypted)
- Signaling Connection: When you visit randall.superezz.dev, your browser connects to the central WebSocket signaling server.
- Matchmaking: The server pairs you with waiting users based on your selected mode (1-on-1, Group, or Text) and overlapping interests.
- Offer & Answer (SDP): The browsers exchange WebRTC session descriptions (SDP offer/answer) and ICE candidates via the WebSocket signaling channel.
- Peer-to-Peer Streaming: Once handshaking completes, video and audio flow directly between the browsers. Randall's servers never capture, touch, or store your video frames.
- Node.js (v18.0.0 or higher)
- Git
- A working webcam and microphone (for video testing)
-
Clone the repository:
git clone https://github.com/superezzdev/randall.git cd randall -
Install root & UI dependencies:
npm install npm --prefix ui install
-
Set up Environment Variables:
cp .env.example .env
Open
.envand configure your port and security keys:PORT=8000 ARCJET_KEY=your_arcjet_key_here
-
Run the Development Servers:
Option A: Run both backend and frontend together:
npm run dev
Option B: Run in separate terminals:
- Terminal 1 (Backend):
node src/index.js
- Terminal 2 (Frontend UI):
cd ui npm run dev
- Terminal 1 (Backend):
-
Open
http://localhost:5173in two browser windows or on separate devices to test video matching!
Run the comprehensive matchmaking, group calling, and host control integration test suite:
node test-matchmaking.jsrandall/
βββ src/ # Backend server & WebSockets
β βββ index.js # Express server entry point
β βββ arcjet.js # Security & bot protection configuration
β βββ routes/ # REST endpoints (/api/turn-credentials, /api/users)
β βββ ws/ # WebSocket signaling, group rooms & matchmaking
βββ ui/ # Frontend React 19 application
β βββ public/ # Static assets, robots.txt, sitemap.xml, llms.txt
β βββ src/
β β βββ components/ # UI components (Home, VideoChat, Controls, Header)
β β βββ hooks/ # Custom WebRTC & WebSocket hooks (useVideoChat)
β β βββ pages/ # Static pages (About, Safety, Terms, Privacy, Contact)
β β βββ App.jsx # App shell & routing
β β βββ index.css # Tailwind & theme styles
β βββ index.html # SEO-optimized HTML template & JSON-LD
β βββ vite.config.js # Vite build configuration
βββ test-matchmaking.js # Automated WebSockets & WebRTC integration test suite
βββ CONTRIBUTING.md # Contribution guidelines
βββ LICENSE # GNU Affero General Public License v3.0
βββ README.md
Randall is an open-source, free random video chat web application and modern Omegle alternative. It allows users to meet strangers across the world instantly with no account required.
Yes! Randall is 100% free with no subscriptions, premium tiers, or hidden fees.
No. Randall uses peer-to-peer WebRTC connections. All media streams flow directly between users and are never recorded or stored on any server.
Yes! Randall is open-source under the AGPL-3.0 license. You can clone the repository, customize the branding, and deploy it to your own server or cloud provider in compliance with the AGPL-3.0 terms.
Contributions are welcome! Whether it is fixing bugs, improving the WebRTC signaling engine, or enhancing UI design:
- Fork the Project (
https://github.com/superezzdev/randall/fork) - 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
See CONTRIBUTING.md for full details.
Distributed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for more information.
Note on AGPL-3.0: Randall is open-source software. Anyone is free to use, modify, contribute, and self-host this project. However, any modified versions or hosted deployments must also remain open-source under the same AGPL-3.0 license, ensuring that community improvements remain accessible to everyone and cannot be misappropriated into closed-source proprietary products.
Built with β€οΈ by ARYA RCB (@superezzdev)
- Website: randall.superezz.dev
- GitHub: @superezzdev
