Usage
The easiest way to start is by exploring the software. If you prefer a traditional prepackaged application approach, you can check out themes. Themes can look and function entirely different from each other, so make sure to explore!
Alternatively, there's facets which allows you to use any component from any theme interchangeably, among pieces that are not in themes; each in a separate browser tab. Each tab talks to each other, so you can for example browse audio in one tab and play it in another.
Themes
Themes each provide a traditional browser web application built on the Diffuse elements. They focus on delivering a great encompassing experience in a single window. They represent the opposite of facets, but can optionally delegate functionality to facets if they wish to do so.
Facets
Facets are various user interfaces, with their own logic, each loaded in their own web page. Every used Diffuse component is configured so that it operates in broadcast mode, making all the pages communicate with each other. You choose the features you want in your software.
Agency
The goal is for every user, no matter their knowledge level, to have agency over their data and their software. One can start with making small changes and gradually progress to making big changes.
You can store your user-data in various places, and easily export, import and sync it.
Take control
-
Level 1: Pick your restaurant, food comes in all shapes and sizes. The equivalent of choosing a Diffuse theme.
-
Level 2: Take out food from various places, eg. cheese shop + bakery. You choose how you combine the foods and from where you order them. That's facets.
-
Level 3: Now that you know which food is good and how to make combinations, you might make a slight customization, add a little something of your own (eg. add some spice). However, you're not quite confident enough which spice to pick, so you hire some help.
This can be done using the facets builder which allows you to build on top of a familiar preconfigured foundation and load custom facets. People might share their own, or maybe you use an LLM to generate something for you (eg. an album art gallery).
-
Level 4: You learned a bit from watching and talking to the help you hired, so you decide to take things in your own hands.
You continue to use the facets builder but learn a bit of HTML, Javascript and CSS; so you're able to write your own facet.
-
Level 5: At this point you're confident enough to make a meal from scratch. You can start very simple, eg. just throwing a steak in the pan with some butter and some salt to it. Then later add some baked potatoes and go from there.
A similar tool comes into play here, the themes builder. Same concept as the facets builder, but now you need to specify the foundation yourself. You can use the elements listed below to do so. The code for these is available from this website or through the Javascript package.
-
Level 6: You open your own restaurant.
You can host the theme you made on any web server, it's only HTML after all. Only difference is that you'll have to create the entire HTML tree, not just the body element, as is the case with the theme builder.
-
Level 7: You got promoted to master chef. Time to open your own restaurant chain.
You can self-host Diffuse, it's open-source! Or you present your own collection of elements.
Elements
The (web) components of the system. These custom elements are then recombined into an entire music player and browser, or whatever you want to build.
Consume these using the facets builder, the Javascript package, or the linked Javascript files down below.
Definitions
All of the elements here are built with these data definitions in mind. That said, you can mix elements that use different definitions; you just have to put a transformer between them in order to translate between them, if needed.
{{ await comp.list({ items: definitions }) }}