goChatty.chat: salas de voz sin fricción
Salas de voz en tiempo real desde el navegador — crea una sala, comparte el enlace y empieza a hablar al instante. Sin registro, sin instalación.
Paso 01
Problema
Las herramientas tradicionales (Zoom, Teams, Discord) añaden fricción para conversaciones rápidas: registro, descargas, configuración. Para una charla de 2 minutos, montar la herramienta lleva más que la conversación.
Paso 02
Contexto y restricciones
Producto fundador creado para validar una hipótesis simple: los equipos, comunidades y amigos necesitan conversaciones de voz que empiecen en segundos — no después de un asistente de configuración. Construido desde cero con WebRTC mesh + Socket.IO signaling.
Rol: Fundador técnico a cargo de producto, arquitectura, backend en tiempo real, UX, contenido SEO y despliegue.
Paso 03
Decisiones clave
- Interfaz bubble-first con flujo directo crear/compartir sin paso de registro obligatorio.
- WebRTC mesh con señalización Socket.IO para mantener infraestructura ligera en MVP.
- Límites operativos explícitos (6 personas máx, 5 salas por IP por semana) para validar uso antes de escalar.
- Prueba de micrófono con umbral ajustable para usuarios con ruido de fondo.
- Tema claro/oscuro para preferencia del usuario.
- Changelog público con créditos a reporteros de bugs para generar confianza comunitaria.
- Páginas de aterrizaje optimizadas para SEO (salas de voz, chat sin registro, chat de voz en navegador).
- Wishlist de Kickstarter para validar demanda de funciones premium antes de construir infraestructura.
Paso 04
Resultados
- Producto en vivo en gochatty.chat con usuarios activos de varios países (España, Latinoamérica, Europa del Este).
- Reportes de bugs y feedback de usuarios reales: karol1234567, dariuch, nueve1, namalsk.
- V1.1 publicada en julio 2026 con arreglos de audio en Chrome, burbujas duplicadas y mejoras de ICE restart.
- Páginas SEO posicionadas para keywords de salas de voz en español.
- 7+ suscriptores en wishlist de Kickstarter sin promoción activa.
Métricas
- Capacidad MVP: hasta 6 personas por sala (MAX_ROOM_PARTICIPANTS=6).
- Límite antiabuso: máx 5 salas por IP en ventana de 7 días.
- Limpieza automática de salas vacías tras 7 días de inactividad.
- Bugs resueltos: silencio en Chrome (AudioContext remoto), burbujas duplicadas (contador de secuencia + peer:joined), cortes de audio (ICE restart 100ms, soft reconnect, fallback 5s).
- Idiomas: interfaz en ES y EN.
- Objetivo Kickstarter: compartir pantalla 1080p@60fps con audio.
Paso 05
Aprendizajes y próxima mejora
Cómo funciona
Crear una sala con un clic, compartir el enlace y cualquiera con un navegador compatible puede entrar y hablar — sin cuentas, sin descargas, sin configuración.
Flujo del producto
Click "Crear sala" → Compartir enlace → La gente entra desde el navegador → Empiezan a hablar
Sin procesamiento de audio en backend. Todos los datos de voz fluyen peer-to-peer vía WebRTC. Socket.IO maneja la señalización (creación de salas, descubrimiento de participantes, intercambio de ICE candidates). Cuando una sala lleva 7 días vacía, se limpia automáticamente.
Funcionalidades clave
- Creación de sala con un clic: sin formularios, sin contraseñas, sin sistemas de invitación
- Acceso por enlace: compartes la URL y cualquiera entra
- Sin registro: los usuarios eligen un nombre y entran
- Nativo del navegador: funciona en Chrome, Edge y otros navegadores basados en Chromium
- Prueba de micrófono: monitor de nivel de audio con umbral de silencio ajustable
- Tema claro/oscuro: conmutador para accesibilidad
- Bilingüe: interfaz en ES y EN
- Salas recientes: re-entrada rápida a salas usadas anteriormente
Limitaciones actuales (MVP)
- Máximo 6 personas por sala (WebRTC mesh escala mal por encima de eso)
- Chrome/Chromium recomendado (Firefox y Safari tienen problemas conocidos con AudioContext remoto)
- Compartir pantalla no disponible aún (planeado para la siguiente fase con Kickstarter)
Arquitectura técnica
El stack es intencionadamente mínimo para validación MVP:
| Componente | Tecnología |
|---|---|
| Frontend | Vanilla HTML/CSS/JS |
| Señalización | Socket.IO (Node.js) |
| Transporte de audio | WebRTC mesh (navegador a navegador) |
| Códec de audio | Opus (por defecto del navegador) |
| Despliegue | VPS / servidor Node.js |
| Páginas SEO | HTML estático con datos estructurados |
Bugs resueltos en V1.1 (julio 2026)
- Silencio en Chrome/Chromium: los peers remotos al conectarse al AudioContext causaban pérdida de audio. Solucionado conectando streams remotos directamente sin pasar por el AudioContext.
- Burbujas duplicadas: causadas por colisiones en el contador de secuencia y eventos peer:join procesados múltiples veces. Solucionado con un check de deduplicación con tracking de origen.
- Cortes de audio: conexiones cayéndose en medio de la conversación. Solucionado con ICE restart a 100ms, lógica de soft reconnect y timeout de fallback de 5 segundos.
Aprendizajes
- En productos en tiempo real, el alcance controlado acelera la validación técnica — más simple es mejor.
- La simplicidad del flujo de entrada es un diferenciador más fuerte que la cantidad de funciones. Los usuarios valoran la velocidad sobre las opciones.
- Los changelogs públicos con créditos a usuarios generan confianza comunitaria y fomentan más reportes de bugs.
- El SEO importa para productos sin presupuesto — las páginas de aterrizaje para casos de uso concretos generan tráfico orgánico.
Próxima mejora
Lanzar una campaña de Kickstarter para financiar infraestructura y construir compartir pantalla (1080p@60fps con audio), mejor escalabilidad y funciones premium para equipos y empresas.
Enlace
Paso 06