Streaming · PWA·2026

Lorflux

Streaming HLS adaptativo · assinaturas Stripe · filas BullMQ

Tela do projeto Lorflux
Papel
Engenheiro único: plataforma, pipeline de streaming, billing e admin
Período
2026 · v2.4.0 em produção

Resumo

Plataforma de entretenimento vertical (9:16): cinematic comics, filmes verticais e webtoons, com contas, assinaturas premium e um admin completo. Vídeo é a parte difícil. Todo o resto existe para servi-lo.

Arquitetura e decisões

  • Upload nunca bloqueia a requisição. A API entrega o arquivo ao Bunny Stream e retorna; o progresso da transcodificação chega depois por webhooks, que só marcam o episódio como reproduzível quando existe de fato uma renditione.
  • Trabalho pesado (callbacks de transcodificação, processamento de painéis em lote, e-mail) roda em BullMQ sobre Redis, então um pico de uploads degrada a profundidade da fila, não o site.
  • Entrega HLS adaptativa pelo CDN da Bunny: o player negocia a renditione e a origem só serve o manifesto.
  • Painéis de webtoon sobem em lotes de até ~138 imagens por capítulo; o lote é tratado como unidade transacional, então um upload parcial não publica capítulo quebrado.
  • Múltiplas trilhas de áudio e dublagens por idioma são modeladas como trilhas de um episódio, não como episódios separados, o que mantém os contadores de engajamento honestos.
  • Anúncios só renderizam em sessões não-premium; o direito é checado no servidor, nunca por afirmação do cliente.

Desafios

Problema: O usuário aperta play no segundo em que o upload termina, mas o arquivo ainda não é assistível.

Solução: O episódio carrega um ciclo de vida explícito em vez de um boolean. Ele só vira reproduzível quando o webhook de transcodificação da Bunny confirma que existe uma renditione. O webhook é idempotente, porque um CDN entrega o mesmo callback duas vezes sem cerimônia.

Resultados

  • Em produção em lorflux.com (v2.4.0)
  • Assinaturas Stripe, contas com JWT + OAuth, PWA com push
  • Conteúdo em PT / EN / ES / ZH com múltiplas trilhas de áudio
  • Upload de painéis em lote de até ~138 imagens por capítulo

Stack

Frontend

React 19ViteTypeScriptTailwindPWA

Backend

Node.jsExpressMongoDBMongoose

Mídia

Bunny StreamHLS adaptativoCDN

Assíncrono

BullMQRedisWebhooks

Dinheiro

StripeGoogle AdSense

Tecnologias

React 19Node.jsMongoDBStripeRedisBunny CDN

// vamos conversar

Começar um projeto

Me conta o que você precisa. Costumo responder em até um dia.

Carregando verificação…