A História Viva da Cantoria Nordestina, Preservada com Tecnologia
Vilanova é um projeto open source de preservação digital da cantoria de viola nordestina. Usamos Inteligência Artificial para transcrever, catalogar e organizar repentes históricos antes que essa memória cultural se perca.
O nome é uma homenagem em vida ao poeta Ivanildo Vilanova, mestre da cantoria que participa da websérie documental "Entre Cordas e Poesia".
- 📝 Transcrição Automática: MP3/WAV → OpenAI Whisper → Texto estruturado
- 📊 Análise de Estrutura: IA identifica estilos, métrica, rimas e figuras de linguagem
- 👥 Catalogação de Cantadores: Perfis completos com biografias e repertórios
- 📚 Acervo Pesquisável: Busca por cantador, estilo, tema, local e época
- 🎓 Material Educativo: Guias de estilos e tutoriais interativos
O site é gerado com Astro em modo estático (SSG): cada rota vira HTML no build, o que favorece SEO e indexação.
- UI: Astro + React (ilhas para busca e filtros) + Tailwind CSS v4
- Dados: JSON em
public/data/lidos em tempo de build viasrc/lib/acervo.ts - Produção: Cloudflare Workers com ficheiros estáticos (
wrangler deploy)
npm install
npm run devnpm run build
npx wrangler devnpx wrangler login
npm run deployNo painel Cloudflare: Compute → Workers & Pages → Create → ligue o repositório e configure:
- Build command:
npm run build - Deploy command:
npx wrangler deploy
Ajuste site em [astro.config.mjs](astro.config.mjs) para o teu domínio canónico (Open Graph e sitemap).
O Vilanova usa uma arquitetura modular otimizada para edição por IA:
public/data/
├── index.json # Índice leve (lista de cantorias)
├── estilos.json # Catálogo de estilos de repente
└── cantorias/ # 📁 Arquivos individuais (2-8 KB cada)
├── pensamento-positivo-os-nonatos.json
├── oitavas-os-nonatos-sao-lourenco.json
└── ... (13 arquivos)
- ✅ Fácil para IA - Arquivos pequenos são mais gerenciáveis por LLMs
- ✅ Git-friendly - Mudanças isoladas, menos conflitos
- ✅ Performance - Carrega só o necessário
- ✅ Manutenção - Um arquivo por cantoria
📖 Ver documentação completa do data model
É muito simples! Basta abrir o projeto no Cursor ou Windsurf e pedir:
Adicione esta cantoria ao acervo:
https://www.youtube.com/watch?v=MrQSh9-k5XU
[Cole a transcrição ou informações que tiver]
Título: Pensamento Positivo
Estilo: Martelo Alagoano
Cantadores: Os Nonatos
A IA irá:
- ✅ Criar arquivo em
public/data/cantorias/{id}.json - ✅ Atualizar
public/data/index.json - ✅ Atualizar metadados automaticamente
- ✅ Criar transcrição estruturada em
repentes/
Sem esforço manual! A arquitetura modular facilita muito o trabalho da IA.
git clone http://github.com/lucis/vilanova.git
cd vilanovaPré-requisitos:
- Node.js >=18.0.0
- npm >=8.0.0
- Deno >=2.0.0
- Editor com IA (recomendamos: Cursor, VS Code com Copilot, ou Windsurf)
Instale as dependências:
npm installConfigure a aplicação:
deco login
npm run configurenpm run devAcesse: http://localhost:8787
Temos várias issues abertas esperando contribuição:
Tipos de Issues:
🎨 Design & UX:
design— Melhorias visuais, identidade culturalux— Experiência do usuário, acessibilidade- PRECISAMOS DE AJUDA! Adoraríamos ter alguém pensando no design cultural do projeto
💻 Desenvolvimento:
good first issue— Perfeitas para começarbackend— Tools, workflows, databasefrontend— React, TailwindCSS, componentes
📝 Conteúdo:
content— Adicionar cantorias, biografias, transcriçõesdocumentation— Melhorar docs, tutoriais
🧠 IA & Análise:
ai— Melhorar prompts, análise de estruturatranscription— Transcrição e revisão
- Crie uma branch:
git checkout -b feat/sua-feature - Faça suas alterações
- Commit:
git commit -m "feat: descrição clara do que foi feito" - Push:
git push origin feat/sua-feature - Abra um Pull Request
Estamos precisando de ajuda com design!
Se você tem experiência com:
- Design de interfaces culturais e memoráveis
- Ilustrações que fogem de clichês
- Tipografia e hierarquia visual
- Design system e paletas de cores
- UX para portais educativos
Por favor, abra uma issue propondo melhorias!
Ideias que adoraríamos ver:
- Ilustrações/SVGs minimalistas de violas e cantadores
- Padrões decorativos (azulejos, renda, xilogravura)
- Visualizações de dados (estrutura de versos, esquemas de rima)
- Melhoria da identidade visual
- Sistema de ícones customizado
Atualmente temos 4 cantorias transcritas:
- Galope à Beira Mar - Os Nonatos (Serra Talhada, PE)
- Galope à Beira Mar - Sebastião da Silva e Ivanildo Vilanova (Caruaru, PE)
- Oitavas - Os Nonatos (São Lourenço da Mata, PE)
- Martelo Alagoano - Artista a identificar
📁 Ver transcrições: [/repentes/](./repentes/)
📋 Catálogo completo: [/repentes/cantorias.json](./repentes/cantorias.json)
Quer adicionar cantorias ao acervo? Veja como contribuir com conteúdo
vilanova/
├── src/ # Astro + React (páginas, componentes, acervo em build)
├── public/data/ # JSON do acervo (cantorias, index, estilos)
├── repentes/ # Transcrições .txt (e ficheiros de áudio se houver)
├── entre-cordas-e-poesia/ # Websérie (transcrições .txt)
├── musicas/ # Ficheiros de músicas catalogadas
└── docs/ # Toda a documentação em Markdown
├── README.md # Índice
├── plans/ # Planeamento e specs
├── estilos/ # Guias por estilo de repente
├── projeto/ # Data model, resumos, histórico
└── …
Estamos buscando pessoas para pensar o design cultural do Vilanova.
Se você tem experiência com design, por favor abra uma issue propondo:
- Ilustrações/SVGs de violas, cantadores, elementos nordestinos
- Sistema de ícones customizado
- Padrões decorativos (azulejos, renda, xilogravura)
- Visualizações de estrutura poética
- Melhoria da identidade visual
Nosso desafio: Criar um design que seja culturalmente rico, respeitoso com a tradição, mas moderno e acessível. Fugir de clichês.
Adicionar Cantorias:
- Edite
[/repentes/cantorias.json](./repentes/cantorias.json) - Adicione metadados (cantadores, estilo, local, links YouTube/Spotify)
- Se tiver transcrição, adicione arquivo
.txtem/repentes/ - Abra um PR
Documentar Cantadores:
- Biografias, trajetórias, estilos favoritos
- Fontes e referências bibliográficas
- Fotos (com permissão)
Transcrever Repentes:
- Use a ferramenta de backoffice (em desenvolvimento)
- Revise adaptações fonéticas importantes
Áreas que precisam de ajuda:
- Frontend (React + TailwindCSS + TanStack Router)
- Backend (Deco Tools e Workflows)
- Database (Drizzle ORM + SQLite)
- Análise de IA (prompts, validação de estrutura)
Leia antes:
- Melhorar READMEs
- Escrever tutoriais sobre estilos
- Documentar o processo de catalogação
- Criar guias de contribuição
Este projeto é IA-friendly! O template Deco funciona muito bem com editores de IA.
Recomendamos:
- Cursor
- Windsurf
- VS Code + GitHub Copilot
Como usar:
- Abra o projeto no seu editor com IA
- Leia
.cursorrulese a pastadocs/plans/(edocs/projeto/DATA-MODEL.mdse precisar de detalhe) - A IA entenderá a arquitetura atual (Astro estático + JSON em
public/data/) - Peça à IA para seguir os padrões do projeto
- Use exemplos existentes como referência
Por enquanto, usamos JSON files como banco de dados:
- Cantorias:
/repentes/cantorias.json - Estilos: Schema em
/server/schema.ts(a ser populado) - Cantadores: Schema definido, dados a adicionar
Futuro: Migraremos para SQLite (Cloudflare Durable Objects) quando tivermos volume suficiente.
- Estrutura básica do projeto
- Transcrição de 4 repentes
- Transcrição da websérie "Entre Cordas e Poesia"
- Design system e identidade visual
- Landing page completa com storytelling
- Página de homenagem à websérie
- Guia de estilos (3 estilos iniciais)
- Galeria básica de cantadores
- Página "Sobre" e "Contribuir"
- Sistema de busca no acervo
- Players de áudio sincronizados com transcrição
- Visualização de análise estrutural
- Perfis completos de cantadores
- Editor de repentes com IA
- Calendário de cantorias
- Sistema de aprendizado gamificado
- API pública para pesquisadores
O projeto Vilanova é uma homenagem ao poeta Ivanildo Vilanova, cantador de Caruaru (PE) que dedicou sua vida ao repente.
"O cantador deve estar apto a cantar o sertão, a praia, a universidade, a linguagem do caboclo. A cantoria ela tem que viajar em todos os aspectos."
— Ivanildo Vilanova
Por que Vilanova?
Ivanildo representa a essência do que queremos preservar: um cantador que domina múltiplos estilos (Sextilha, Mourão Voltado), que se adaptou aos tempos modernos sem perder a tradição, e que sempre apoiou novas gerações.
Ele participa da websérie "Entre Cordas e Poesia", que inspirou a criação deste projeto.
Saiba mais: Ivanildo Vilanova no Dicionário MPB
Este projeto é open source sob a Licença MIT.
Você é livre para:
- ✅ Usar comercialmente
- ✅ Modificar e distribuir
- ✅ Uso privado
- ✅ Contribuir de volta (incentivado!)
- Ivanildo Vilanova e todos os cantadores que mantêm viva essa tradição
- Fabrício Vale e Joalisson Diniz pela websérie "Entre Cordas e Poesia"
- Lei Paulo Gustavo pelo financiamento da websérie
- Todos os contribuidores deste projeto open source
- 🌐 Site: localhost-aa14baa7.deco.host (em desenvolvimento)
- 💻 GitHub: github.com/lucis/vilanova
- 📋 Issues: Veja como ajudar
- 💬 Discussões: GitHub Discussions
- 📺 Websérie: Entre Cordas e Poesia
- 🎵 Ivanildo Vilanova: Dicionário MPB
- 📚 Transcrições: /entre-cordas-e-poesia
- 🔧 Deco Platform: decocms.com
- 📖 Documentação: docs.deco.page
- 🚀 Deploy: Baseado em Cloudflare Workers
Feito com ❤️ para o Nordeste brasileiro
"O repente é puro, é santo, é divino. É uma janela para a alma, uma janela para o mundo da sabedoria." — Raimundo Lira