Um reprodutor de música 100% client-side: sem upload, sem backend, sem conta. O usuário aponta uma pasta do próprio computador ou celular e o player lê, organiza e toca os arquivos de áudio direto do disco — a biblioteca inteira nunca sai do dispositivo.

Principais funcionalidades

  • Importação de pastas completas via seletor nativo ou arrastar-e-soltar
  • Fila de reprodução com busca e remoção, persistida entre sessões
  • Waveform interativo para buscar posição na faixa
  • Shuffle, repeat e controle de volume
  • Capas de álbum geradas proceduralmente em canvas, a partir de uma seed derivada de cada arquivo
  • Instalável como app (PWA), com cache offline do app shell
  • Controles de mídia integrados ao sistema — play/pause/próxima direto na tela de bloqueio e em fones bluetooth

Desafios técnicos resolvidos

  • Persistência sem duplicar arquivos: em vez de copiar os bytes do áudio pra um banco, o projeto usa a File System Access API pra guardar apenas uma referência (handle) à pasta original no IndexedDB. A biblioteca é restaurada entre sessões pedindo permissão de leitura de novo, sem inflar o armazenamento do navegador.
  • Fallback progressivo: em navegadores sem suporte à File System Access API (Firefox, Safari, e todos os navegadores mobile), o app cai automaticamente pra um modo baseado em input de arquivos — sem persistência entre sessões, mas com a reprodução intacta.
  • PWA completo: manifest + Service Worker cacheando o app shell (HTML/CSS/JS), permitindo instalação na tela inicial e uso offline — os arquivos de música continuam vindo do disco do usuário, o cache cobre só a aplicação em si.

Stack técnica

JavaScript (vanilla), Canvas API, IndexedDB, File System Access API, Media Session API, Service Worker / Web App Manifest, CSS Grid.

Design

Interface autoral em tema dark, com roxo (#7C5CFC) como cor de destaque sobre fundo quase preto, tipografia Space Grotesk, e elementos gerados dinamicamente (waveform, capas de álbum) que reforçam a identidade sem depender de assets externos.

Demo

https://music.rodrigoalvesguerra.com.br