Show HN: Mayo – A lightweight, web-based audio player that works offline
mayo.clumsy.fishHere is the backstory: I used to use YouTube Music, but then I deleted my Google account. I didn't want Spotify because I hate it for various reasons, and at the same time I wanted to show off my programming skills. So here we are.
---
On the client: solidjs + tailwindcss + minisearch. IndexedDB as the database. One web worker to download audio to OPFS. Another web worker for indexing with minisearch. On top of this a service worker to precache static assets and make the app work offline.
On the server: bun + astro + sqlite + ffmpeg. Full-text search is implemented with fts5. Astro Actions is the best RPC.
---
The submission link goes straight to demo.
Here is the GitHub link:
https://github.com/mayo-dayo/app
Open to feature requests, but no promises.
Wow, that player seems to work really well. The music played almost instantly.
Would it be that responsive for long tracks?
Yes, it would. The browser only needs to download a small amount of audio for the playback to start, and the rest would be downloaded as you listen.