Pular para o conteúdo
brorn
Nº 001 · Esporte e vídeo

match.day

App de time com registro de partida no Apple Watch e melhores momentos em vídeo gerados automaticamente.

Em produção
Período
2026-10 → hoje
Plataformas
iPhone · iPad · Apple Watch · Computador
Papel
Sozinho: design, código e entrega
Tecnologias
Fig. 1 · Lista de jogos
Fig. 2 · Linha do tempo ao vivo
Fig. 3 · Estatísticas
Fig. 4 · Cortes · Vídeo: SoccerTrack v2 (CC BY 4.0)

§1O problema

Registrar um jogo (quem jogou, gols, minutos) e depois achar os lances no vídeo dá muito trabalho manual. Não existia uma ferramenta que juntasse o placar feito no relógio com o vídeo do jogo e entregasse os cortes prontos.

§2O que eu construí

  • App webPWA instalável para iPhone, iPad e computador: times, elenco, agenda, jogo, resultados e estatísticas, com tema claro/escuro.
  • Modo jogoFunciona offline, com fila de envio quando a conexão volta.
  • App do relógioApp em SwiftUI para marcar gols e fim de jogo, com complicação no mostrador, mais app companheiro no iPhone.
  • ServidorAPI com banco SQLite.
  • Fluxo de vídeoEnvio em partes, cortes ao redor de cada gol/lance e montagem dos melhores momentos com aceleração da placa de vídeo (NVENC).
  • Duas câmerasGravação com 2 celulares, entregue ao video-campo para juntar as imagens.

§3As partes difíceis

5 itens
  1. 01

    Envio de vídeos grandes pelo celular

    Upload em partes, retomável, com reprocessamento em fila.

  2. 02

    Funcionar offline

    O jogo continua sem internet e sincroniza depois, com reenvio seguro (sem duplicar gols).

  3. 03

    Relógio e servidor falando o mesmo contrato de API

    Com correção e anulação de gols.

  4. 04

    Migrações do banco

    Backup automático antes de qualquer mudança no esquema do banco.

  5. 05

    Guarda de acesso local e tipos compartilhados

    Proteção contra ataques de navegador (DNS rebinding) e monorepo com tipos compartilhados entre servidor e tela.

§4Resultado

Está em produção no meu servidor em casa, e eu uso pelo celular numa rede privada. Todas as etapas do plano (app web, servidor e relógio) foram concluídas, e o app do relógio foi testado num aparelho de verdade.

§5Stack

  • Next.js 16
  • React 19
  • TypeScript
  • Zustand
  • SQLite
  • ffmpeg (NVENC)
  • SwiftUI / watchOS
  • pm2
  • Tailscale
  • Testes unitários e e2e