sonnora@systems:~/products/vertigo$ cat README

Vertigo — video corto, en vivo y social.

Una plataforma de video corto estilo TikTok: un feed vertical Para Ti, subidas transcodificadas a HLS listo para streaming, likes, comentarios y follows — más salas en vivo con chat en tiempo real. Impulsada por un backend en Rust y una app Flutter para iOS y Android.

● desarrollo activoBackend en Rust + AxumApp en Flutter

// el problema

El video corto parece simple. La infraestructura detrás no lo es.

Realidad

Un buen feed necesita scroll infinito y fluido, subidas que sobrevivan a redes malas, transcodificación que convierta cualquier video de teléfono en streams adaptativos, y salas en vivo donde video y chat van sincronizados. Unir esas piezas es donde la mayoría se atasca.

Enfoque

Vertigo corre sobre una sola API en Rust: subidas presignadas directo a almacenamiento compatible con S3, un worker que transcodifica cada video a HLS más un póster, feeds con paginación por cursor, salas LiveKit para el en vivo y chat WebSocket por sala con repetición de historial.

// funciones

Todo lo que una app de video corto necesita

Feed Para Ti

Scroll vertical infinito con autoplay, snap y pausa al deslizar. La paginación por cursor lo mantiene rápido a cualquier escala.

Pipeline de subida

Subidas directas al almacenamiento con progreso; luego un worker ffmpeg produce HLS, póster y MP4 normalizado.

Salas en vivo

Creadores en vivo por WebRTC vía LiveKit; la audiencia ve el stream HLS. Los webhooks mantienen el roster sincronizado.

Chat + social

Chat WebSocket con límite de tasa por sala en vivo y repetición de historial, más likes, comentarios, perfiles y follows.

// bajo el capó

El stack detrás del feed

Backend

Rust con Axum y Tokio, ORM rustdata sobre PostgreSQL, almacenamiento de objetos MinIO/S3 y Redis — una sola API para la app, el worker y los webhooks.

Medios

Un worker ffmpeg dedicado procesa los pendientes y produce segmentos HLS, pósters y MP4 normalizados, servidos con caché larga y soporte de byte-range.

Tiempo real

LiveKit SFU con Egress para video en vivo, tokens con roles de publicación/suscripción y chat WebSocket limitado a 5 mensajes cada 5 segundos.

Acceso

Identidad delegada a UserBrew: email/contraseña más Google OAuth, con la app Vertigo dueña de su propio login.

// conectar

¿Construyes una comunidad que necesita su propio espacio de video?

Hablemos de acceso anticipado, un despliegue a medida o licenciar la plataforma para tu marca.