goChatty.chat: frictionless voice rooms
Real-time voice rooms in the browser — create a room, share the link, and start talking instantly. No registration, no installation.
Step 01
Problem
Traditional communication tools (Zoom, Teams, Discord) add friction for quick conversations: registration, downloads, setup. For a 2-minute chat, the setup takes longer than the conversation itself.
Step 02
Context and constraints
Founder-led product built to validate a simple hypothesis: teams, communities, and friends need voice conversations that start in seconds — not after a setup wizard. Built solo from scratch with WebRTC mesh + Socket.IO signaling.
Role: Technical founder owning product, architecture, realtime backend, UX, SEO content, and deployment.
Step 03
Key decisions
- Bubble-first interface with direct create/join flow and no forced account step.
- WebRTC mesh plus Socket.IO signaling to keep infrastructure light in MVP.
- Explicit operational limits (6 people max, 5 rooms per IP per week) to validate usage safely before scaling.
- Microphone test with adjustable threshold for users with background noise issues.
- Dark/light theme toggle for user preference.
- Public changelog with bug reporter credits to build community trust.
- SEO-optimized landing pages for organic discovery (voice rooms, no-registration chat, browser voice chat).
- Kickstarter wishlist to validate demand for premium features before building infrastructure.
Step 04
Outcomes
- Live product at gochatty.chat with active users from multiple countries (Spain, Latin America, Eastern Europe).
- Bug reports and feedback from real users: karol1234567, dariuch, nueve1, namalsk.
- V1.1 released July 2026 with Chrome/Chromium audio fixes, duplicate bubble fix, ICE restart improvements.
- SEO landing pages ranking for voice room keywords in Spanish.
- 7+ wishlist subscribers for Kickstarter campaign without active promotion.
Metrics
- MVP room capacity: up to 6 people per room (MAX_ROOM_PARTICIPANTS=6).
- Anti-abuse limit: max 5 rooms per IP in a 7-day window.
- Automatic cleanup of empty rooms after 7 days of inactivity.
- Bug reports resolved: Chrome muting (remote AudioContext), duplicate bubbles (sequence counter + peer:joined), audio dropouts (ICE restart 100ms, soft reconnect, 5s fallback).
- Languages: ES and EN interface.
- Kickstarter goal: screen sharing 1080p@60fps with audio.
Step 05
Learnings and next improvement
How it works
Create a room in one click, share the link, and anyone with a compatible browser can join and talk — no accounts, no downloads, no setup.
Product flow
Click "Create room" → Share link → People join from browser → Start talking
No backend audio processing. All voice data flows peer-to-peer via WebRTC. Socket.IO handles signaling (room creation, participant discovery, ICE candidate exchange). When a room is empty for 7 days, it’s automatically cleaned up.
Key features
- One-click room creation: no forms, no passwords, no invite systems
- Link-based access: share the URL and anyone joins
- No registration: users pick a display name and enter
- Browser-native: works on Chrome, Edge, and other Chromium-based browsers
- Microphone test: built-in audio level monitor with adjustable silence threshold
- Dark/light theme: toggle for accessibility
- Bilingual: ES and EN interface
- Recent rooms: quick re-entry to previously used rooms
Current limitations (MVP)
- Maximum 6 people per room (WebRTC mesh scales poorly beyond that)
- Chrome/Chromium recommended (Firefox and Safari have known issues with remote AudioContext)
- Screen sharing not yet available (planned for Kickstarter-funded next phase)
Technical architecture
The stack is intentionally minimal for MVP validation:
| Component | Technology |
|---|---|
| Frontend | Vanilla HTML/CSS/JS |
| Signaling | Socket.IO (Node.js) |
| Audio transport | WebRTC mesh (browser-to-browser) |
| Audio codec | Opus (browser default) |
| Deployment | VPS / Node.js server |
| SEO pages | Static HTML with structured data |
Bugs fixed in V1.1 (July 2026)
- Chrome/Chromium muting: remote peers connecting to the AudioContext caused audio loss. Fixed by not connecting remote streams to the AudioContext and handling them directly.
- Duplicate voice bubbles: caused by sequence counter collisions and peer:joined events being processed multiple times. Fixed by adding a deduplication check with origin tracking.
- Audio dropouts: connections dropping mid-conversation. Fixed with ICE restart at 100ms, soft reconnect logic, and a 5-second fallback timeout.
Learnings
- In realtime products, controlled scope accelerates technical validation — simpler is better.
- Join-flow simplicity is a stronger differentiator than feature volume. Users value speed over options.
- Public changelogs with user credit build community trust and encourage more bug reports.
- SEO matters for zero-budget products — landing pages for specific use cases drive organic traffic.
Next improvement
Launch a Kickstarter campaign to fund infrastructure and build screen sharing (1080p@60fps with audio), improved scalability, and premium features for teams and businesses.
Links
Step 06