finds.dev← search

// the find

leerob/next-music-player

★ 830 · TypeScript · updated May 2026

A blazing fast, information dense media player built with Next.js.

A local music player UI built on Next.js, SQLite (via Drizzle), and the Web Audio API. It's a demo project from a Vercel employee — polished enough to run, but clearly built to showcase Next.js patterns rather than replace any real music player.

MediaSession API integration is done correctly — system controls and lock screen metadata actually work, which most toy audio projects skip. Keyboard navigation with vim-style bindings (h/j/k/l) is a thoughtful touch for a developer-facing tool. The audio streaming route (`/api/audio/[filename]`) handles local files cleanly via a Next.js route handler rather than serving static assets, which means you can add auth later without rearchitecting. Drizzle + SQLite for local music metadata is the right call — no Postgres to babysit for a personal tool.

Volume controls are wired to nothing and active song persistence is explicitly listed as unfinished — these are table-stakes features for any music player. The Vercel Blob dependency for playlist cover images means you need a Vercel account to use playlist images properly; there's no local file fallback. Search is 'basic' by the README's own admission — no fuzzy matching, no search by album or artist, just raw SQL LIKE queries. The setup flow requires `yt-dlp` to get audio files in the right format, which adds a non-obvious dependency that trips up anyone not already living in the command line.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →