Karaoke de casa: um telão (host, PC/TV via Electron) mostra a música tocando e a fila em tempo real, enquanto os convidados buscam músicas e entram na fila pelo próprio celular — sem instalar nada, só um código de sala.
- Nuxt 4 + Vue 3 + Tailwind CSS
- Electron empacotando a tela do host como app desktop
- Pusher para realtime (sincroniza host e convidados)
- Upstash Redis para persistência de sessão
- YouTube Data API para busca de músicas
npm installCrie um .env na raiz com:
# YouTube Data API (busca de músicas)
API_KEY=
# Upstash Redis (persistência da sessão)
UPSTASH_REDIS_REST_URL=
UPSTASH_REDIS_REST_TOKEN=
# Pusher (realtime — server-side)
PUSHER_APP_ID=
PUSHER_KEY=
PUSHER_SECRET=
PUSHER_CLUSTER=mt1
# Pusher (client-side, expostas ao browser)
NUXT_PUBLIC_PUSHER_KEY=
NUXT_PUBLIC_PUSHER_CLUSTER=mt1npm run dev # servidor web em http://localhost:3000
npm run electron:dev # web + janela Electron do hostnpm run build # build web (Nuxt)
npm run generate # build estático
npm run electron:build # empacota o app desktop (dist-electron/)/— escolha entre modo Host ou Cliente/host— telão: música tocando, letra/player do YouTube, fila lateral/join— convidado entra com nome + código da sala/room/[code]— convidado busca músicas, vota e acompanha a fila pelo celular
PRODUCT.md e DESIGN.md documentam o contexto estratégico e o sistema visual (paleta neon, tipografia, componentes) do projeto — mantidos via a skill "Impeccable" do Claude Code.
Este projeto foi desenvolvido com o auxílio do Claude Code, usado tanto na implementação de funcionalidades quanto nas passadas de design/polish da interface.