Visualizador de cifras para qualquer instrumentista — violão, guitarra, baixo, teclado e mais — com pastas, transposição, metrônomo e ferramentas de palco.
CifrasHub é uma aplicação web open source para músicos que querem organizar e visualizar cifras (tablatures) de músicas. Suporta autenticação, sincronização na nuvem, modo offline via PWA e diversas ferramentas de prática e apresentação.
- Busca e visualização de cifras integrada com o Cifra Club
- Pastas para organizar suas cifras favoritas
- Transposição automática com cálculo de capotraste
- Setlists para montar e executar repertórios ao vivo
- Metrônomo integrado com controle de BPM
- Modo palco — tela limpa otimizada para apresentações
- Compartilhamento público via link
- PWA — funciona offline após a primeira visita
- Integração com YouTube — associe vídeos às cifras
- Sincronização na nuvem para usuários autenticados
| Camada | Tecnologia |
|---|---|
| Framework | Next.js 16 (App Router) |
| UI | React 19 + shadcn/ui + Tailwind CSS 4 |
| Banco de dados | PostgreSQL via Neon (serverless) |
| ORM | Drizzle ORM |
| Autenticação | Neon Auth (Better Auth) |
| Deploy | Vercel |
- Node.js 20+
- npm 10+
- Conta no Neon (banco de dados PostgreSQL serverless gratuito)
# Clone o repositório
git clone https://github.com/Geeks-Zone/cifrashub.git
cd cifrashub
# Instale as dependências
npm install
# Configure as variáveis de ambiente
cp .env.example .env.local
# Edite .env.local com suas credenciais- Crie um projeto no Neon Console
- Copie as connection strings para
.env.local - Gere migrações versionadas quando alterar
src/db/schema.ts:
npm run db:generate- Aplique o schema apenas em ambientes locais ou revisados:
npm run db:pushnpm run devAcesse http://localhost:3000.
| Script | Descrição |
|---|---|
npm run dev |
Inicia o servidor de desenvolvimento |
npm run build |
Gera o build de produção |
npm run start |
Inicia o servidor de produção |
npm run lint |
Executa o ESLint |
npm run typecheck |
Valida os tipos TypeScript |
npm run test |
Executa a suíte Vitest uma vez |
npm run test:watch |
Executa a suíte Vitest em modo watch |
npm run audit |
Verifica vulnerabilidades moderadas ou maiores |
npm run verify |
Executa lint, typecheck, testes, build e audit |
npm run db:generate |
Gera migrações Drizzle versionadas |
npm run db:push |
Aplica o schema ao banco de dados em ambiente controlado |
npm run db:studio |
Abre o Drizzle Studio (GUI do banco) |
- Conecte o repositório ao Vercel
- Em Settings → Environment Variables, configure as variáveis do
.env.examplepara os ambientes Production, Preview e Development:DATABASE_URL— connection string pooled do NeonDATABASE_URL_UNPOOLED— connection string direct do Neon (necessária paradrizzle-kit push)NEON_AUTH_COOKIE_SECRET— gerado comopenssl rand -base64 32(aceitaAUTH_COOKIE_SECRETcomo fallback)NEON_AUTH_BASE_URL— URL do seu projeto Neon Auth (aceitaNEON_AUTH_URLcomo fallback)NEXT_PUBLIC_BASE_URL— domínio público (ex.:https://www.cifrashub.com.br)- Em produção, use
https://www.cifrashub.com.brcomo domínio canônico e mantenhahttps://cifrashub.com.brapenas como redirecionamento parawww
- O comando de build é
npm run vercel-build, que em Production aplica migrações SQL e fazdrizzle-kit pushantes donext build. Em Preview, só roda onext build. - Clique em Deploy.
Atenção: se
DATABASE_URLnão estiver configurada em Production, o build falha com mensagem clara indicando quais variáveis estão faltando.
CifrasHub is an open source web application for musicians to organize and view chord sheets (cifras). It supports authentication, cloud sync, offline mode via PWA, and various practice and performance tools.
- Search and view chord sheets integrated with Cifra Club
- Folders to organize your favorite chords
- Transposition with automatic capo calculation
- Setlists to build and perform live repertoires
- Built-in metronome with BPM control
- Stage mode — clean screen optimized for performances
- Public sharing via link
- PWA — works offline after the first visit
- YouTube integration — link videos to songs
- Cloud sync for authenticated users
- Node.js 20+
- npm 10+
- Neon account (free serverless PostgreSQL)
git clone https://github.com/Geeks-Zone/cifrashub.git
cd cifrashub
npm install
cp .env.example .env.local
# Edit .env.local with your credentialsGenerate versioned migrations after schema changes:
npm run db:generateApply the schema only in local or reviewed environments:
npm run db:pushnpm run devOpen http://localhost:3000.
PT: Este projeto é uma ferramenta pessoal de organização de cifras. O conteúdo das cifras (letras, acordes) é buscado diretamente pelo navegador do usuário a partir do Cifra Club no momento da visualização — o CifrasHub não armazena, redistribui ou reproduz esse conteúdo. Ao usar o CifrasHub, você concorda com os Termos de Uso do Cifra Club. O CifrasHub não tem nenhuma relação comercial ou oficial com o Cifra Club.
EN: This project is a personal chord sheet organization tool. Chord content (lyrics, chords) is fetched directly by the user's browser from Cifra Club at the time of viewing — CifrasHub does not store, redistribute, or reproduce that content. By using CifrasHub, you agree to Cifra Club's Terms of Use. CifrasHub has no commercial or official relationship with Cifra Club.
Este projeto tem uma comunidade no WhatsApp para tirar dúvidas, compartilhar ideias e acompanhar novidades.
Entre pelo link: WhatsApp Community
Contributions are welcome! Please read CONTRIBUTING.md before opening a pull request.
Please read SECURITY.md for responsible disclosure guidelines.
MIT © CifrasHub Contributors