Show HN: Mayo – A lightweight, web-based audio player that works offline

mayo.clumsy.fish

22 points by koakuma-chan 2 days ago

Here 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.

_spduchamp 6 hours ago

Wow, that player seems to work really well. The music played almost instantly.

Would it be that responsive for long tracks?

  • koakuma-chan an hour ago

    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.