Back to Projects

ZTM Music Player

Tuneo is a TypeScript progressive web app music player that imports local MP3s, reads ID3 tags and cover art, stores your library in IndexedDB, and plays offline with playlists, shuffle, and Media Session controls.

  • TypeScript
  • Progressive Web App
  • IndexedDB
  • Web Audio
  • ID3 Metadata
  • Vercel

Screenshots

Desktop

  • ZTM Music Player desktop screenshot 1

Case study

Problem

Streaming apps lock you into accounts, subscriptions, and someone else’s catalog. People who already own MP3s still lack a polished way to import files, see album art and tags, build playlists, and keep listening when the network drops — without uploading their library to a server.

Solution

Tuneo is a fully client-side music player: drag in your files, parse ID3 tags and embedded artwork in the browser, fingerprint tracks to avoid duplicates, and keep the entire library in IndexedDB. Playback includes a real queue, shuffle/repeat, playlist management, Media Session lock-screen controls, and session resume — with no backend and no login.

Process

Built in TypeScript as a static, Vercel-deployable PWA. Import pipelines use music-metadata for ID3/Vorbis/MP4 tags and SHA-256 content hashes for deduplication; the UI covers search, artist/album filters, multi-select bulk actions, and drag-reorderable playlists. Offline installability, accessibility checks, and acceptance tests keep the player reliable as a local-first app.