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.
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.
Here are a few curated entry points to get a feel for what Dustic sounds like.
- Post-rock intro — Mogwai, GY!BE, Mono and friends
- Dustic Magazine — a monthly zine exploring the archive's hidden corners
- 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.
Dustic is built with SvelteKit, TypeScript, TailwindCSS + DaisyUI, and deploys as a static site (no backend).
git clone https://github.com/essicolo/dustic.git
cd dustic
npm install
npm run dev
# → http://localhost:5173| 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.
Dustic is designed for GitHub Pages. A GitHub Actions workflow handles automatic deployment on push to main.
Manual deployment & custom domain setup
BASE_PATH='/dustic' npm run build
npm install -D gh-pages
npx gh-pages -d build- Add
CNAMEtostatic/:
echo "dustic.app" > static/CNAME-
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 toyourusername.github.io. -
Enable HTTPS in Settings → Pages.
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.
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.
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.
Contributions welcome. Please open an issue first to discuss proposed changes.
GPL-3.0
