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.

● desenvolvimento ativoBackend em Rust + AxumApp em Flutter

// o problema

Vídeo curto parece simples. A infraestrutura por trás não é.

Realidade

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.

Abordagem

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

Backend

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.

Mídia

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.

Tempo real

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.

Acesso

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.