Every piece of software needs some degree of interface, content, and service design. This is no different in decentralization. What is different, however, is that decentralized design introduces concepts and scenarios that diverge from today’s dominant, centralized paradigms. These differences have the potential to make incorporating and solving decentralized design problems more challenging for experienced and novice developers alike. That’s why in an effort to help us all better understand how to build decentralized applications, we’ve created the design patterns in this library to be generalizable to protocols, applications, and the user interfaces of decentralized applications. The patterns themselves have been divided below into categories to further increase accessibility and comprehension.
See something missing? Propose a new pattern
Identity & AgencySee all Identity & Agency
In a centralized application, the concept of “who am I” is coordinated by a single authoritative database. In decentralized applications, by contrast, user “accounts” may not exist, or they might get verified in a variety of ways. The patterns in this category help bring clarity to users dealing with questions of how to best manage their own online identity and credentials as well as those of other people.
Moderation & CurationSee all Moderation & Curation
Information overload, spam, and abuse can be serious problems for decentralized applications that allow strangers to interact with each other directly. The patterns in this category therefore deal primarily with applications where content and users are publicly discoverable. By integrating the patterns, applications will be more useful to a wider set of communities, and will help keep vulnerable people safer from online abuse.
Sharing & PermissionsSee all Sharing & Permissions
Most decentralized applications share everything publicly by default. This default assumption, however, can risk limiting use cases as well as user trust in the application (thereby also reducing adoption). The patterns in this category help build trust with the application by providing methods for users to decide who sees what, and when.
Sync & StatusSee all Sync & Status
Decentralized applications aren’t always connected to a single server that is the source of truth for all information. This can lead to hard problems around resolving data conflicts, finding peers, and deciding on common standards. The patterns in this category help users understand where data is available, how it is synced across devices, and whether it is discoverable.