Guide
Concept
Diffuse is unlike traditional software; instead of combining several features into a single user interface and producing data output, we do the opposite, we start with the data and work our way up from there.
It provides every user the ability to choose which features and interfaces they want to layer on top of their data.
These features and interfaces are housed into units that we call "facets". They consist of Diffuse elements that are connected, they broadcast their state and the parts of your data that have been updated.
Finally, facets are just regular web pages so they can live wherever. We save them to the user-data storage that's configured and give the user the option to share it. This means that you can load features and interfaces from other people, building software cooperatively.
Getting started
Tutorial
Diffuse is not your typical streaming service, we have to add sources of audio so we have stuff to play. This button below adds some demo content, so you can experiment with the software right away.
Now we should explore what is possible with our audio. Because Diffuse is cooperative and malleable software, our interface can look like anything, and we can pick the features we like. That might sound overwhelming, so let's keep it simple for now.
Let's pick an interface that automatically puts audio from our collection into the queue, and another to play what got put into the queue.
So you said I could pick the features and interfaces that I liked, how does that work?
To do that, we have to look at the other pages shown in the navigation here, such as the featured page. There you'll be able to browse through all the features and interfaces that are provided by Diffuse.
To use a feature, you click the toggle to enable it, this will add it to your software. Interfaces can be added too, but it's not required, you can try them out right away by clicking the link in their title. For interfaces that are more like traditional web applications, delivering more encompassing experiences, look at themes.
TODO: explain adding your own inputs, syncing user data, etc.