Acerca de

Salas de voz que puedes alojar tú mismo

Chatovo es un proyecto abierto: el código, el servidor de medios y la base de datos viven en tus propias máquinas, no en la nube de otros.

Por qué existe

El proyecto empezó como un intento de quitarle la ceremonia a hablar con la gente.

Una conversación no debería requerir configuración

Reunir a tus amigos para una llamada suele implicar crear un servidor, organizar canales y repartir roles. Aquí creas una sala y envías un enlace.

Los datos se quedan con su dueño

El servidor de medios, la base de datos y los archivos subidos los despliegas tú. Sin analítica de terceros ni almacenamiento externo para los adjuntos.

Todo está a la vista

El código fuente, el historial de versiones y las discusiones están en GitHub. Puedes leer cómo funciona cada parte y montar tu propia copia.

Cómo está construido

Un monorepo con Bun workspaces: cliente, servidor, contenedor de escritorio y esquemas compartidos en un solo lugar.

Cliente

Next.js 16 y React 19, exportado de forma estática. Organizado con Feature-Sliced Design y con estilos en módulos SCSS.

Escritorio y móvil

Tauri 2: la misma app web dentro de un contenedor nativo en Rust para Windows, macOS, Linux y Android.

Servidor

NestJS 11 sobre Bun, con Prisma sobre un Postgres propio. La autenticación funciona con better-auth.

Medios

Un SFU LiveKit propio para WebRTC. El acceso a las salas se concede con un token que firma el servidor.

Esquemas compartidos

Los esquemas Zod del paquete @chatovo/schemas son la única fuente de verdad para los tipos del cliente y del servidor.

Herramientas

TypeScript en todo el proyecto, Vitest y Playwright para las pruebas, y compilaciones y versiones con GitHub Actions.

Quiénes participaron

Gracias a todas las personas cuyo código llegó al proyecto.

Cómo contribuir

El proyecto está abierto a cambios, desde una errata en un texto hasta una sección de configuración completamente nueva.

Envía un cambio

Haz un fork del repositorio, crea una rama a partir de master y abre un pull request. El estilo del código y la estructura están documentados en el repositorio.

Reporta un problema

¿Encontraste un error o tienes una idea? Abre un issue. Los pasos para reproducirlo y la versión de la app hacen que se resuelva mucho más rápido.

Monta tu propia instancia

El repositorio incluye la configuración de Caddy y LiveKit para que puedas levantar una instancia completa propia.