sonnora@systems:~/products/vertigo$ cat README
Vertigo — vídeo curto, ao vivo e social.
Uma plataforma de vídeos curtos estilo TikTok: um feed vertical Para Você, uploads transcodificados para HLS pronto para streaming, likes, comentários e follows — mais salas ao vivo com chat em tempo real. Com backend em Rust e app Flutter para iOS e Android.
// o problema
Vídeo curto parece simples. A infraestrutura por trás não é.
Um bom feed precisa de scroll infinito e fluido, uploads que sobrevivam a redes ruins, transcodificação que transforme qualquer vídeo de celular em streams adaptativos, e salas ao vivo onde vídeo e chat andam sincronizados. Juntar essas peças é onde a maioria trava.
O Vertigo roda sobre uma única API em Rust: uploads presigned direto para armazenamento compatível com S3, um worker que transcodifica cada vídeo para HLS mais um pôster, feeds com paginação por cursor, salas LiveKit para o ao vivo e chat WebSocket por sala com replay de histórico.
// recursos
Tudo que um app de vídeo curto precisa
Feed Para Você
Scroll vertical infinito com autoplay, snap e pausa ao deslizar. A paginação por cursor mantém tudo rápido em qualquer escala.
Pipeline de upload
Uploads diretos ao armazenamento com progresso; depois um worker ffmpeg gera HLS, pôster e MP4 normalizado.
Salas ao vivo
Criadores ao vivo por WebRTC via LiveKit; a audiência assiste ao stream HLS. Os webhooks mantêm a sala sincronizada.
Chat + social
Chat WebSocket com limite de taxa por sala ao vivo e replay de histórico, mais likes, comentários, perfis e follows.
// sob o capô
O stack por trás do feed
Rust com Axum e Tokio, ORM rustdata sobre PostgreSQL, armazenamento de objetos MinIO/S3 e Redis — uma única API para o app, o worker e os webhooks.
Um worker ffmpeg dedicado processa os pendentes e gera segmentos HLS, pôsteres e MP4 normalizados, servidos com cache longo e suporte a byte-range.
LiveKit SFU com Egress para vídeo ao vivo, tokens com papéis de publicação/inscrição e chat WebSocket limitado a 5 mensagens a cada 5 segundos.
Identidade delegada ao UserBrew: email/senha mais Google OAuth, com o app Vertigo dono do próprio login.
// conectar
Constrói uma comunidade que precisa do próprio espaço de vídeo?
Fale conosco sobre acesso antecipado, implantação sob medida ou licenciamento da plataforma para sua marca.