# solid/solid

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/solid-solid).**

8,108 stars · 368 forks · HTML · MIT · archived

## Links

- GitHub: https://github.com/solid/solid
- Homepage: https://solidproject.org
- awesome-repositories: https://awesome-repositories.com/repository/solid-solid.md

## Topics

`communication`

## Description

Solid is a protocol and ecosystem for decentralized web applications that separates application logic from data storage. It enables users to store and control their personal information in personal online data stores, known as Pods, ensuring that individuals own their data rather than the applications they use.

The project provides a framework for decentralized identity and authentication using WebID and OpenID Connect, decoupling identity from central providers. It implements a resource-level permission system via Web Access Control, allowing users to grant or deny read, write, and append actions through RDF-based policies.

The platform is built on Linked Data principles, utilizing RDF graphs and the Linked Data Platform protocol to ensure interoperability between different data stores and applications. Its capability surface includes real-time resource notifications via WebSockets and Webhooks, as well as mechanisms for data discovery through type indexes and shape trees.

Users can self-host Solid server implementations or obtain storage from hosted providers to manage their personal files and linked data.

## Tags

### Business & Productivity Software

- [Personal Data Storage](https://awesome-repositories.com/f/business-productivity-software/personal-data-storage.md) — Provides a system for private, user-controlled storage of personal data, separating information from applications. ([source](https://solidproject.org/feed.xml))
- [Personal Data Store Protocols](https://awesome-repositories.com/f/business-productivity-software/personal-data-storage/personal-data-store-protocols.md) — Defines the technical protocol for separating data storage from application logic to ensure user information ownership.
- [Personal Data Store Hosting](https://awesome-repositories.com/f/business-productivity-software/personal-data-storage/personal-data-store-hosting.md) — Provides the infrastructure to host dedicated storage spaces for individuals to control their personal data. ([source](https://solidproject.org/for_organisations))
- [Personal Data Store Hosting](https://awesome-repositories.com/f/business-productivity-software/personal-data-store-hosting.md) — Allows users to self-host Solid servers or use hosted providers to manage their personal linked data.

### Security & Cryptography

- [Data Ownership Solutions](https://awesome-repositories.com/f/security-cryptography/data-ownership-solutions.md) — Separates application logic from data storage to ensure individuals maintain full ownership and control of their personal information.
- [Access Control Managers](https://awesome-repositories.com/f/security-cryptography/access-control-managers.md) — Provides tools for managing and enforcing granular read and write permissions for data resources.
- [Resource-Level Access Controls](https://awesome-repositories.com/f/security-cryptography/granular-access-controls/resource-level-access-controls.md) — Enforces resource-level permissions using RDF-based policies to grant or deny data actions.
- [Document Access Permissions](https://awesome-repositories.com/f/security-cryptography/identity-access-management/access-control/access-control-models/permission-based-security/access-control-policies/document-access-permissions.md) — Implements fine-grained rules to define who can read or edit specific documents within a data store. ([source](https://solidproject.org/for_developers))
- [User Identity Verification](https://awesome-repositories.com/f/security-cryptography/identity-authentication/user-identity-verification.md) — Implements user identity verification via OpenID Connect and decentralized WebID profiles. ([source](https://solidproject.org/TR))
- [Decentralized Identity Frameworks](https://awesome-repositories.com/f/security-cryptography/identity-management-systems/decentralized-identity-frameworks.md) — Implements a decentralized identity framework using WebID and OIDC to decouple identity from central providers.
- [OIDC Authentication Plugins](https://awesome-repositories.com/f/security-cryptography/oidc-authentication-plugins.md) — Provides decentralized authentication via OpenID Connect using WebID profiles.
- [WebID Decentralized Authenticators](https://awesome-repositories.com/f/security-cryptography/oidc-protocol-implementations/webid-decentralized-authenticators.md) — Provides a decentralized identity and authentication protocol combining WebID and OpenID Connect.
- [Policy-Based Access Control](https://awesome-repositories.com/f/security-cryptography/policy-based-access-control.md) — Enforces resource-level permissions through WAC policies expressed as RDF.
- [RDF-Based Access Policies](https://awesome-repositories.com/f/security-cryptography/policy-based-access-control/rdf-based-access-policies.md) — Uses RDF-based policies to grant or deny read, write, and append actions on individual resources.
- [Sensitive Data Access Controls](https://awesome-repositories.com/f/security-cryptography/sensitive-data-access-controls.md) — Enforces granular access policies that allow users to grant or revoke read and write permissions for their data. ([source](https://solidproject.org/feed.xml))
- [Client-Side Encryption](https://awesome-repositories.com/f/security-cryptography/client-side-encryption.md) — Provides mechanisms to encrypt sensitive information at rest using keys controlled exclusively by the user.
- [Personal Data Encryption](https://awesome-repositories.com/f/security-cryptography/data-encryption/encrypted-persistence/object-store-encryption/personal-data-encryption.md) — Enables users to save sensitive information like health records in an encrypted format within their Pod. ([source](https://solidproject.org/apps))
- [Storage Encryption](https://awesome-repositories.com/f/security-cryptography/storage-encryption.md) — Implements encrypted storage for sensitive data within a Pod to ensure privacy at rest.

### Software Engineering & Architecture

- [Decentralized Data Storage Protocols](https://awesome-repositories.com/f/software-engineering-architecture/decentralized-data-storage-protocols.md) — Implements the open standard for decentralized web applications that separates application logic from user-controlled data storage.
- [Linked Data Platform Protocols](https://awesome-repositories.com/f/software-engineering-architecture/linked-data-platform-protocols.md) — Implements the Linked Data Platform protocol to enable decentralized data ownership and control.
- [Data Exchange Standards](https://awesome-repositories.com/f/software-engineering-architecture/data-exchange-standards.md) — Uses common standards and protocols to ensure seamless information exchange between different data stores and applications. ([source](https://solidproject.org/for_organisations))
- [Linked Data Interoperability](https://awesome-repositories.com/f/software-engineering-architecture/data-exchange-standards/linked-data-interoperability.md) — Enables information exchange between applications using standardized type indexes and shape trees to describe data. ([source](https://solidproject.org/TR))
- [Decentralized Application Development](https://awesome-repositories.com/f/software-engineering-architecture/decentralized-application-development.md) — Supports the development of software that stores user information in decentralized personal data stores. ([source](https://solidproject.org/for_organisations))
- [Linked Data Web Applications](https://awesome-repositories.com/f/software-engineering-architecture/decentralized-application-development/linked-data-web-applications.md) — Enables the development of web applications where users control their own data through standardized linked data principles.
- [Fine-Grained Access Control](https://awesome-repositories.com/f/software-engineering-architecture/hierarchical-object-access-control/object-level-authorizations/fine-grained-access-control.md) — Enforces precise, resource-level permissions to control read, write, and append actions within a personal store.
- [RDF Resource Modeling](https://awesome-repositories.com/f/software-engineering-architecture/rdf-resource-modeling.md) — Models data as a graph of resources identified by URIs for seamless cross-domain querying.
- [Data Interoperability](https://awesome-repositories.com/f/software-engineering-architecture/data-interoperability.md) — Promotes common standards and protocols to ensure different data stores and applications can exchange information seamlessly.
- [Service Discovery Mechanisms](https://awesome-repositories.com/f/software-engineering-architecture/service-discovery-mechanisms.md) — Maps data shapes to specific resource locations to help applications discover relevant user data.
- [Shape Tree Validation](https://awesome-repositories.com/f/software-engineering-architecture/shape-tree-validation.md) — Validates the structure and location of linked data against predefined shape trees.

### Data & Databases

- [HTTP Data Interfaces](https://awesome-repositories.com/f/data-databases/data-access-querying/http-data-interfaces.md) — Uses standard HTTP methods to manage linked data resources and non-RDF files via a RESTful interface.
- [User-Centric](https://awesome-repositories.com/f/data-databases/decentralized-storage/user-centric.md) — Implements an architecture that separates storage from logic, ensuring users control their own data access. ([source](https://cdn.jsdelivr.net/gh/solid/solid@main/README.md))
- [Linked Data Platform Servers](https://awesome-repositories.com/f/data-databases/linked-data-platform-servers.md) — Implements an HTTP server that manages RDF resources and files according to Linked Data Platform specifications.
- [RDF Resource Models](https://awesome-repositories.com/f/data-databases/rdf-resource-models.md) — Represents data as RDF graphs identified by URIs to enable cross-domain linking and querying.
- [Semantic Linked Data Storage](https://awesome-repositories.com/f/data-databases/semantic-linked-data-storage.md) — Uses a storage architecture based on RDF graphs to enable cross-domain data linking and semantic querying.
- [Data Format Interoperability](https://awesome-repositories.com/f/data-databases/data-format-interoperability.md) — Enables moving information between different personal data stores using standard linked data formats. ([source](https://solidproject.org/feed.xml))
- [Stored File Retrieval](https://awesome-repositories.com/f/data-databases/file-storage-and-metadata-management/file-status-retrieval/stored-file-retrieval.md) — Provides endpoints to browse, upload, download, and organize files stored within a personal data store. ([source](https://solidproject.org/apps))
- [File Storage Systems](https://awesome-repositories.com/f/data-databases/file-storage-systems.md) — Implements an online file system allowing users to save documents and control read/edit access. ([source](https://solidproject.org/for_developers))
- [Linked Data Browsers](https://awesome-repositories.com/f/data-databases/semantic-linked-data-storage/linked-data-browsers.md) — Provides tools to navigate and inspect semantic resources within a personal data store. ([source](https://solidproject.org/apps))
- [Type Index Discovery](https://awesome-repositories.com/f/data-databases/type-index-discovery.md) — Allows applications to discover user data across Pods by consulting a type index of data shapes.

### Web Development

- [CRUD API Implementations](https://awesome-repositories.com/f/web-development/crud-api-implementations.md) — Provides a standard API and client library to manage the full lifecycle of data resources. ([source](https://solidproject.org/apps))
- [Personal Data Servers](https://awesome-repositories.com/f/web-development/personal-data-servers.md) — Provides a server implementation for hosting decentralized personal data stores and managing linked data.
- [RESTful CRUD Implementations](https://awesome-repositories.com/f/web-development/restful-crud-implementations.md) — Provides a RESTful interface for creating, reading, updating, and deleting resources via standard HTTP methods.
- [Interoperable Application Ecosystems](https://awesome-repositories.com/f/web-development/interoperable-application-ecosystems.md) — Supports an ecosystem of interoperable applications that interact with user data across different personal data stores.
- [Linked Data Application Development](https://awesome-repositories.com/f/web-development/linked-data-application-development.md) — Provides a framework for building software that exchanges information across different personal data stores using RDF standards.

### DevOps & Infrastructure

- [Personal Data Store Servers](https://awesome-repositories.com/f/devops-infrastructure/personal-data-store-servers.md) — Provides server implementations that can be self-hosted to manage personal or organizational data stores. ([source](https://solidproject.org/get_a_pod))

### Mobile Development

- [Data-Owning Application Runtimes](https://awesome-repositories.com/f/mobile-development/android-applications/android-app-execution/data-owning-application-runtimes.md) — Supports the execution of applications that read and write directly to a user's personal data store. ([source](https://solidproject.org/for_users))

### Networking & Communication

- [Webhook Notification Channels](https://awesome-repositories.com/f/networking-communication/broadcast-messaging-channels/automated-broadcasting/webhook-notification-channels.md) — Delivers real-time resource change notifications through configurable channels like Webhooks and WebSockets.
- [Resource Update Subscriptions](https://awesome-repositories.com/f/networking-communication/notification-protocols/resource-update-subscriptions.md) — Delivers real-time resource change updates to clients through WebSocket-based subscriptions.

### System Administration & Monitoring

- [Resource Change Notifications](https://awesome-repositories.com/f/system-administration-monitoring/activity-change-notifications/component-change-alerts/resource-change-notifications.md) — Delivers real-time updates on resource changes via configurable channels such as WebSockets and Webhooks. ([source](https://solidproject.org/TR))
- [Channel Type Registries](https://awesome-repositories.com/f/system-administration-monitoring/notification-channels/notification-channel-configuration/channel-type-registries.md) — Allows publishing new notification channel types in a global registry for cross-implementation discovery. ([source](https://solidproject.org/TR))
