Plataformas / ABBA Cifras
ABBA Cifras
Plataforma SaaS multi-tenant de gestão musical para igrejas. Escala de equipe, repertório, cifras com transposição em tempo real, ferramentas musicais e comunicação interna, em uma única plataforma online.
Arquitetura
Cada igreja é uma organização isolada dentro da mesma base. O sistema tem três áreas: site público com compra, área do cliente e painel administrativo com autenticação separada. A API vive no mesmo aplicativo.
Site público
Apresentação, planos e compra com cartão e Pix.
Área do cliente
Escala, repertório, cifras e ferramentas de cada igreja.
Painel administrativo
Gestão de clientes, planos e pagamentos, com login separado.
Stack
- Interface
- Next.js, React, TypeScript
- Servidor
- Rotas de API do Next.js, TypeScript
- Banco
- Postgres (Supabase)
- Hospedagem
- Vercel, CDN, Deploy contínuo via Git
- Pagamento
- Mercado Pago
- Resend (SPF, DKIM e DMARC)
- Inteligência artificial
- Claude (Anthropic)
- SEO técnico
- Sitemap automático, JSON-LD, Search Console
Engenharia de produto
Afinador no navegador
Detecção de altura por autocorrelação, processada em tempo real, sem servidor.
Metrônomo de precisão
Agendamento de áudio look-ahead, em vez de timer comum.
Transposição em tempo real
Troca de tom com diagramas de acorde interativos para violão e teclado.
Geração cromática de acordes
A partir de um acorde base, o sistema gera as 12 posições cromáticas.
Provisionamento automático
Da intenção de compra ao pagamento: organização, responsável e trial criados sem intervenção.
Catálogo auditado
Mais de 900 músicas e mais de 700 acordes auditados.
Três planos, com trial de 3 dias no nível mais alto. Assinatura recorrente e pagamento único (semestral e anual), com cartão e Pix.
Segurança
Controles implementados, por domínio. Auditoria rota por rota realizada em 27/09/2026.
Autenticação e sessão
- Senhas com hash bcrypt.
- Cookie de sessão httpOnly, secure e sameSite.
- Sessão administrativa validada no banco, com revogação remota e limite de sessões simultâneas. Sessão única para usuário comum.
- Bloqueio da conta após tentativas inválidas, com desbloqueio por código enviado por e-mail.
- Registro de acessos do administrador.
Autorização e isolamento
- Toda consulta filtrada pela organização, por um helper centralizado, aplicado na camada de aplicação.
- Rotas com identificador validam se o recurso pertence ao usuário.
Pagamentos
- Assinatura do webhook validada com HMAC e comparação resistente a timing attack.
- Idempotência garantida por constraint única no banco.
- Pagamento único, assinatura recorrente e recusa de cobrança tratados separadamente.
- Fluxo validado ponta a ponta com compra real.
Proteção da aplicação
- Content-Security-Policy, X-Frame-Options, Referrer-Policy, nosniff e HSTS.
- Limitação de taxa em login, desbloqueio e pedido de compra.
- Erros genéricos ao cliente, detalhe apenas no log interno.
- Nenhuma chave privilegiada exposta ao navegador.
Dados e auditoria
- Log de auditoria em todas as ações administrativas de escrita.
- Exportação administrativa sem hash de senha nem token de sessão.
- Backup de banco realizado e testado.
Performance
PageSpeed Insights oficial, mobile, home, medido em 25/09/2026.
- Desempenho
- 98
- Acessibilidade
- 98
- Boas práticas
- 100
- SEO
- 100
- LCP
- 2,3 s
- FCP
- 0,9 s
- TBT
- 0 ms
- CLS
- 0
- Speed Index
- 2,2 s
Decisões de engenharia
Isolamento com helper centralizado e verificação por objeto
O filtro por organização vive num único ponto, e cada rota confere a propriedade do recurso, em vez de repetir a lógica rota a rota.
Idempotência do webhook no banco
A garantia vem de uma constraint única, porque checagem só em código deixa brecha de corrida.
LCP corrigido por auditoria, não por suposição
A causa real era uma imagem com resolução muito acima da exibida e um carrossel abaixo da dobra competindo banda com o elemento principal.