Arquitetura de Sistemas para Eventos Esportivos: O Que Aprendemos na LargaAí
Introdução
Este artigo é para desenvolvedores, CTOs e organizadores técnicos que querem entender como construímos a LargaAí. Compartilhamos decisões de arquitetura, trade-offs e lições aprendidas.
Stack Técnico
- Frontend: React 18 + TypeScript + Vite + Tailwind CSS
- Backend: Supabase (PostgreSQL + Auth + Storage + Edge Functions)
- Pagamentos: Mercado Pago (Pix + Cartão)
- CDN/Segurança: Cloudflare (Turnstile + DNS)
- IA: Edge Functions com contexto de evento
Row-Level Security: Segurança no Banco
A decisão mais importante da nossa arquitetura: RLS em todas as tabelas.
Cada tabela tem políticas que definem quem pode ler, inserir, atualizar e deletar. Exemplos:
events: público pode ler eventos aprovados; apenas o organizador pode editar os seusregistrations: atleta vê apenas suas inscrições; organizador vê apenas inscritos nos seus eventosprofiles: cada usuário acessa apenas seu próprio perfil; dados públicos via viewpublic_profiles
Por que não confiar apenas na API?
APIs podem ter bugs. Um endpoint mal configurado pode expor dados de todos os usuários. Com RLS, mesmo que a API falhe, o banco de dados impõe as regras de acesso.
Edge Functions: Lógica no Edge
Usamos Edge Functions (Deno) para operações que precisam de:
- Segredo: chaves do Mercado Pago, tokens de e-mail
- Validação server-side: verificação de Turnstile, validação de pagamento
- Integração externa: webhooks, envio de e-mails, resolução de rotas Strava/Garmin
Exemplos de funções:
mercadopago-webhook: recebe notificação de pagamento e atualiza statussend-registration-confirmation: envia e-mail com QR Code após confirmaçãogenerate-sitemap: gera sitemap XML dinâmico com todos os eventos
Schema.org: Dados Estruturados
Cada evento na LargaAí gera um JSON-LD SportsEvent com:
- Nome, data, local (cidade + estado)
- Faixa de preço (do lote atual)
- Status de disponibilidade (
InStock,LimitedAvailability,SoldOut) - Organizador (com link para perfil)
Isso permite que Google, ChatGPT e Gemini mostrem informações do evento diretamente nas buscas.
Sitemap Dinâmico
O sitemap é gerado em tempo real via Edge Function, incluindo:
- Todas as páginas estáticas
- Landing pages por cidade (19 cidades)
- Páginas de distância por cidade (5K, 10K, meia-maratona, maratona)
- Todos os eventos aprovados (com slug amigável)
- Todos os artigos do blog
Triggers de Proteção
Campos financeiros são protegidos por triggers PostgreSQL:
amount_paid,platform_fee,mp_feesão imutáveis após criaçãopayment_statussó muda por processos autorizadosused_countde cupons é controlado por trigger, não por API
IA Integrada: Larga AI
A IA não é um chatbot genérico. Ela recebe contexto real do evento:
- Dados de inscrições, receita, lotes
- Comparação com eventos similares na região
- Histórico de crescimento
E gera recomendações específicas — não genéricas.
Lições Aprendidas
- RLS primeiro: começar com RLS desde o dia 1 é muito mais fácil do que retrofitar
- Edge Functions para segredos: nunca exponha chaves de API no frontend
- Schema.org cedo: dados estruturados desde o início acumulam autoridade
- Triggers > validação de API: triggers são a última linha de defesa
Conclusão
Construir uma plataforma de eventos é muito mais que um CRUD. Segurança, performance, SEO e IA precisam ser decisões de arquitetura — não afterthoughts.
Crie seu evento na LargaAí — uma plataforma construída por engenheiros que entendem de eventos.
Veja também: como funciona uma plataforma de eventos | plataforma segura para eventos
Perguntas Frequentes
Por que usar Edge Functions para eventos?▼
Edge Functions rodam próximo ao usuário, reduzindo latência. Na LargaAí, usamos para checkout, webhooks de pagamento, envio de e-mails e geração de sitemap — todas operações que precisam de resposta rápida.
O que é Row-Level Security e por que importa?▼
RLS é uma camada de segurança no PostgreSQL que garante que cada consulta respeite regras de acesso. Mesmo que um bug na API exponha dados, o banco rejeita a consulta se o usuário não tem permissão.
Como Schema.org ajuda eventos esportivos?▼
Schema.org SportsEvent permite que Google, ChatGPT e outros serviços entendam automaticamente: nome do evento, data, local, preço e disponibilidade de vagas. Isso melhora visibilidade em buscas e respostas de IA.