A music player that connects to your cloud/distributed storage,
in the form of a static, serverless, web application.
📍 Available at diffuse.sh and for download.
User layer for user-data storage.
Music layer for music storage.
- Blockstack
- Dropbox
- IndexedDB (browser)
- IPFS
- RemoteStorage
- Textile
Diffuse is a static web application, which means it's just HTML, CSS and Javascript. No REST API, database, or anything backend-related involved. The app uses a hash, aka. fragment, based routing system, so you don't need any special server rules for routing. You can download a pre-build web-only version of Diffuse on the releases page. Diffuse uses service workers, so you may need HTTPS for it to work smoothly in certain browsers. I should also note that some source services use OAuth, so you'll need to use your own application credentials (eg. google drive client id + secret).
In short:
- Diffuse is a static, serverless, web application
- Routing is done using hashes/fragments (eg.
diffuse.sh/#/sources
) - Download a web build on the releases page
- Uses service workers (use HTTPS if possible)
- May need own OAuth application credentials for some source services
For version numbers, see .tool-versions
and stack.yaml
.
All of these, except the last one, can be install using homebrew.
- Elm programming language
- Haskell programming language
- Node.js programming language with the Yarn package manager
- Just command runner (improved
make
) - Devd web server for development (optional)
- Elm Format elm code formatter (optional)
- Watchexec watching for file changes (optional)
- Elm Proofread documentation tests (optional)
# 🍱
# 1. Install programming languages:
# Elm 0.19.1 & Haskell (Stack), see links above
# 2. Install dependencies
yarn install
# 3. Build, start server & watch for changes
just