Pular para o conteúdo principal

Status: Approved · v2.2 · SPEC-VISION-001

depends_on: SPEC-PRODUCT-001, SPEC-BRAND-001, SPEC-MVP-001

used_by: IS-ZERO-00.1, IS-MVP-15.5

RaizFC — Vision Paper

O futebol raiz em jogo

O futebol raiz já é um ecossistema. Ele reúne times, jogadores, famílias, torcidas, organizadores, campos, árbitros, fotógrafos, lojas, patrocinadores locais e comunidades inteiras. Há competição, identidade, memória, trabalho, pertencimento e circulação econômica. O que costuma faltar não é relevância: é uma infraestrutura digital construída para essa realidade.

Hoje, grande parte da vida de um time fica distribuída entre conversas, planilhas, perfis sociais, artes avulsas e lembranças pessoais. Um resultado pode circular intensamente durante uma semana e depois desaparecer. A história de um jogador depende de quem guardou uma foto ou uma súmula. Um campeonato pode existir para centenas de pessoas sem possuir uma página pública clara, uma classificação confiável ou um regulamento acessível. Uma torcida consegue mobilizar apoio, mas raramente dispõe de ferramentas próprias para organizar sua presença digital. Campos e prestadores são encontrados por indicação, não por um ecossistema conectado.

O RaizFC nasce para ocupar esse espaço. Não como uma tentativa de transformar o futebol de bairro em uma cópia do futebol profissional, nem como mais uma rede social genérica. O objetivo é oferecer ferramentas profissionais sem apagar a cultura local: dar casa digital a times e torcidas, vitrine responsável a jogadores, registro às partidas, organização aos campeonatos, visibilidade aos territórios e caminhos sustentáveis de apoio.

Visão: tornar-se a infraestrutura pública e confiável do futebol raiz brasileiro — onde cada time possa existir, cada jogo possa virar história e cada comunidade possa fortalecer o que já construiu.


1. O problema que queremos resolver

1.1 Presença digital fragmentada

Um time pode ter um perfil social ativo e ainda assim não possuir uma fonte pública de verdade. Escudo, elenco, categorias, jogos, último resultado, próximo confronto, ranking, torcidas e patrocinadores ficam espalhados ou desatualizados. Para quem chega de fora, é difícil distinguir página oficial, perfil antigo, fan page e informação incorreta.

1.2 Memória esportiva frágil

No futebol raiz, muitos feitos são conhecidos por quem estava presente, mas não ficam registrados de forma estruturada. Sem partidas validadas, súmulas, eventos e vínculos confirmados, estatísticas e histórias pessoais dependem de registros informais. Isso reduz a visibilidade de jogadores, a credibilidade de rankings e a capacidade de contar a trajetória de um time.

1.3 Gestão desconectada da experiência pública

Ferramentas existentes tendem a tratar um campeonato isolado, uma agenda ou um cadastro. O RaizFC parte de outra premissa: gestão e presença pública são partes do mesmo sistema. Quando um resultado é validado, ele deve atualizar a partida, as estatísticas, os rankings e os conteúdos compartilháveis. Quando um jogador aceita um vínculo, a gestão do time e o perfil público passam a refletir a mesma realidade — respeitando privacidade.

1.4 Descoberta pouco estruturada

A busca por times, jogadores, campeonatos, campos e serviços acontece por nomes incompletos, indicações e contatos pessoais. O território é essencial, mas muitas plataformas o tratam apenas como endereço. No RaizFC, distrito e bairro/quebrada são dimensões de descoberta, contexto e ranking.

1.5 Sustentabilidade sem descaracterização

Times e torcidas já mobilizam apoio e patrocínio local. A plataforma deve criar caminhos de monetização e fortalecimento sem parecer uma casa de apostas, sem prometer retorno financeiro e sem vender posição em busca ou ranking. Apoio é apoio; patrocínio é visibilidade; créditos são capacidade interna de uso, não dinheiro sacável.


2. A tese do produto

O RaizFC será mais valioso quando funcionar como um ecossistema integrado, e não como uma coleção de módulos independentes.

  • O time é a principal unidade de identidade esportiva.
  • O jogador controla sua própria vitrine e seus vínculos.
  • A partida é a unidade de memória e estatística.
  • O campeonato organiza regras, inscrições, fases e autoridade competitiva.
  • A torcida é uma entidade comunitária própria, vinculada a um time, com membros e gestão independentes.
  • O território organiza contexto e descoberta.
  • Campos e serviços conectam o ecossistema real à sua presença pública.
  • Feed, rankings e cards distribuem informação e transformam atividade em visibilidade.
  • Apoio, créditos e patrocínio sustentam ações dentro da plataforma de forma transparente.

A proposta não é substituir o WhatsApp ou o Instagram. É oferecer a fonte pública, estruturada e confiável que esses canais podem compartilhar.


3. Princípios de produto

3.1 A entrada deve ser simples; a configuração avançada deve existir quando necessária

Um usuário pode começar apenas como torcedor. Um jogador pode ativar um perfil incompleto e evoluí-lo. Um gestor pode criar um time com os dados essenciais e completar identidade, elenco e jogos posteriormente. O produto não deve exigir toda a complexidade antes de entregar valor.

3.2 Ações públicas exigem confiança proporcional

Ler páginas públicas não exige conta. Torcer, seguir, denunciar, gerenciar, aceitar vínculos e aparecer como apoiador identificado exigem autenticação. O login não deve apagar o contexto: o AuthIntent preserva a ação iniciada e a retoma após cadastro/onboarding.

3.3 Histórico não deve ser destruído para simplificar estado

Times podem ficar inativos, abandonados, encerrados, suspensos ou unificados. Jogadores podem se tornar ex-atletas. Partidas podem ser contestadas e retificadas. O sistema deve preservar histórico e deixar claro o estado atual, em vez de apagar o que aconteceu.

3.4 O público vê apenas o que é realmente público

DTOs públicos são construídos especificamente para sua finalidade. Contatos privados, documentos, saldos, valores de apoio, permissões internas e dados de convidados não confirmados não podem aparecer por conveniência técnica.

3.5 Ranking precisa de contexto e explicação

Uma posição sem período, território, critérios ou amostra pode ser enganosa. Rankings devem indicar recorte, status provisório e fonte dos resultados. Patrocínio, pagamento ou valor de apoio nunca influencia posição.

3.6 A marca do time é protagonista; o RaizFC é a infraestrutura

Em páginas e cards, escudos, nomes e cores das entidades têm destaque. A assinatura RaizFC aparece de forma consistente e discreta. O produto deve fortalecer identidades locais, não uniformizá-las.


4. Públicos e valor entregue

Gestores de times

Recebem página pública, identidade, categorias, elenco, vínculos, jogos, súmulas, conteúdo oficial, torcidas, carteira, patrocinadores, permissões e auditoria. O valor não é “ter um cadastro”; é operar uma presença pública conectada à atividade esportiva.

Jogadores

Recebem perfil próprio, posições, times atuais e anteriores, histórico confirmado, estatísticas, convites, status de disponibilidade e controles de privacidade. O time pode convidar e relacionar; não pode assumir o controle da identidade pessoal do atleta.

Torcedores

Podem seguir entidades, torcer publicamente por times, entrar em torcidas, acompanhar jogos, rankings e conteúdo oficial, compartilhar cards e apoiar. Torcer e seguir são ações diferentes: torcer demonstra apoio público e também gera follow; seguir apenas assina atualizações.

Organizadores de campeonatos

Recebem estrutura para identidade, edições, regulamento, janelas, inscrições, elegibilidade, formatos, fases, fixtures, partidas, classificação, artilharia e disciplina. Publicar o campeonato é uma ação paga separada, sem criar uma carteira para a competição no MVP.

Torcidas organizadas

Existem como entidade própria, com aprovação do time vinculado, membros, forma de entrada, conteúdo, carteira, apoio, patrocínio e gestão independente. A aprovação do time autoriza a existência; não transforma gestores do time em gestores da torcida.

Campos e prestadores

Ganham páginas públicas úteis com contato, território, portfólio, jogos ou eventos relacionados. O MVP não intermedeia reserva nem contratação. A primeira proposta é aumentar descoberta e confiança sem construir um marketplace prematuro.


5. O ecossistema RaizFC

5.1 Times e categorias

Categorias são tags e recortes do mesmo time — principal, veterano, base, feminino ou outras configurações permitidas. Elas não criam páginas ou torcidas duplicadas. O time preserva uma identidade única e permite filtrar elenco, partidas e estatísticas por categoria.

O vínculo de jogador possui ciclo de vida: convidado, convite pendente, atleta ativo, ex-atleta, rejeitado ou expirado. Jogadores cadastrados precisam aceitar o vínculo. Convidados sem conta podem participar de amistosos e eventos permitidos, mas não recebem histórico público pessoal até uma confirmação posterior.

5.2 Partidas e súmulas

Uma partida pode existir dentro ou fora de campeonato. Ela possui tipo, times, categoria, data — ou data pendente —, campo ou local livre, status e autoridade de gestão. A súmula registra relacionados, titulares, banco, gols, assistências, cartões e substituições.

Resultados passam por informação, validação e, quando necessário, contestação ou retificação. Em amistosos elegíveis, a ausência de contestação pode levar à auto-validação após o prazo definido. Em campeonatos, a autoridade da competição e o regulamento orientam o fluxo. Apenas resultados validados consolidam estatísticas e rankings.

5.3 Campeonatos e edições

Campeonato é uma entidade duradoura; edição é sua ocorrência temporal. A edição concentra regulamento, inscrições, janelas, formato, fases, fixtures, partidas, classificação e estatísticas.

O MVP suporta pontos corridos, grupos seguidos de mata-mata, eliminação simples, liga ida e volta e mata-mata ida e volta. O sistema pode gerar confrontos sem datas e permitir agendamento posterior. Regulamentos combinam texto livre, regras estruturadas e PDF, com bloqueio/versionamento quando a competição já avançou.

5.4 Torcidas

Uma torcida é vinculada a um único time e precisa ser aprovada para tornar-se pública. Ela pode ter entrada aberta, dependente de aprovação ou somente por convite. Um membro ativo segue automaticamente a torcida.

A torcida possui carteira e pode transferir créditos apenas para o time vinculado e receber dele, respeitando permissões. Ela também pode ter até três patrocinadores ativos, como o time.

5.5 Territórios

A hierarquia técnica é Estado → Município → Distrito → Bairro/Quebrada. O distrito é obrigatório para usuários e entidades no MVP. Bairro/quebrada é opcional, está dentro do distrito e funciona como agregador público; não possui gestão, carteira ou patrocínio próprios.

O vocabulário da interface pode variar regionalmente sem alterar o modelo técnico. “Bairro”, “Quebrada” ou “Comunidade” podem representar Neighborhood, conforme resolução de vocabulário.

5.6 Campos, serviços e prestadores

Campos possuem página, território, localização conforme visibilidade, contatos, galeria e partidas relacionadas. Serviços representam empresa, equipe, loja ou operação profissional. Prestadores representam pessoas vinculadas a serviços ou eventos. Vínculos com profissionais cadastrados exigem aceite quando afetam seu perfil público.


6. A experiência do usuário

O RaizFC será um aplicativo único e modular. As abas fundamentais são Início, Buscar, Jogos, Notificações e Perfil. Gestores acessam “Minha Gestão” pelo Perfil e por um card contextual acima do feed; não existe, no MVP, um aplicativo separado nem um dashboard geral artificialmente carregado.

Início

O feed reúne publicações oficiais, sugestões aprovadas e conteúdos gerados pela plataforma, como resultados e rankings. Usuários comuns não publicam livremente no MVP. O usuário pode ocultar um post, silenciar uma entidade por período e ajustar preferências. Cada item pode explicar por que apareceu.

Buscar

A busca universal retorna times, jogadores, campeonatos, torcidas, partidas, campos, serviços, distritos e bairros/quebradas. Buscas especializadas oferecem filtros adequados a cada tipo. Não existe boost pago.

Jogos

A aba organiza próximos jogos, resultados recentes e pendências pessoais ou de gestão. A página da partida apresenta placar/status, times, data, campo, competição, escalações, eventos, súmula e compartilhamento.

Notificações

A central separa notificações pessoais e de gestão. As notificações de gestão são agrupadas por entidade. Convites, validações e aprovações são ações contextuais, revalidadas no momento do clique para evitar decisões expiradas.

Perfil

O Perfil é o hub da conta. Reúne dados pessoais, times seguidos e apoiados, torcidas, territórios, perfil de jogador, Minha Gestão, preferências, privacidade, notificações e solicitações de suporte.


7. Páginas públicas como produto principal

A página pública do time é a primeira capability vertical porque concentra os principais compromissos do RaizFC. Ela deve apresentar identidade e status, ações de Torcer, Seguir, Apoiar e Compartilhar, último resultado, próximo jogo, ranking, estatísticas, categorias, elenco, torcidas, conteúdo oficial, apoiadores, patrocinadores, informações e denúncia.

Ela não pode parecer um protótipo infantil composto por cards genéricos. Precisa ter hierarquia editorial, contraste, densidade adequada e adaptação real entre mobile e desktop. O mesmo padrão de profundidade vale para páginas de jogador, partida, campeonato, torcida, campo, serviço e território.

Links públicos funcionam sem login, possuem canonical URL e podem abrir o aplicativo por deep link. Estados como abandonado, encerrado, suspenso ou unificado são representados claramente e preservam ou redirecionam o histórico conforme a regra.


8. Compartilhamento e distribuição

O futebol raiz já circula por WhatsApp, Instagram e redes locais. O RaizFC não tenta substituir esse comportamento; oferece conteúdo melhor para ele.

O MVP produz cards em três formatos: story/status 1080×1920, quadrado 1080×1080 e vertical 1080×1350. Os templates prioritários incluem resultado, próximo jogo, escalação, convocação, reforço, título, ranking, artilharia e perfis.

O time ou jogador é protagonista. A assinatura RaizFC e raizfc.com.br aparecem pequenas. A estética combina asfalto, terra, holofote e capotão, com alto contraste e pouca poluição. Patrocinadores, animações, remoção de marca e templates premium ficam fora do MVP. Se a geração de imagem falhar, texto e link continuam disponíveis.


9. Confiança, governança e moderação

Toda página pública, post, mídia, patrocinador ou prestador pode ser denunciado por usuário autenticado. Os motivos incluem duplicidade, informação falsa, uso indevido, conteúdo ofensivo, abandono, fraude, privacidade e outros casos definidos.

O conteúdo não desaparece automaticamente apenas por ter sido denunciado; casos graves podem ser suspensos preventivamente pela operação. O MVP registra solicitações com protocolo e timeline para análise manual. Entidades inativas, abandonadas ou encerradas podem ser reivindicadas quando elegíveis. Duplicidades podem ser unificadas sem apagar o histórico.

Permissões seguem funções fixas com ajustes manuais. Cada entidade gerenciável possui um único responsável principal no MVP. Ações críticas — como transferir responsabilidade, alterar acesso, mudar resultado ou movimentar créditos — exigem confirmação, autorização no backend e auditoria.


10. Sustentabilidade e modelo de negócio

Apoio

Visitantes podem apoiar times e torcidas anonimamente sem conta. Para aparecer como apoiador identificado, é necessário autenticar. Valores sugeridos são R$ 5, R$ 10, R$ 20 e R$ 50, com valor personalizado mínimo de R$ 50. Após confirmação do pagamento, 95% tornam-se créditos da entidade e 5% representam a taxa da plataforma.

Patrocínio

Times e torcidas podem exibir até três patrocinadores ativos. Pacotes do MVP duram 7, 30 ou 90 dias. O pagamento confirmado gera 80% em créditos para a entidade e 20% de taxa. Um Pix pendente reserva temporariamente o slot. Patrocínio não influencia busca ou ranking e não aparece em cards compartilháveis no MVP.

Publicação de campeonato

Criar e configurar um campeonato em rascunho é gratuito. Torná-lo público exige um pagamento Pix específico. Esse valor não vira crédito em carteira do campeonato.

Créditos

Créditos são internos, não sacáveis e utilizados em ações pagas dentro do RaizFC, como campanhas permitidas. Cada crédito representa R$ 1,00 de capacidade interna, armazenado em centavos. Lotes expiram em aproximadamente 90 dias e são consumidos por FIFO. Não há promessa de rendimento, saque, cashback ou retorno.


11. O que entra no MVP

O MVP entrega páginas públicas completas, app único modular, autenticação e onboarding contextual, busca universal e territorial, gestão de times e torcidas, perfil do jogador, partidas e súmulas, campeonatos, rankings e estatísticas, feed oficial, notificações, cards compartilháveis, carteira e apoio simulados/estruturados, patrocínios, campos, serviços, denúncias e suporte.

A primeira versão é mock-first. Web e mobile devem conseguir demonstrar o produto com dados ricos antes da persistência e dos provedores reais. A API NestJS começa com contratos e casos de uso progressivos, substituindo handlers sem alterar telas.

Não objetivos do MVP

  • chat interno;
  • comentários, curtidas e posts livres;
  • reserva e pagamento de campos;
  • marketplace completo de serviços;
  • geolocalização avançada;
  • Pix, push e IA reais;
  • aplicativo separado de gestão;
  • cards animados ou sem a marca RaizFC;
  • painel administrativo completo;
  • infraestrutura distribuída, microserviços ou cache complexo.

12. Identidade RaizFC

“Raiz” comunica origem, cultura, pertencimento e história. “FC” deixa clara a conexão com o futebol e permite uma marca curta. O símbolo e os lockups oficiais estão no kit assets/new_brand/, com acabamento contemporâneo e aplicações vetoriais, mobile, PWA e sociais.

A paleta evita o verde dominante dos produtos genéricos de futebol. Preto/asfalto traz força e contraste; branco quente representa linhas e clareza; amarelo/holofote traz energia; laranja e vermelho-terra remetem a movimento e terrão; marrom/capotão carrega memória e tradição.

O brand kit oficial encerra a fase provisória Brand v0.1 e o backlog de vetorização antes chamado de v0.2. SPEC-BRAND-001 governa marca/assets; ADR-013 e as specs UX governam sua expressão no produto.


13. Arquitetura de produto e engenharia

O RaizFC usa um monorepo pnpm/Turborepo com Next.js, Expo/React Native, NestJS e TypeScript. Contracts compartilhados são a fronteira entre aplicações, mocks e API.

No frontend, o fluxo oficial é:

Route/Screen → Hook → Service → HttpClient → ApiClient ou MockClient

Telas não acessam endpoints ou fixtures. Componentes visuais recebem props. Estados de carregamento, sucesso, vazio, erro, permissão e status são parte do requisito, não acabamento posterior.

No backend, o fluxo é:

Controller → Application Service → Domain Policy/Service → Repository/Provider

Controllers não carregam regras. Operações críticas usam idempotência, auditoria e transações adequadas. Providers externos permanecem atrás de interfaces.

O desenvolvimento é spec-first, contract-first e mock-first. Increment Specifications definem unidades de entrega; Execution Packs organizam o contexto de execução, revisão, validação e handoff. A IA acelera implementação, mas não substitui aprovação humana de decisões de produto, privacidade, dinheiro e arquitetura.


14. Roadmap

Sprint Zero

Fundação do monorepo, packages, apps, CI, ambientes e smoke test.

Primeira vertical

Página pública do time, validando public DTO, mock/API, service/hook, design system, SEO, deep link, responsividade e estados.

MVP funcional

Auth/onboarding, busca, gestão de time, jogador, partidas, campeonatos, torcidas, financeiro interno, feed/notificações, rankings/cards, campos/serviços, reports e hardening.

Beta

Persistência real, auth de produção, storage, operação mínima, provider Pix, push, analytics e testes com comunidades reais. A marca oficial já está entregue; sua integração visual ocorre nos packs MVP 17.x.

Pós-MVP

Evoluções sociais, reservas, marketplace, inteligência assistiva e demais trilhas apenas após evidência e atualização formal das specs.


15. Como mediremos valor

O MVP deve ser avaliado por capacidade de criar presença e atividade real, não apenas downloads. Indicadores iniciais incluem:

  • times com perfil suficientemente completo;
  • jogos criados e resultados validados;
  • jogadores que confirmam vínculos e histórico;
  • páginas públicas acessadas e compartilhadas;
  • cards gerados e links abertos;
  • follows e cheers ativos;
  • campeonatos publicados e atualizados;
  • torcidas aprovadas com membros;
  • apoios e patrocínios concluídos quando o financeiro real estiver habilitado;
  • reports e claims resolvidos dentro de um processo operacional sustentável.

Métricas não devem estimular spam, manipulação de ranking ou exposição de dados pessoais.


16. Riscos que reconhecemos

O RaizFC depende de confiança em dados que podem ser contestados; por isso, validação e auditoria são essenciais. Rankings podem ser percebidos como injustos; por isso, precisam de contexto e calibragem. Entidades podem ser duplicadas ou abandonadas; por isso, o histórico e a reivindicação devem existir. Financeiro e patrocínio exigem responsabilidade operacional e jurídica antes de produção. O brand kit oficial já está entregue; sua aplicação precisa permanecer consistente. A experiência visual deve ser testada em dispositivos reais para não cair em simplificações ou estética infantil.

Esses riscos não são razões para paralisar o produto. São restrições conscientes que orientam o roadmap e os critérios de lançamento.


17. Compromisso final

O RaizFC não quer “salvar” ou reinventar o futebol raiz. O futebol raiz já existe, já organiza comunidades e já produz histórias. A plataforma existe para oferecer infraestrutura, memória, visibilidade e ferramentas sustentáveis a quem faz o jogo acontecer.

Não começamos pelo código. Começamos pelo domínio. Não começamos pelas telas. Começamos pelas relações, regras e histórias que o produto precisa respeitar. O código é uma implementação dessa visão.

RaizFC — O futebol raiz em jogo.