Skip to content
essicoloPublic

About

pure audio discovery of the weird, the wonderful, and the forgotten

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

"screenshot of dustic.app"

Dustic

Audio discovery of the weird, the wonderful, and the forgotten.

Dustic is a free, open-source music player that streams audio from the Internet Archive and the FunkWhale network, keeping your audio profile yours, without online account, ads, or tracking.

Try it now on dustic.app

Dustic allows browsing millions of recordings: open music, rare vinyl rips, live bootlegs, field recordings, forgotten albums, audiobooks, podcasts. Everything plays in your browser or as a pinned app on your phone.

Listen

Here are a few curated entry points to get a feel for what Dustic sounds like.

Why Dustic?

  • No account required. Open the app. Search. Press play.
  • Offline playback. Download tracks to keep listening without a connection.
  • Your data stays yours. No cloud profile; export/import your library as a JSON file, or sync across devices with WebDAV.
  • Installable. Works as a progressive web app on mobile and desktop.
  • Rule-based autoplay. Set up smart queue rules to keep the music flowing.

For developers

Dustic is built with SvelteKit, TypeScript, TailwindCSS + DaisyUI, and deploys as a static site (no backend).

Local setup

git clone https://github.com/essicolo/dustic.git
cd dustic
npm install
npm run dev
# → http://localhost:5173

Commands

Command Description
npm run dev Development server
npm run build Production build
npm run preview Preview production build
npm run check TypeScript and Svelte checks
npm test Run unit tests
npm run test:watch Tests in watch mode
npm run test:ui Tests with browser UI

See src/tests/README.md for testing documentation.

Deployment

Dustic is designed for GitHub Pages. A GitHub Actions workflow handles automatic deployment on push to main.

Manual deployment & custom domain setup

Manual deployment

BASE_PATH='/dustic' npm run build
npm install -D gh-pages
npx gh-pages -d build

Custom domain

  1. Add CNAME to static/:
echo "dustic.app" > static/CNAME
  1. Point DNS A records to GitHub Pages IPs (185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153) or add a CNAME to yourusername.github.io.

  2. Enable HTTPS in Settings → Pages.

SPA routing

The build produces identical index.html and 404.html files. GitHub Pages serves 404.html for unknown routes, and client-side routing takes over from there.

User data

Dustic stores nothing server-side. Favorites, playlists, history and settings live in-browser and can be exported/imported as JSON. WebDAV sync is available for cross-device use.

Internet Archive API

Search requests go directly from the user's browser to the Internet Archive's public API. No server-side proxying — each user has their own rate limit quota.

Contributing

Contributions welcome. Please open an issue first to discuss proposed changes.

License

GPL-3.0

About

pure audio discovery of the weird, the wonderful, and the forgotten

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages