← Voltar aos projetos
Produto & SaaSSite & E-commerce

Flash Arena

Uma plataforma de galeria de fotos e vídeos para fotógrafos de eventos: o cliente navega pelos eventos em pastas, escolhe as mídias e envia o pedido direto pelo WhatsApp, enquanto o admin gerencia eventos, uploads de arquivos de gigabytes, o conteúdo do site e carrinhos abandonados. Transformei o projeto em um produto que sobe uma nova instância por cliente a partir de um playbook.

Flash Arena
Tipo
Produto & SaaS · Site & E-commerce
Stack
ReactSupabaseStorageWhatsApp

Resultado em uma frase

Fotógrafos de eventos que entregavam fotos por link solto e negociavam venda por mensagem passaram a ter uma galeria própria onde o cliente escolhe as fotos e fecha o pedido pelo WhatsApp, e a plataforma virou um produto que sobe para um novo fotógrafo em menos de uma hora.

  • Cliente: Flash Arena, plataforma de galeria e venda de fotos e vídeos para fotógrafos de eventos
    • Meu papel: desenvolvimento, arquitetura do Supabase e transformação do projeto em produto replicável por cliente
      • Prazo: primeira instância replicada para um novo cliente em maio de 2026
        • Resultado principal: um novo cliente sobe com banco, storage, funções e conteúdo inicial em 45 a 60 minutos, seguindo um playbook

        O contexto

        Fotografia de evento vive de volume: centenas de participantes, milhares de fotos por dia e a venda acontecendo enquanto a emoção ainda está fresca. Quem compra quer achar as próprias fotos rápido, no celular, e quem vende quer receber o pedido sem planilha nem troca interminável de mensagens.

        O problema

        As fotos ficavam em links genéricos de armazenamento, o cliente precisava descrever quais queria por mensagem e muitos pedidos morriam no meio do caminho sem que o fotógrafo soubesse. Do lado técnico, a primeira versão funcionava para um único cliente: subir outro fotógrafo significava refazer banco, permissões, storage e funções na mão, com risco de esquecer alguma peça.

        A abordagem

        • Venda no canal que o cliente já usa: em vez de checkout com gateway, o pedido é montado na galeria e enviado formatado para o WhatsApp do fotógrafo, que é onde a negociação já acontecia.
          • Não perder quem desistiu: se o cliente preencheu nome e WhatsApp e tem itens selecionados, a seleção é registrada como carrinho abandonado para o fotógrafo retomar o contato.
            • Uma instância por cliente, sem retrabalho: levantei o inventário completo do projeto original (tabelas, funções, gatilhos, políticas, bucket, funções de borda) e transformei isso em migrations reproduzíveis e num playbook passo a passo, testado subindo um cliente real do zero.

            A solução

            Galeria pública. Página inicial com conteúdo editável pelo admin, eventos filtráveis por ano, semestre e busca, e cada evento organizado em pastas, com carregamento progressivo das mídias para funcionar bem no celular. Galeria de um evento organizada em pastas Seleção e pedido pelo WhatsApp. O cliente marca as fotos e vídeos, preenche nome, e-mail e WhatsApp com validação, e envia uma mensagem já organizada por evento e pasta, com a lista de arquivos escolhidos. Painel do fotógrafo. Gestão de eventos, pastas e mídias, upload retomável de arquivos grandes, geração automática de miniaturas de fotos e vídeos, edição dos textos e imagens do site e acompanhamento dos carrinhos abandonados. Painel administrativo com eventos e carrinhos abandonados

            Por baixo do capô

            React 18 com TypeScript, Vite, Tailwind e shadcn/ui no front; Supabase com Postgres, RLS, Auth, Storage e funções de borda para miniaturas e manutenção das mídias. Uploads usam o protocolo TUS, retomável, para arquivos de até 1,2 GB sem perder progresso quando a conexão oscila. Contagens de fotos e vídeos por evento e pasta saem de uma única consulta ou RPC, evitando o problema de N+1. O deploy roda em container com Nginx. Na replicação, fechei lacunas entre o projeto original e o repositório (migrations não aplicadas, uma política de RLS faltando nas pastas) antes de aplicar no cliente novo, e o processo ficou documentado de ponta a ponta com checklist e smoke test.

            Resultados

            • Pedido de fotos fechado direto no WhatsApp do fotógrafo, já organizado por evento e pasta
              • Carrinhos abandonados registrados para o fotógrafo recuperar vendas
                • Upload de arquivos grandes sem perder progresso
                  • Novo cliente no ar em 45 a 60 minutos, seguindo um playbook testado em produção

                  O que eu levo deste projeto

                  O que separa um projeto de um produto é conseguir fazer de novo. Inventariar tudo o que o sistema realmente tem e transformar isso em migrations e num checklist foi menos glamoroso do que construir telas, e foi o que tornou o negócio escalável.

Tem um desafio parecido?

Me conte o que você precisa construir, seja um produto, uma automação ou um sistema com IA, e eu te mostro o caminho mais curto até a produção.

Outros projetos