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".
🌐 Ver o site ao vivo | 💻 Repositório
- 📝 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
Este projeto é uma aplicação Deco (decocms.com) — uma plataforma moderna para desenvolvimento full-stack que facilita muito a criação de aplicações web.
Por que Deco?
- ⚡ Deploy instantâneo: Suba para produção com um comando
- 🔧 Tools e Workflows: Sistema MCP para criar ferramentas reutilizáveis
- 🤖 Integração com IA: OpenAI, Claude e outros modelos prontos para usar
- 🗄️ Database built-in: SQLite com Drizzle ORM
- 🎨 React + TailwindCSS: Frontend moderno e responsivo
- ☁️ Cloudflare Workers: Infraestrutura global e performática
Template Completo: Este projeto usa o template React + Tailwind do Deco, que já vem com:
- Sistema de autenticação
- Tools para criar funcionalidades
- Workflows para processos complexos
- Database configurado
- Frontend com TanStack Router
Toda a lógica de transcrição, análise de estrutura e catalogação é feita através de Deco Tools que podem ser reutilizados e compostos.
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/
📋 Catálogo completo: /repentes/cantorias.json
Quer adicionar cantorias ao acervo? Veja como contribuir com conteúdo
vilanova/
├── server/ # Backend (Cloudflare Workers + Deco)
│ ├── main.ts # Entry point
│ ├── schema.ts # Database schema (Drizzle ORM)
│ ├── tools/ # Domain-organized tools
│ └── workflows/ # Multi-step workflows
├── view/ # Frontend (React + TailwindCSS)
│ └── src/
│ ├── routes/ # TanStack Router pages
│ ├── components/ # UI components
│ └── hooks/ # TanStack Query hooks
├── repentes/ # Transcrições e dados
│ ├── *.txt # Transcrições individuais
│ └── cantorias.json # Catálogo de cantorias
├── entre-cordas-e-poesia/ # Websérie documental
│ ├── episodio-*.txt # Transcrições dos 11 episódios
│ └── README.md # Sobre a série
└── plans/ # Documentação de planejamento
├── 01-overview.md
├── 04-landing-page-v2.md
├── 06-entre-cordas.md
└── 07-site.md
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 - 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 os arquivos em
/.cursorrules-vilanovae/plans/ - A IA entenderá nossa arquitetura (Deco + Mastra + TanStack)
- 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