Estudo de caso
Horavia
Demonstração funcional de agenda, clientes e serviços para pequenos negócios de atendimento, que qualquer pessoa pode testar sem criar conta.
Tecnologias
- Next.js 16
- TypeScript
- Tailwind CSS
- Supabase
- Zod
- Vitest
Contexto
O Horavia apresenta o Estúdio Aurora, um salão de beleza fictício, para mostrar um fluxo coerente de agenda, clientes e serviços. O repositório também traz a base de um produto real: autenticação com Supabase, banco Postgres com Row Level Security, CRUD protegido e pagamento com Stripe em modo de teste. Nomes, horários e valores exibidos são fictícios.
Decisões
01Demonstração sem dependências externas
A rota /demo funciona sem conta, Supabase ou Stripe. O estado fica só no navegador, é validado com Zod e pode ser limpo ou restaurado. Assim, quem avalia testa o produto em segundos, sem credenciais.
02Isolamento de dados por negócio
No esquema do banco, cada negócio pertence a um usuário e as tabelas de clientes, serviços e atendimentos têm Row Level Security habilitado, com políticas restritas ao dono.
03Acessibilidade verificada no CI
Um teste com axe-core acusou contraste insuficiente: o texto laranja sobre fundo branco tinha 3,1:1. Criei uma cor de texto mais escura para o tema claro e mantive a original no tema escuro.
04Dependências auditadas
A auditoria do npm apontou uma vulnerabilidade crítica no Next.js. Atualizei para a 16.4.2 e fixei as dependências internas afetadas: o npm audit passou de 6 vulnerabilidades para 0.
Resultados
- Lighthouse mobile (página inicial)
- 100 / 95 / 100 / 100
- Lighthouse mobile (/demo)
- 95 / 100 / 100 / 100
- Testes unitários (Vitest)
- 6
- Testes e2e de acessibilidade e layout
- 4
- Vulnerabilidades em produção (npm audit)
- 0
Lighthouse: desempenho / acessibilidade / boas práticas / SEO, em modo mobile, medidos localmente em 19/10/2026.
O que ainda falta
- Os fluxos com Supabase e Stripe exigem credenciais próprias e não ficam abertos na demonstração pública.
- Todos os dados são fictícios.