NEW
The refactoring of the SolidOS UI is funded by
/
Read more
If you made it here you must already have heard about Solid. This space is home to the SolidOS code. Keep reading if you want to know:
- π€ What is SolidOS
- π©π½βπ» SolidOS technical intro
- π― How the SolidOS team works
- ππ» How you can contribute and help SolidOS thrive
- π Getting started with the SolidOS code
- π License
- π€ Feedback and questions
For experimenting with SolidOS implementations, you can:
- try SolidOS on a test-pod (provider:
https://solidcommunity.net:8443, user and password:test-pod) - take a pod on https://solidcommunity.net or another provider
- check out the SolidOS WebApp
- use as a stand-alone desktop app with Data-Kitchen
If you are looking for something else, let us try and guide you:
- for learning about Solid, read about Solid and visit solidproject.org
- to try out Solid, head over to getting started with Solid
- for how SolidOS works, visit the user guide and SolidOS project Pod
- for how the community works, go over to Solid process
- chat with others about Solid on the forum and on instant chats
- join an event over at Solid events or sign up for the Solid newsletter to not miss any news
- read the Solid community code of conduct at Solid CoC
Further links:
- SolidOS explanation video
- SolidOS goals & roadmap
- SolidOS FAQs
- SolidOS Wiki
- SolidOS Guidelines
- report a problem with SolidOS by creating a git issue
- have a new idea? Create a Solid user story/new idea ticket
- check out the in-progress Solid specification and in-progress Solid specification repo. Find the previous specifications, now outdated but still in use if you work with NSS: https://github.com/solid/solid-spec.
- Glossary of terms frequently used in Solid environment
πππ SolidOS is an Operating System for Solid. πππ
Solid is developing into a booming ecosystem which involves specifications π, tech stack π , servers π», and apps πΉ. We, the SolidOS team, believe that this ecosystem also needs an Operating System.
When you get a new phone, PC, or tablet, they usually come with an operating system that provides some basic functionality to get started and be productive. More importantly, you can personalize your OS to your needs, by installing apps, managing content, and much more.
Solid is not shipped with a piece of hardware (who knows, maybe in the future it will...). For now, you get into the ecosystem once you create a WebID and provision your own personal data store (often called a "Pod") (see getting started with Solid - get a pod). Immediately after getting your new Solid WebID and Pod space, SolidOS is helping you to navigate the Solid ecosystem.
SolidOS is much more. SolidOS showcases the possibility of Solid for the future, by which we mean β
- true data ownership β management of personal data & authorization control
- avoidance of vendor lock-in to services β easy moving to a different Pod or WebID provider
- data reuse between applications β with help of data interoperability and data discoverability
Watch a SolidOS explanation video as part of the Solid World event series.
Take a look at an example: SolidOS project Pod. SolidOS implemented features:
- π° create a personal webpage
- π manage your WebID and the data about yourself
- π manage personal data/files on your Pod
- π€ directly connect and engage with other people who are part of the ecosystem (add friends, chat, ...)
- π‘ make use of interconnected apps
- π§ create your own app with Inrupt's Solid Reach SDK or get inspired from a blog post
- and more (see SolidOS user guide)
Read more about the current SolidOS π vision, goals π―, and roadmap π on the SolidOS project Pod.
Note: SolidOS is also known by names like Data Browser (default) or Databrowser, and at times as mashlib. Which name is used depends on which flavour of SolidOS you are referring to:
- The SolidOS Databrowser Frontend - a frontend for Solid Servers like solidcommunity.net, represented by this codebase;
- The SolidOS Databrowser Webapp - a stand-alone web app served from mashlib: https://solidos.github.io/mashlib/dist/browse.html;
- The SolidOS Data-Kitchen - a stand-alone desktop app: https://github.com/solidos/data-kitchen;
- The SolidOS software stack - a set of libraries that may be used independently of the databrowser, see next section.
The SolidOS stack contains β
It also makes use of β
Let's take a look at an architecture diagram of SolidOS:
A colorful dependency tree can be seen here:
As you can see, SolidOS is composed of several repositories:
- rdflib.js β Javascript RDF library for browsers and Node.js
- solid-logic β core business logic of SolidOS
- mashlib β a solid-compatible code library of application-level functionality for the world of Solid
- solid-panes β a set of core solid-compatible panes based on solid-ui
- solid-ui β User Interface widgets and utilities for Solid. Building blocks for solid-based apps
In the above diagram, SolidOS is deployed on the Node Solid Server (NSS), but it can also be set up to run on the Community Solid Server (CSS) or on ANY Solid-compliant server. When you download and compile the SolidOS code, an NSS is also installed locally, to have everything ready to develop.
For further details about each GitHub repository, please visit them via the links above for Documentation.
We collect SolidOS code good practices and know how in SolidOS documentation pages.
SolidOS FAQs part of the SolidOS developer guide also contains some Q&A and technical troubleshooting infos.
First and foremost β who are the contributors of SolidOS?
The SolidOS codebase has a long history and there have been a lot of contributors over the years (see: GitHub contributors). The most active team members are mentioned in the SolidOS Team on the SolidOS Pod Contacts.
The SolidOS team meets every week for a 1h touchdown. We discuss what was done over the past week, what needs to be done next, delegation of tasks, and talk about technical aspects. Find the meeting time and link on the SolidOS project Pod.
We take minutes on our meetings. You can find them on the SolidOS pod.
In between team meetings, we avidly communicate over at the Matrix SolidOS channel. Drop by to chat with us, ask questions, or simply say "Hi".
Sometimes some ideas need an incubation period and further discussion. We make use of GitHub discussions for that.
For daily tasks, we have a Project Board with different views.
For a longer-term roadmap, we use a Solid task manager, and plan the next milestones on Kanban.
Additional useful links:
- SolidOS FAQs and the SolidOS Wiki
- Solid process β overall description of how the whole ecosystem works
- Forum and Solid instant chat channels
- Solid events and the Solid newsletter
For information about contributing, team processes, code and docs workflows, and local development, please see CONTRIBUTING.md.
The SolidOS code is available under the MIT License.
Don't hesitate to chat with us on gitter or report a bug.