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.
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.
El proyecto empezó como un intento de quitarle la ceremonia a hablar con la gente.
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.
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.
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.
Un monorepo con Bun workspaces: cliente, servidor, contenedor de escritorio y esquemas compartidos en un solo lugar.
Next.js 16 y React 19, exportado de forma estática. Organizado con Feature-Sliced Design y con estilos en módulos SCSS.
Tauri 2: la misma app web dentro de un contenedor nativo en Rust para Windows, macOS, Linux y Android.
NestJS 11 sobre Bun, con Prisma sobre un Postgres propio. La autenticación funciona con better-auth.
Un SFU LiveKit propio para WebRTC. El acceso a las salas se concede con un token que firma el servidor.
Los esquemas Zod del paquete @chatovo/schemas son la única fuente de verdad para los tipos del cliente y del servidor.
TypeScript en todo el proyecto, Vitest y Playwright para las pruebas, y compilaciones y versiones con GitHub Actions.
Gracias a todas las personas cuyo código llegó al proyecto.
El proyecto está abierto a cambios, desde una errata en un texto hasta una sección de configuración completamente nueva.
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.
¿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.
El repositorio incluye la configuración de Caddy y LiveKit para que puedas levantar una instancia completa propia.