Building the Decentralized Social Web: From Collective Social to OpenSocial

๐ **Source:** [Building the Decentralized Social Web: From Collective Social to OpenSocial](https://www.youtube.com/watch?v=B4pswGf-2BM)
> [!note]+ Document Notes
> tags: #decentralized-social #atprotocol #social-media #data-ownership
> author: Overcommitted Podcast
> source: YouTube
> reference: https://www.youtube.com/watch?v=B4pswGf-2BM
> date created: 2024-12-19 10:30
>
> # ๐ท๏ธ Title: Building the Decentralized Social Web: From Collective Social to OpenSocial
>
<!-- deep-read:sections start -->
## ๐งฐ Action Inbox
- [H1] Research AtProtocol development tools and PDSs โ 08:45 #atprotocol
- [H2] Explore group identity patterns for community apps โ 15:30 #community
- [H3] Evaluate lexicon schemas for cross-app compatibility โ 22:15 #interoperability
## ๐งญ Table of Contents
- [[#๐ Summary]]
- [[#๐ Main Content]]
- [[#๐๏ธ Notes]]
- [[#๐ References]]
- [[#๐ฃ๏ธ Paraphrase]]
- [[#๐ฐ Newsletter]]
- [[#โ
Action Items]]
- [[#๐งช Hypotheses]]
- [[#๐ Methodology]]
- [[#โ Questions]]
- [[#๐ฎ Future Research]]
- [[#๐ก Implications]]
- [[#๐ง Learning Styles Assessment]]
- [[#๐ Accessibility Assessment]]
- [[#๐ DEIB Assessment]]
- [[#โ
Logical Validity]]
- [[#๐ก๏ธ DARVO Analysis]]
- [[#๐ฏ Conclusion]]
### ๐ References
- [AtProtocol Documentation](https://atproto.com)
- [BlueSky Social](https://bsky.app)
- [PDS Explorer](https://pds.dev)
## ๐ Summary
- Brittney built Collective Social (Goodreads-style app) and OpenSocial (group identity service) on AtProtocol during her spare time as a GitHub staff engineer
- AtProtocol enables data portability and user ownership, allowing migration between apps without losing content or connections
- OpenSocial solves the missing group identity problem by creating shared DIDs with two-way handshakes between user content and group repositories
- The decentralized social ecosystem encourages interoperability and collaboration rather than platform lock-in
- Private data permissions are coming to AtProtocol, which will enable broader adoption beyond public social applications
## ๐ Main Content
AtProtocol represents a fundamental shift from traditional social media platforms where users' data is trapped in company databases. Instead, each user owns their repository (a folder of JSON objects) hosted on Personal Data Servers (PDSs), making migration between applications seamless while retaining all connections and content.
The protocol uses several key components: Decentralized Identifiers (DIDs) for unique identity, lexicons for data schemas, repositories for user data storage, and app views for rendering content. This architecture allows any application to read and render data from user repositories according to shared schemas.
Brittney's OpenSocial addresses a critical gap in AtProtocol - group identity management. Rather than sharing passwords for group accounts, OpenSocial creates group DIDs with role-based permissions. Users post content from their personal repositories while creating "handshakes" with group repositories, allowing either party to break the connection without losing data ownership.
## ๐๏ธ Notes
#### โฑ๏ธ [00:00](https://youtu.be/B4pswGf-2BM?t=0) โ [H1] Introduction to Collective Social and OpenSocial
- Key idea: Brittney built two interconnected AtProtocol applications during her spare time
- Evidence: "Collective Social, a Goodreads-style app for all kinds of media built entirely on AtProto"
#### โฑ๏ธ [03:45](https://youtu.be/B4pswGf-2BM?t=225) โ [H2] Traditional social media lock-in problems
- Key idea: Legacy platforms trap users through data ownership and network effects
- Evidence: "All of your content and photos and everything like that are kind of trapped in that company's database"
#### โฑ๏ธ [06:30](https://youtu.be/B4pswGf-2BM?t=390) โ [H1] AtProtocol's data portability solution
- Key idea: Users own their repositories and can migrate between applications seamlessly
- Evidence: "You can just move to a different one and you'll retain all the people you're connected to, all the posts you see"
#### โฑ๏ธ [08:45](https://youtu.be/B4pswGf-2BM?t=525) โ [H2] Developer experience benefits of AtProtocol
- Key idea: Protocol handles data layer and authentication, reducing development complexity
- Evidence: "A lot of like the data layer is already figured out for you, so you don't necessarily need to do like a lot of database work"
#### โฑ๏ธ [12:30](https://youtu.be/B4pswGf-2BM?t=750) โ [H1] Group identity problem in decentralized systems
- Key idea: AtProtocol lacked native support for shared group identities and permissions
- Evidence: "There's no real concept yet of like a group or a community shared identity within the App Proto space"
#### โฑ๏ธ [15:30](https://youtu.be/B4pswGf-2BM?t=930) โ [H1] OpenSocial's two-way handshake solution
- Key idea: Users post from personal repos while linking to group repos via mutual references
- Evidence: "Create this like two-way handshake where there's a record within the group's repo that points to you the record in your repo"
#### โฑ๏ธ [18:45](https://youtu.be/B4pswGf-2BM?t=1125) โ [H3] Technical architecture: DIDs and DNS resolution
- Key idea: Decentralized identifiers use DNS for handle resolution while maintaining unique IDs
- Evidence: "I have a did which is just like an ID basically that's represented throughout the entire decentralized web"
#### โฑ๏ธ [22:15](https://youtu.be/B4pswGf-2BM?t=1335) โ [H2] Lexicons enable cross-app interoperability
- Key idea: Shared schemas allow any app view to render data from other applications
- Evidence: "The lexicon is the schema for the JSON documents... any other app can say 'here are the things that I expect to see'"
#### โฑ๏ธ [25:30](https://youtu.be/B4pswGf-2BM?t=1530) โ [H3] AI tools accelerated development workflow
- Key idea: Copilot and similar tools helped overcome friction points in side project development
- Evidence: "Having Copilot available to help me like whenever I got stuck was phenomenal"
#### โฑ๏ธ [28:00](https://youtu.be/B4pswGf-2BM?t=1680) โ [H2] Collaborative ecosystem over market competition
- Key idea: AtProtocol developers prioritize interoperability over capturing market share
- Evidence: "All three of those came together and like designed a lexicon together so that like their content could easily be shared between the apps"
#### โฑ๏ธ [32:45](https://youtu.be/B4pswGf-2BM?t=1965) โ [H1] Private data permissions as critical missing feature
- Key idea: Current public-only data limits AtProtocol's expansion beyond social applications
- Evidence: "Right now everything is just public in your repo... having something that is private or only available within specific settings is super important"
#### โฑ๏ธ [35:00](https://youtu.be/B4pswGf-2BM?t=2100) โ [H3] Decentralization evaluation framework
- Key idea: Different systems benefit from decentralization based on portability needs and consensus requirements
- Evidence: "NPM makes a lot of sense to be decentralized... banking sounds hard due to timing and consensus"
## ๐ References
- [AtProtocol Documentation](https://atproto.com)
- [Personal Data Server Explorer](https://pds.dev)
- [BlueSky Social Platform](https://bsky.app)
- [Atmosphere Community](https://atmosphere.community)
- [Staff Engineer's Path Book](https://staffeng.com)
## ๐ฃ๏ธ Paraphrase
- AtProtocol fundamentally changes social media by giving users ownership of their data repositories, enabling seamless migration between applications while maintaining all connections and content
- OpenSocial solves the group identity challenge through a two-way handshake system where users post from personal repositories while creating mutual links with group repositories, preserving individual data ownership
- The decentralized ecosystem encourages collaboration over competition, with developers sharing schemas and building interoperable applications rather than pursuing platform lock-in strategies
## ๐ฐ Newsletter
**Building Community Infrastructure on the Decentralized Web**
The WordPress community has long understood the value of data portability and open platforms. Now, a new protocol called AtProtocol is bringing similar principles to social media, with valuable lessons for community builders.
AtProtocol enables true data ownership - users control their content repositories and can migrate between applications while keeping all connections intact. This mirrors WordPress's approach of empowering users rather than trapping them on platforms.
Key innovations like OpenSocial's group identity system show how decentralized architectures can support collaborative features. The two-way handshake model preserves individual ownership while enabling shared community spaces - a pattern that could inspire WordPress community tools.
The collaborative development culture emerging around AtProtocol, where competing apps share schemas for interoperability, exemplifies the open source values that make WordPress thrive.
Resources: [AtProtocol Docs](https://atproto.com), [WordPress Development](https://developer.wordpress.org/), [Community Guidelines](https://wordpress.org/about/)
## โ
Action Items
#### Community
- Contributors: Study AtProtocol's lexicon system for WordPress schema standardization efforts
- Maintainers: Explore data portability patterns for WordPress community platforms
- Ecosystem: Research group identity models for WordPress meetup and event organization
#### WordPress
- Core: Investigate lessons from AtProtocol's migration capabilities for WordPress export/import
- Community: Evaluate OpenSocial's handshake model for WordCamp and meetup coordination tools
- Documentation: Create case studies comparing decentralized vs centralized community platform approaches
#### OSPO
- Community Engagement: Monitor AtProtocol development for open source governance patterns
- Developer Support: Research developer experience lessons from AtProtocol's simplified data layer
## ๐งช Hypotheses
- Decentralized social platforms with data portability reduce platform lock-in and improve user agency
- Two-way handshake models for group content can preserve individual ownership while enabling collaboration
- Simplified data layers and shared schemas accelerate ecosystem development and interoperability
- AI-assisted development tools significantly reduce friction for complex side project completion
### ๐ Methodology
- Comparative analysis of user migration rates between centralized and decentralized platforms
- Developer survey on productivity gains from protocol-provided data layers versus custom implementations
- Community engagement metrics for handshake-based versus traditional group content systems
### โ Questions
- How will private data capabilities change AtProtocol adoption patterns beyond social media?
- What governance models will emerge for managing lexicon schemas across competing applications?
- Can the collaborative development culture scale as the AtProtocol ecosystem grows?
### ๐ฎ Future Research
- Long-term sustainability models for decentralized social infrastructure
- Cross-protocol interoperability between AtProtocol and other decentralized systems
- User behavior changes when data portability removes switching costs
### ๐ก Implications
- Practice: Protocol-provided infrastructure can significantly reduce application development complexity
- Policy: Data ownership models may require new frameworks for content moderation and legal compliance
- Education: Developers need training on collaborative schema design for interoperable ecosystems
- Community: Shared infrastructure enables competition on user experience rather than lock-in strategies
### ๐ง Learning Styles Assessment
Reading level estimate: 12th grade
#### ๐ Visual learners
- Present: Technical architecture descriptions of DIDs, repositories, and app views
- Improve: System diagrams showing data flow between personal repos, groups, and applications
#### ๐ Aural learners
- Present: Full podcast episode with conversational explanations
- Improve: Timestamped audio segments for key concepts
#### ๐ฃ๏ธ Verbal learners
- Present: Clear definitions of lexicons, DIDs, and handshake models with analogies
- Improve: Glossary of AtProtocol terminology with practical examples
#### ๐งฉ Kinesthetic learners
- Present: Step-by-step description of building apps on AtProtocol
- Improve: Hands-on tutorial for creating simple AtProtocol applications
#### ๐ง Logical learners
- Present: Systematic comparison of centralized vs decentralized architectures
- Improve: Decision tree for evaluating systems for decentralization benefits
#### ๐งโ๐คโ๐ง Social learners
- Present: Discussion of collaborative development culture in AtProtocol ecosystem
- Improve: Community engagement prompts for protocol governance participation
#### ๐งโโ๏ธ Solitary learners
- Present: Individual project journey and technical problem-solving process
- Improve: Self-assessment questions for understanding decentralization trade-offs
#### ๐ฟ Naturalistic learners
- Present: Ecosystem analogies for understanding protocol interoperability
- Improve: Natural system comparisons for data flow and community dynamics
### ๐ Accessibility Assessment
#### Screen reader semantics
- Present: Clear heading hierarchy and descriptive section titles
- Improve: Alt text for any technical diagrams, ARIA labels for complex concepts
#### Keyboard navigation
- Present: Standard web accessibility for linked resources
- Improve: Skip links for long technical discussions
#### Contrast and readability
- Present: Standard text formatting with good contrast
- Improve: Syntax highlighting for technical terms, consistent visual hierarchy
#### Media and captions
- Present: Full transcript of podcast episode
- Improve: Speaker identification, technical term highlighting in transcript
### ๐ DEIB Assessment
#### Cultural breadth
- Present: Technical discussion accessible to global developer community
- Improve: Examples from diverse social media contexts beyond US-centric platforms
#### Inclusive language
- Present: Gender-neutral technical terminology, accessible explanations
- Improve: Define jargon consistently, avoid assumptions about prior knowledge
#### Neurodiversity support
- Present: Well-structured content with clear transitions between topics
- Improve: Summary boxes for complex technical concepts, consistent formatting
#### Representation
- Present: Female engineer as primary subject, collaborative development focus
- Improve: Acknowledge diverse motivations for participating in decentralized systems
### โ
Logical Validity
#### Strong reasoning
- Deductive strength: AtProtocol's architecture logically enables data portability (technical explanation validates claims)
- Inductive strength: Examples from BlueSky and other apps support broader ecosystem claims
- Causal reasoning: Clear connection between data ownership and reduced lock-in effects
- Analogical strength: NPM/banking comparisons effectively illustrate decentralization trade-offs
#### Fallacies
- False dichotomy: Discussion assumes centralized vs decentralized as only options, doesn't explore hybrid models
- Appeal to novelty: Some enthusiasm for decentralization based on newness rather than proven benefits
#### Tone of voice
- Overall tone: Enthusiastic but technically grounded, collaborative rather than competitive
### ๐ก๏ธ DARVO Analysis
- Deny: No defensive patterns observed
- Attack: No attacks on traditional platforms beyond factual criticism
- Reverse victim/offender: No victim/offender dynamics present
- Emotional cues and rhetoric: Positive, solution-focused discussion without manipulation
## ๐ฏ Conclusion
AtProtocol represents a significant evolution in social platform architecture, prioritizing user data ownership and application interoperability over platform lock-in. Brittney's work on Collective Social and OpenSocial demonstrates both the technical possibilities and collaborative culture emerging in this space.
The key innovation of OpenSocial's two-way handshake model for group identity preserves individual data ownership while enabling shared community experiences - a pattern that could inform community platform development beyond social media.
For practitioners, the emphasis on shared schemas, simplified development infrastructure, and collaborative ecosystem building offers valuable lessons for any platform seeking to balance user empowerment with developer productivity.
## ๐งฑ Refactor Appendix
### ๐ Literature Split Pad
### [H1] AtProtocol enables seamless app migration through user-owned repositories
> [!quote] [Building the Decentralized Social Web](https://www.youtube.com/watch?v=B4pswGf-2BM) by [[Overcommitted Podcast]] via [[YouTube]]. Published 2024. Accessed 2024-12-19.
> "You can just move to a different one and you'll retain all the people you're connected to, all the posts you see"
Demonstrates data portability benefits for user agency and platform competition.
[view
---
## Full Transcript
[00:00] Welcome to the Overcommitted podcast,<br>[00:02] your weekly dose of real engineering<br>[00:04] conversations. I'm your host today,<br>[00:06] Erica, and I'm joined by Hey, I'm<br>[00:08] Britney. We met while working on a team<br>[00:10] at GitHub and quickly realized we are<br>[00:12] both obsessed with getting better at<br>[00:13] what we do. So, we decided to start this<br>[00:15] podcast to share what we've learned.<br>[00:17] We'll be talking about everything from<br>[00:18] leveling up your technical skills to<br>[00:20] navigating your professional<br>[00:21] development, all with the goal of<br>[00:23] creating a community where engineers can<br>[00:25] learn and connect. Today, we are<br>[00:27] learning about Collective Social, a<br>[00:30] Goodreads-style app for all kinds of<br>[00:32] media built entirely on AtProto that<br>[00:35] Britney has spent the last several<br>[00:36] months building outside of her day job<br>[00:39] as a staff engineer at GitHub. The<br>[00:40] project eventually led her to found Open<br>[00:43] Social, a service that she designed so<br>[00:47] any app on the decentralized web could<br>[00:49] share a book club or really any social<br>[00:52] platform. So, we'll get into Collective<br>[00:54] Social and Open Social more in a bit,<br>[00:57] but I also wanted to share something<br>[01:00] that I've been learning about that has<br>[01:02] been kind of fun. I recently finished<br>[01:05] building an interpreter in Go, and you<br>[01:08] know, it it was<br>[01:10] pretty good. I would say like<br>[01:13] as somebody who didn't go to school for<br>[01:16] software engineering or computer<br>[01:17] science, I knew very little of how an<br>[01:20] interpreter worked. Um and now I know<br>[01:22] some of how an interpreter works.<br>[01:25] I at least know like the building<br>[01:26] blocks.<br>[01:27] Um<br>[01:28] and<br>[01:30] it was probably something that if I had<br>[01:33] spent more time kind of digging in,<br>[01:36] um I probably would have gotten more out<br>[01:38] of it. It's the age-old story of like<br>[01:40] you get out of it what you put into it,<br>[01:42] but it was fun actually writing code and<br>[01:47] in this book, he kept it very simple and<br>[01:51] basically mapped interpreter concepts<br>[01:55] to Go, like,<br>[01:56] you know, plus in the terminal um repple<br>[02:01] would then like news<br>[02:03] plus in go. Um so you could really<br>[02:05] clearly see like how each step<br>[02:07] translated um<br>[02:09] and the basic building blocks were<br>[02:11] pretty simple, which helps build a<br>[02:14] mental model.<br>[02:16] I think talking about this book with<br>[02:18] people who know more about interpreters,<br>[02:20] I'm understanding that like the<br>[02:21] complexity really lies in like a lot of<br>[02:24] the performance trade-offs and he<br>[02:26] recognizes that in the book that there's<br>[02:28] a lot of performance issues with how<br>[02:30] this is built, but anyway, it was it was<br>[02:33] fun to kind of dip my toes in the water.<br>[02:35] >> That's so cool. I thought that book on<br>[02:36] my list for a while and I kind of<br>[02:37] followed along cuz it was through like<br>[02:39] the the internal book club, right? That<br>[02:41] you were doing that. Ah.<br>[02:43] Yeah. Yeah. Yeah. Sounds<br>[02:45] >> Good times. Educational.<br>[02:48] I'm definitely ready for like a less<br>[02:50] technical book for a second though and<br>[02:52] like let my brain kind of chill. Yeah.<br>[02:55] Well, we're kicking off our next book<br>[02:58] club for overcommitted. Although I feel<br>[03:00] like we've already read this book<br>[03:01] internally, but maybe that's also<br>[03:02] better.<br>[03:04] Yeah, but that's Staff Engineer's Path.<br>[03:07] I think I think we've read that once<br>[03:09] internally.<br>[03:09] >> We read it yeah. We read it once just<br>[03:11] the three of us, so it'll be fun to kind<br>[03:12] of get like new perspectives on it.<br>[03:14] Yeah. Yeah, I agree. I kind of like<br>[03:16] rereading some of those books too. I<br>[03:18] feel like there's a lot that you gain<br>[03:19] out of it and just hearing other<br>[03:21] people's perspectives is kind of nice.<br>[03:22] For sure. Well, I already know what you<br>[03:25] are excited about cuz I asked you before<br>[03:27] this episode, so<br>[03:29] True. And that is the Collective Social<br>[03:32] and Open Social project. So can you kind<br>[03:35] of give us an update of where things are<br>[03:38] at right now? Yeah, so I started these I<br>[03:42] I think I'll I'll link it in the show<br>[03:44] notes, but I started learning about at<br>[03:47] protocol when we had Nick Cherkinis on<br>[03:50] the podcast last year and I know you and<br>[03:53] I have talked a lot about like gosh, the<br>[03:55] problems in social media and like I have<br>[03:58] vibed over a lot of like books and stuff<br>[04:00] in the past. And it really sparked my<br>[04:03] interest a lot. I'm like wow, this okay,<br>[04:04] this is like something that's very<br>[04:05] interesting and could make a huge<br>[04:07] difference for the world if like social<br>[04:10] media was less terrible. So I know that<br>[04:11] I wanted to build something on App Proto<br>[04:14] just to like learn more about it. And<br>[04:15] then I started with yeah, that good read<br>[04:18] style app collective social. What I<br>[04:20] really wanted is something that we could<br>[04:21] use for our book club to like organize<br>[04:23] things like, you know, have like an<br>[04:25] async spot to collect comments or to<br>[04:29] share updates and have like a schedule<br>[04:31] of when we're supposed to read and by<br>[04:33] when. Um so that's sort of what I<br>[04:35] started with and it kind of led me down<br>[04:37] this rabbit hole where I realized like<br>[04:38] there's no real concept yet of like a<br>[04:40] group or a community shared identity<br>[04:44] within within the App Proto space. Um I<br>[04:46] know that there's some folks looking at<br>[04:48] that now, but yeah, so that's sort of<br>[04:50] what led me down this big rabbit hole of<br>[04:52] building open social, which is actually<br>[04:54] a little bit further along than<br>[04:55] collective social is. And we have a few<br>[04:58] use cases for it like for the<br>[05:00] atmosphere.community website, which is<br>[05:02] where all of like the different local<br>[05:04] App Proto groups are through. And people<br>[05:05] can now like share their blog posts or<br>[05:08] events or something like that and they<br>[05:09] all aggregate under one group identity,<br>[05:11] which has been really interesting, I<br>[05:12] think, to work on and build. Yeah, it's<br>[05:16] been really fun. Yeah, for sure. Okay,<br>[05:18] so as kind of a refresher for me and<br>[05:20] then for anyone who's new to the App<br>[05:22] Proto space, can you explain what it<br>[05:26] does and what it does differently from<br>[05:30] maybe other social media platforms,<br>[05:32] whatever it's comparable to.<br>[05:35] Yeah.<br>[05:36] Yeah, for sure. Yeah, so in the<br>[05:38] traditional or shall I say legacy social<br>[05:41] media space, the idea is is they build<br>[05:44] this app that brings a lot of folks in<br>[05:45] and what do you think like Facebook or<br>[05:48] MySpace or Twitter or whatever, you<br>[05:50] know, typically it starts out like just<br>[05:52] getting a lot of people and a lot of<br>[05:53] excitement, and then further down the<br>[05:56] road once people are on the platform and<br>[05:57] using it regularly, they start doing<br>[05:59] things like how do we keep people on the<br>[06:01] platform more frequently, and like how<br>[06:03] do we like keep users engaged so they<br>[06:05] keep scrolling and like see more ads and<br>[06:07] then start, you know, monetizing through<br>[06:09] ads. And a lot of the reason that that<br>[06:11] works in those social media apps is<br>[06:13] because it's really hard to leave,<br>[06:15] really hard. So, I mean, I still know<br>[06:17] people that like use Facebook, um,<br>[06:19] because like it's just so hard to leave<br>[06:21] cuz they have that one group there or<br>[06:23] like that one group chat or, you know,<br>[06:24] you don't want to lose track of your<br>[06:25] family or something like that. It's just<br>[06:27] really hard to like migrate off and all<br>[06:30] of your content and photos and<br>[06:32] everything like that are kind of trapped<br>[06:34] in that company's database. Um, so the<br>[06:38] one major thing difference with atproto<br>[06:40] was actually created, I think, by folks<br>[06:42] that worked at Twitter before Twitter<br>[06:44] became what it is now.<br>[06:45] >> It's designed you as the user own your<br>[06:47] own repository, and so all of your likes<br>[06:50] and follows and data, posts, everything<br>[06:54] lives in your repository. And so the<br>[06:57] biggest atproto app right now is Blue<br>[06:59] Sky. Um, that was like the first one,<br>[07:01] that's where they all sort of started<br>[07:03] this at.<br>[07:04] Um, and if Blue Sky starts doing<br>[07:06] something that you don't like, um, and<br>[07:09] you're like really invested in the<br>[07:10] platform, you can just move to a<br>[07:11] different one. And there's already<br>[07:13] several like Blue Sky clones or like<br>[07:15] Blue Sky clients or similar things that<br>[07:18] you can like take all of your data and<br>[07:20] just leave if you want to. And you'll<br>[07:22] retain all the people you're connected<br>[07:24] to, all the posts you see. You'll still<br>[07:26] be able to see like the old posts from<br>[07:27] other folks, but you don't have to<br>[07:28] necessarily see whatever it is, you<br>[07:30] know, if they introduce ads or something<br>[07:32] like that that you don't like. Um,<br>[07:34] so that makes for a very like different<br>[07:36] incentive where the app has to like<br>[07:40] compete to be good.<br>[07:42] Mhm. Which, as it turns out, is really<br>[07:44] healthy<br>[07:46] and, you know, a good way to create<br>[07:47] things that aren't, you know, addictive<br>[07:50] or, you know, just there to extract<br>[07:52] money out of people or use users as like<br>[07:54] the product.<br>[07:55] >> Right. Yeah. I mean, it's it's<br>[07:57] interesting cuz we're talking about<br>[07:58] social media, but like this is something<br>[08:00] that could be useful for tech in<br>[08:04] general. Like, I'm thinking of like<br>[08:05] switching between device ecosystems,<br>[08:08] like having all my stuff on like Apple<br>[08:11] Cloud versus like switching to another<br>[08:13] device, like how much of a pain it is to<br>[08:15] move all that or like getting off of<br>[08:18] Google Cloud. Like, any sort of like<br>[08:20] device storage,<br>[08:22] um, any sort of like storage platform<br>[08:24] really locks you in. Yeah, and it's it's<br>[08:26] definitely expanded outside of just<br>[08:28] social media already, too. At store.fyi<br>[08:31] recently launched, um, and there's 390<br>[08:33] different app proto apps on it. Uh, that<br>[08:36] folks have built. There's like a very<br>[08:37] rich community of developers that are<br>[08:39] super interested, super friendly, and<br>[08:41] like willing to help. It's also really<br>[08:43] easy to build on because a lot of like<br>[08:45] the data layer is already figured out<br>[08:47] for you, so you don't necessarily need<br>[08:48] to do like a lot of database work or<br>[08:51] like OAuth is pretty well figured out,<br>[08:52] so you can just plug into like the<br>[08:53] existing OAuth system and not have to<br>[08:56] like figure out authentication. So, it<br>[08:58] makes it really easy to build on to.<br>[09:00] Cool.<br>[09:01] Um, well, that's helpful for like a<br>[09:04] high-level view. Um, of course, with any<br>[09:07] sort of tech space, there's a lot of<br>[09:09] terminology. So, you recently gave a<br>[09:12] talk and you walked through repos,<br>[09:15] lexicons, blobs, DIDs, app views. So,<br>[09:19] what kind of made this vocabulary click<br>[09:21] for you? I think a lot of what made it<br>[09:25] really click for me was building on app<br>[09:27] proto, like building the apps that I was<br>[09:29] working on. Like I said, I was kind of<br>[09:30] stuck where I was like, okay, well, I<br>[09:32] want some of this data to be like<br>[09:33] aggregated under a group, and there's no<br>[09:35] concept of like a group identity yet<br>[09:38] within the app proto space and there are<br>[09:39] a few different ideas out there<br>[09:41] from folks about like how to go about<br>[09:44] doing that and so<br>[09:46] I just sort of looked through some of<br>[09:47] the ideas that folks had and then I<br>[09:49] worked with Nick Jerkinis too since we<br>[09:52] work together I get up and like picked<br>[09:54] his brain about like how would we do<br>[09:55] this and so we came up with this idea of<br>[09:57] like creating group dids which is the<br>[09:59] decentralized identity. So for example<br>[10:01] like I have a did which is just like an<br>[10:04] ID basically that's represented<br>[10:06] throughout the entire decentralized web<br>[10:08] of some like gibberish ID name and then<br>[10:11] I have a handle which uses they use DNS<br>[10:14] to resolve to the handle. So I have<br>[10:16] brittanyallic.com is like my handle and<br>[10:18] that represents my identity. But we also<br>[10:20] have one now called overcommitted.dev<br>[10:23] and I made that into a group did so<br>[10:25] anybody can go on to open social and<br>[10:28] like become a member of that group and<br>[10:30] then that means that they can like post<br>[10:32] content post their own content and then<br>[10:34] link it to that group so we can show<br>[10:35] like what's everybody in the group up to<br>[10:37] um<br>[10:39] at one time and so there's a way to like<br>[10:42] basically connect those together. Um so<br>[10:44] like building that and like trying to<br>[10:46] reason through that problem helped a lot<br>[10:49] um<br>[10:50] and<br>[10:52] helped me realize like all right like a<br>[10:53] lot of this is really pretty<br>[10:56] not<br>[10:57] crazy complicated. I think that's the<br>[10:58] beauty of it is it's like actually very<br>[11:00] simple at the end like it's just like a<br>[11:02] folder full of JSON. Everybody gets one<br>[11:04] folder full of JSON objects and any app<br>[11:07] can like render any of the JSON objects<br>[11:09] and so like once I started like getting<br>[11:10] my hands dirty playing with that I was<br>[11:12] like oh wow this is really easy and like<br>[11:14] makes a lot of sense the way that it's<br>[11:15] set up. Okay got it. Yeah and I could<br>[11:18] see that there's this constant trade-off<br>[11:20] of like<br>[11:22] a central<br>[11:23] a central store. I'm guessing that's the<br>[11:26] repository is that blob I think you kind<br>[11:29] of mentioned and then<br>[11:31] the sort of<br>[11:33] aspect of it which includes like<br>[11:35] discoverability and also like whenever<br>[11:39] you come into a group setting<br>[11:41] there's like the idea of like<br>[11:42] management. Like do you have somebody<br>[11:45] who owns the group? Do you have somebody<br>[11:46] who moderates the group? Like and then<br>[11:49] that becomes a centralization point. But<br>[11:51] if you don't have anybody doing that,<br>[11:53] how do you expect that to work? Mhm.<br>[11:57] Yeah. Yeah, so yeah, everybody's<br>[12:00] uh repository their little folder full<br>[12:01] of JSON objects lives on what's called a<br>[12:03] personal data server or a PDS.<br>[12:06] Um and so if you sign up with Blue Sky<br>[12:08] for example, I think that's the first<br>[12:10] one a lot of people recognize. Um<br>[12:13] then you get a folder created for your<br>[12:16] you get a DID created and then a folder<br>[12:17] created on one of their PDSs. And then<br>[12:20] you can take that and migrate it<br>[12:21] anywhere else if you want. And then I<br>[12:23] think it's just like the DID is like the<br>[12:24] shared centralized identity. I'm not<br>[12:27] actually sure how that's how that is set<br>[12:29] up. I think probably because you're<br>[12:30] using DNS which is already something<br>[12:32] that has is like its own like<br>[12:34] decentralized identity. You know, DNS is<br>[12:35] set up on servers throughout the world<br>[12:37] but then everybody every server<br>[12:38] recognizes them.<br>[12:40] Mhm.<br>[12:41] So I'm imagine it's probably something<br>[12:42] similar to that. But uh yeah, I uh for<br>[12:46] actually creating that because I the<br>[12:48] idea of like often like role-based<br>[12:51] access controls and stuff is not<br>[12:52] something that I'm super plugged into or<br>[12:54] familiar with. My closest like proximity<br>[12:57] to that is Discord and so I basically<br>[12:59] just like operated off of the way that a<br>[13:01] lot of Discord servers I've been in<br>[13:02] work. I'm like, "Ah, this seems<br>[13:04] approximately like what you're looking<br>[13:05] at." Like whoever starts it is the admin<br>[13:07] and you can, you know, delegate more<br>[13:08] admins and admins have some permissions<br>[13:10] [clears throat]<br>[13:11] and members have different permissions<br>[13:12] and like just try to make it so that<br>[13:14] like an admin can say like anybody can<br>[13:15] do anything. Um<br>[13:17] And then using Open Social as the layer<br>[13:19] where you can represent<br>[13:21] uh you can register an app like<br>[13:23] Collective Social is registered with<br>[13:25] Open Social and so you can create<br>[13:27] collective social records inside of any<br>[13:29] of the groups from that app or you can<br>[13:31] register as an individual to say like<br>[13:33] I'm going to join this group or I'm<br>[13:34] going to start this group or whatever it<br>[13:36] is that you're interested in. So it's<br>[13:38] yeah, it's sort of the<br>[13:40] the groups the groups repository is<br>[13:43] shared between any<br>[13:45] app view is that kind of the the idea?<br>[13:47] Mhm.<br>[13:48] Yeah. Yeah, so the app view is just any<br>[13:50] app that can represent like render data<br>[13:52] from somebody's PDS. So like Blue Sky is<br>[13:54] an app view or Tangled that's like the<br>[13:57] GitHub of app proto is an app view and<br>[13:59] so like all of the all of the social<br>[14:02] things live in people's repo. And so<br>[14:04] like my repo has stuff from like you<br>[14:07] know, 20 different app proto apps that I<br>[14:08] use now all represented there and like<br>[14:11] any of them can like mix and match what<br>[14:13] they show. So some of them will for<br>[14:14] example use like the follow graph from<br>[14:17] Blue Sky. So when you sign into the app<br>[14:19] you are immediately connected to<br>[14:20] everybody you follow there and then some<br>[14:22] of them have like their own separate<br>[14:23] one. Um and it's kind of up to the<br>[14:24] developer how they want to build the<br>[14:26] experience. And then what's a lexicon?<br>[14:29] Um lexicon is the schema for the JSON<br>[14:33] documents. Yeah, so if you're ever doing<br>[14:35] anything in the app protocol space any<br>[14:37] development um this PDS LS site it's<br>[14:40] pds.dev is super super helpful. So for<br>[14:43] example I can go to enter my handle<br>[14:46] which is brittanyalec.com. This is going<br>[14:48] to show me where my PDS lives which is<br>[14:50] on Blue Sky. It's going to show me my<br>[14:52] did and then it's going to show me each<br>[14:54] of the collections which is just like<br>[14:56] the collection of items that were<br>[14:58] created from each app that I'm a part<br>[15:01] of. So for example you can see um let's<br>[15:04] pick one that's like pretty common. So<br>[15:05] app Blue Sky feed post. Um<br>[15:09] I I can pull up my most recent post<br>[15:13] where I tagged Salma and told her how<br>[15:15] much I appreciate listening to her<br>[15:18] soothing voice and how sad I was to miss<br>[15:20] the recording because it's true. I was I<br>[15:21] listened to that episode like twice<br>[15:23] because it was just like so soothing of<br>[15:25] hearing her talk.<br>[15:26] >> But then the lexicon is the schema for<br>[15:30] um for that things. The Blue Sky when<br>[15:32] they create a post, they're also<br>[15:33] creating this lexicon schema so that any<br>[15:36] other app can say, "All right, here are<br>[15:38] the things that I expect to see on these<br>[15:41] records if I wanted to render them as<br>[15:43] well." So it's just a way for like other<br>[15:45] app views to be like, "Oh, like I know<br>[15:47] that I expect, you know, text is<br>[15:49] required on these things. If another app<br>[15:51] is going to like create Blue Sky posts,<br>[15:53] which is totally possible, then they<br>[15:55] know that like this is required and this<br>[15:57] has to be included."<br>[15:58] >> So like the app owner determines the<br>[16:00] schema and then basically any other app<br>[16:03] view who might want to render this<br>[16:06] schema then has that available. It's<br>[16:09] open to see and view and integrate with.<br>[16:12] Yeah, exactly. Yeah. Cool. That kind of<br>[16:15] yeah, gives a very clear view of how<br>[16:17] that's happening. And yeah. Um I guess<br>[16:21] I'm personally impressed that you've<br>[16:23] managed to like keep this side project<br>[16:25] building for so long and um clearly it<br>[16:29] came from both a personal itch and also<br>[16:33] a passion for contributing to this<br>[16:36] space, but were there any points when<br>[16:39] you hit a wall and what did you do when<br>[16:42] you got to that point?<br>[16:44] >> Yeah, so I actually wrote up um a doc<br>[16:47] about what I was planning to do. Uh a a<br>[16:50] blog post which I can link. It was like<br>[16:52] back in November, I think, where I was<br>[16:53] like figuring all of this out. And then<br>[16:55] I didn't touch the pro- I got it started<br>[16:57] and then I didn't touch the project<br>[16:59] again until like January. And the thing<br>[17:02] that really motivated me to continue is<br>[17:04] I had submitted a talk proposal to<br>[17:06] Atmosphere Comp about it and like I was<br>[17:09] primarily motivated motivated by like<br>[17:11] the shame of not wanting to be<br>[17:13] unprepared and like not have a thing to<br>[17:16] show for for the talk. So, that's what<br>[17:18] got me to actually like finish it. So,<br>[17:20] um I'm highly motivated by by being<br>[17:23] publicly shamed, I guess. It ended up<br>[17:25] going well. I enjoyed the talk. It was<br>[17:26] fun. And the talk was all about like how<br>[17:28] open social works. Um I get that. I<br>[17:31] mean, this is part of why I do book<br>[17:33] clubs is because that accountability is<br>[17:36] so important to me finishing things.<br>[17:39] Yeah. So, there's there's no theme in in<br>[17:42] using public shame.<br>[17:44] Yeah. Yeah, I'm glad my talk was chosen<br>[17:46] because I absolutely would not have<br>[17:47] finished it otherwise.<br>[17:49] >> [laughter]<br>[17:49] >> Like cuz I was very close to be like,<br>[17:51] "Oh, do I really want to finish this?"<br>[17:52] And I did and I was glad to be doing it<br>[17:55] and I'm glad that I went to the<br>[17:56] conference, too. It was a super good<br>[17:57] conference. So, yeah. Is there any part<br>[17:59] that you're especially proud of, um<br>[18:03] like technically or otherwise?<br>[18:05] I think that this was also it was an<br>[18:07] interesting time when this happened cuz<br>[18:09] this was also around the time that like<br>[18:11] AI tools got like really good. And so,<br>[18:13] the fact that I have like a finished<br>[18:16] side project and it's not just something<br>[18:18] that's like languishing in my to-do list<br>[18:20] forever is really due to the fact that<br>[18:23] like I had something like that to help<br>[18:25] like smooth out the friction points.<br>[18:28] Cuz otherwise, like it's actually it was<br>[18:29] a lot of work to build. Having Copilot<br>[18:32] available to help me like whenever I got<br>[18:33] stuck was phenomenal. It made it go a<br>[18:35] lot faster than I think and like finish.<br>[18:38] Cuz I wouldn't have either way<br>[18:39] otherwise. Like I've got a job and three<br>[18:42] kids and other things going on. So, a<br>[18:44] little overcommitted, if you will. Um<br>[18:47] Yeah. Yeah.<br>[18:48] Um what what did that workflow look like<br>[18:51] for you?<br>[18:52] My current team has what's called<br>[18:55] well-being days where like once a month<br>[18:57] we get like a Friday off. Today's<br>[18:59] actually one of those days for me. And<br>[19:00] so, yeah, I used those days pretty<br>[19:03] heavily uh and after bedtime, that's<br>[19:06] like my Turns out that's also like the<br>[19:08] time between, you you 8:00 to 10:00 p.m.<br>[19:11] That's when I'm like most feeling most<br>[19:13] creative and ready to do something<br>[19:14] anyway, so [clears throat] like that has<br>[19:16] worked out really well. So I use that<br>[19:17] time a lot for building things.<br>[19:19] Okay, so let's dig in a little bit more<br>[19:21] to this<br>[19:23] the groups in decentralized spaces and<br>[19:27] a little bit more of the technical<br>[19:29] details there. So you want to build a<br>[19:32] book club future, have that shared<br>[19:34] resource so that multiple people can<br>[19:37] read and update together. So what what<br>[19:40] specifically was missing in app proto<br>[19:43] that<br>[19:44] um<br>[19:45] that made this difficult? Yeah, and why<br>[19:47] why was it why was it hard? Yeah, so<br>[19:49] there wasn't hasn't been like a built-in<br>[19:52] thing to the protocol yet to say like<br>[19:53] this is a a group shared identity. I<br>[19:56] think people could get around that up<br>[19:58] until now by just like sharing a<br>[19:59] password to, you know, the same login<br>[20:02] essentially and then you could like, you<br>[20:04] know, we could both post under<br>[20:05] overcommitted's, you know, Blue Sky post<br>[20:08] or whatever because we share a password.<br>[20:09] But thinking about that, I didn't feel<br>[20:11] like that would work at like an actual<br>[20:13] scale, you know, if I wanted to share<br>[20:15] this with everybody, I don't want to<br>[20:16] share the the password to that to every<br>[20:19] single member of, you know, a community<br>[20:21] that I'm a part of or anything like<br>[20:22] that. So so since that didn't really<br>[20:24] exist and since there was already like a<br>[20:26] lot of, you know, thinking out there<br>[20:28] like how would how would a<br>[20:30] a shared thing work? One of the things I<br>[20:32] was looking at is like, you know, within<br>[20:33] collective social, we could just say<br>[20:35] like, all right, the group lives in a<br>[20:38] repo within our like within the database<br>[20:40] of that collective social app, but I<br>[20:42] really wanted something that was like on<br>[20:44] protocol so that it could be used across<br>[20:46] different apps and in the future it<br>[20:47] could be like extended and you could say<br>[20:49] like, all right, like we can, you know,<br>[20:50] have like this shared resource to post<br>[20:52] to Blue Sky or this shared resource to<br>[20:54] like work under in Entangled or<br>[20:56] something like that. And so that is sort<br>[20:58] of where I realized like we needed a<br>[21:00] some sort of an identity to like handle<br>[21:03] allowing those permissions to post under<br>[21:06] a shared resource without like sharing a<br>[21:08] password with everybody. And so the<br>[21:11] group identity themselves is just<br>[21:13] another<br>[21:15] did and handle. Like it has a group repo<br>[21:18] and a group did and a group handle, um<br>[21:20] but they're like identical to an<br>[21:22] individual one. So you could take any<br>[21:23] existing, you know,<br>[21:26] bird account out there in Blue Sky or<br>[21:28] whatever and turn it into this group<br>[21:29] resource so that you could use it across<br>[21:31] multiple apps.<br>[21:32] But then the way that things are shared<br>[21:35] from the actual group is there is<br>[21:37] instead of like the you know, if you<br>[21:39] make a post and you're like, "I want<br>[21:40] this post to be shared from the group's<br>[21:42] page or something like that." Instead of<br>[21:44] Instead of posting under that group's<br>[21:45] identity, you can post under your own.<br>[21:48] So you can say, "Hey, I'm the author of<br>[21:50] this post." And then create this like<br>[21:52] two-way handshake where there's a record<br>[21:54] within the group's repo that points to<br>[21:57] you the record in your repo. So there's<br>[21:59] like this two-way handshake basically<br>[22:01] between the content that you post and<br>[22:03] the group identifying like, "Yes, this<br>[22:05] is This is something that I'm going to<br>[22:06] show as part of our what's in our repo."<br>[22:09] And that serves a couple purposes. So<br>[22:11] like the group admins, if you know,<br>[22:14] somebody's being really spammy and they<br>[22:15] don't want to have all of these<br>[22:17] resources from someone, they can just<br>[22:19] delete the the handshake on the group<br>[22:21] side.<br>[22:22] Mhm. And then like the same thing, like<br>[22:25] the the user can just change their own<br>[22:28] post if they're like, "I don't want this<br>[22:29] shared with the group anymore."<br>[22:31] Um they don't have to necessarily like<br>[22:32] change anything in the group. They can<br>[22:34] just change it within their own<br>[22:35] repository and like break that<br>[22:37] connection. Yeah, that makes a lot of<br>[22:39] sense because yeah, that that recognizes<br>[22:42] like still that personal ownership of<br>[22:45] like maybe you get even kicked out of<br>[22:48] the group or something like that. But<br>[22:50] even if that happens, if I delete it on<br>[22:52] my own repository, then it's still gone.<br>[22:55] Or like the handshake mentioning like<br>[22:57] there's this contract between you as the<br>[23:00] group and a group member and you can<br>[23:04] post it on your personal, but if the<br>[23:06] group doesn't want it, then like you're<br>[23:08] not it won't be recognized as a record.<br>[23:11] >> Yeah, it's not like it's going to delete<br>[23:12] the record or anything like that. You<br>[23:13] still own the thing that you the content<br>[23:15] that you created and you can still take<br>[23:17] that to other groups if you wanted.<br>[23:19] Mhm. If the one that you were in like<br>[23:21] just didn't vibe with it or whatever.<br>[23:22] But, yeah. So, that's sort of the goal<br>[23:25] and that was what that's working now<br>[23:27] actually, which is exciting. It's<br>[23:28] actually on the website. So, the<br>[23:30] atmosphere.community site is an example<br>[23:33] of one where we are there's folks that<br>[23:36] have joined the atmosphere community<br>[23:39] group through Open Social and then<br>[23:41] they've said like, all right, these are<br>[23:42] the posts from you know, one of the blog<br>[23:44] post sites within app proto that I want<br>[23:47] to share with the group and then all of<br>[23:48] them are like represented with from that<br>[23:51] group that based on like posts that<br>[23:52] people have shared, which is cool to<br>[23:54] like see it actually do a thing. Um<br>[23:57] Yeah.<br>[23:58] Um well, I was very cool. Very cool that<br>[24:00] it's kind of taking life and um yeah,<br>[24:03] you you've written specifically about<br>[24:05] this whole process of developing this<br>[24:08] Open Social community and you've also<br>[24:10] been very public about wanting feedback<br>[24:13] and you've shared links to prior art and<br>[24:15] community discussions. So, what's it<br>[24:17] been like building something where the<br>[24:20] spec is still being written? Like this<br>[24:23] group has not fully decided what they<br>[24:25] want to do and you're kind of proposing<br>[24:27] something. Yeah, I think it probably<br>[24:29] depends on the space that you're in.<br>[24:31] Like I don't know if every This is my<br>[24:33] first time really getting into any open<br>[24:35] source space in any like longer term<br>[24:37] capacity, but everybody's been super<br>[24:40] open and like willing to like rubber<br>[24:42] duck on things. I've had folks like give<br>[24:45] me feedback like, hey, you should make<br>[24:46] your OAuth set up better. Like look at<br>[24:49] this instead. I'm like, gosh, I love<br>[24:50] that feedback. That's great.<br>[24:52] Cuz that's just not my area of expertise<br>[24:54] in any by any means. So, I think it's<br>[24:56] it's a really like friendly and sharing<br>[24:59] community where like that's just sort of<br>[25:02] normal within the community. There's a<br>[25:04] lot of spaces, like there's a discourse<br>[25:06] where anybody can go in and, you know,<br>[25:07] propose a topic and lots of folks will<br>[25:09] weigh in and with their opinions if<br>[25:11] that's what you want. I think sometimes<br>[25:13] that can also be kind of I think there's<br>[25:16] also like some drawbacks to that, too,<br>[25:18] in some ways where like it can be really<br>[25:20] easy to be like, yes, things should be<br>[25:22] done this way and then there's no real<br>[25:24] like ownership of like this person's<br>[25:25] going to take that idea and do a thing<br>[25:28] with it. Like it's really on the<br>[25:29] individual to go make it actually<br>[25:32] happen. But I don't I feel like<br>[25:33] everybody's been pretty like generous<br>[25:35] with their thoughts and time, so um I'm<br>[25:37] just kind of emulating what the rest of<br>[25:39] the community does there. Cool. Yeah, I<br>[25:42] can see that coming from like the sort<br>[25:45] of like driving force of the community<br>[25:47] being really this data ownership and and<br>[25:50] um and the purpose of this is good.<br>[25:53] >> [laughter]<br>[25:53] >> Um and uh yeah, no one's no one's trying<br>[25:57] to make money. It's kind of the<br>[25:58] opposite, trying to reduce the impact of<br>[26:01] profit profit-driven development. Yeah.<br>[26:05] Yeah, there's a lot of apps that are<br>[26:06] really similar within the ecosystem and<br>[26:09] like like this is not even like the<br>[26:11] first Goodreads type app. It's like the<br>[26:13] 10th or 20th at this point. And it seems<br>[26:16] like there's been a lot of collaboration<br>[26:19] and like design towards<br>[26:20] interoperability. Like there's a couple<br>[26:22] of different blog sites, for example,<br>[26:23] like there's um Leaflet is one and<br>[26:27] Offprint, that's the one that I I use.<br>[26:29] And then there's pocket.blog.<br>[26:32] And all three of those came together and<br>[26:34] like designed a lexicon together so that<br>[26:36] like their content could easily be<br>[26:38] shared between the apps. So,<br>[26:41] um I think it's sort of a different way<br>[26:42] of thinking about building apps where<br>[26:44] it's not necessarily like, hey, I'm<br>[26:46] going to build this app and I need all<br>[26:47] the market share. You know, like people<br>[26:48] are going to go to the one that, you<br>[26:50] know, fits their style more or like has<br>[26:53] the features that they need, and<br>[26:55] everybody's like pretty friendly and<br>[26:56] willing to work with each other to be<br>[26:58] like, "All right, let's make the best<br>[26:59] experience possible." Um, and I think a<br>[27:01] lot of that comes from that like need to<br>[27:03] like, you know, you have to compete on<br>[27:04] features and like how good the app is<br>[27:07] when, you know, anybody can go anywhere.<br>[27:09] Right. Yeah, I mean it it kind of<br>[27:11] reminds me of like something I feel like<br>[27:13] I've experienced or hear heard<br>[27:15] developers experience where they like<br>[27:17] this app, but they want to change this<br>[27:18] one thing.<br>[27:20] If only I could I could modify this one<br>[27:23] thing or tweak it, um,<br>[27:25] and it's like, "Yeah, sure, why not?"<br>[27:28] You know, everyone's brain works<br>[27:29] differently. They map to these, you<br>[27:31] know, visuals differently.<br>[27:34] Why not provide a way for people to to<br>[27:38] collaborate, but also customize?<br>[27:40] Mhm.<br>[27:41] Yeah. Yeah, I'm excited to see where it<br>[27:43] goes. I feel like it's starting to get<br>[27:45] like a lot of steam behind it now. Like<br>[27:48] there's a lot of moves being made and a<br>[27:49] lot of features. One of the things that<br>[27:51] they're working on this year is<br>[27:52] permission to data. Right now everything<br>[27:55] is just public in your repo, um,<br>[27:58] which like having something that is<br>[28:00] private or only available within<br>[28:01] specific settings is super important for<br>[28:04] like identity in general. I think once<br>[28:06] that comes out, that's like one of the<br>[28:08] biggest pillar like we need this to like<br>[28:10] really be able to expand into lots of<br>[28:12] different types of apps. But that's<br>[28:13] pretty close to landing, so it'll be<br>[28:16] cool to see where that ends up.<br>[28:18] >> Very cool. Well, we are fitting to wrap<br>[28:22] up, but based on this thesis that<br>[28:26] ownership, portability, decentralized<br>[28:28] control make things better, we are going<br>[28:31] to apply that logic to everyday<br>[28:34] non-technical things, maybe some<br>[28:36] technical things, and debate whether it<br>[28:38] holds.<br>[28:40] Great.<br>[28:41] So, we can rate these systems on a scale<br>[28:46] of 1 to 10 of how badly it would benefit<br>[28:49] or reduce quality from getting the app<br>[28:52] proto treatment of removing centralized<br>[28:54] control. So, a score of one being like<br>[28:58] centralized control is very important to<br>[29:00] this service. Don't touch it. And 10<br>[29:03] being like this is human rights<br>[29:05] violation the amount of control that<br>[29:08] this system has and it's disguised as a<br>[29:10] terms of service. So, decentralize it.<br>[29:12] All right. Are you ready? I'm so ready.<br>[29:14] Okay. So, we are going to start with<br>[29:16] NPM. So, NPM for those who are not<br>[29:20] familiar is centralized package<br>[29:22] repository and anyone can publish a<br>[29:24] package and then developers download it<br>[29:28] and anyone can also unpublish a package.<br>[29:31] So, there was a package called left-pad<br>[29:34] um that was unpublished and caused a<br>[29:37] bunch of issues for people who relied on<br>[29:40] that. What do you think, Britney? 1 to<br>[29:42] 10 um realizing NPM? Ooh. That's a good<br>[29:45] one. So, we're talking specifically<br>[29:46] about the registry, correct? Like where<br>[29:48] all of the packages live. Okay.<br>[29:50] >> Uh-huh.<br>[29:50] Um I was going to say cuz NPMX is<br>[29:54] came out recently and that is a really<br>[29:56] cool. I'm going to include a link to<br>[29:57] that. Um but yeah, but that's more just<br>[29:59] a website to view them.<br>[30:01] Um to view the packages. I think for the<br>[30:04] registry, I feel like that makes a lot<br>[30:06] of sense to be decentralized. Yeah, I<br>[30:07] feel like that's a 10, right?<br>[30:09] I think<br>[30:10] it might be hard to handle security<br>[30:13] there.<br>[30:14] I guess if like anybody can publish a<br>[30:17] package, like how would you deal with<br>[30:18] like rogue servers that are like trying<br>[30:21] to say like this is this package and<br>[30:22] it's not. But I feel like it's it's<br>[30:24] already that.<br>[30:27] True. There's very little oversight.<br>[30:29] >> Yeah. Yeah.<br>[30:30] >> Yeah. I'm with you. I I think<br>[30:32] decentralizing<br>[30:34] makes sense like once you publish it,<br>[30:36] it's kind of like<br>[30:38] out there. I mean, I guess app proto is<br>[30:41] a little different where like<br>[30:43] you you as the publisher would still own<br>[30:47] whatever you publish. So, this would be<br>[30:49] a little different treatment of saying<br>[30:51] like once you publish it, it's like<br>[30:53] persistent and like you can't take it<br>[30:55] down. Um yeah. But, I think I mean, a<br>[30:59] lot of those things are associated with<br>[31:00] like commit shaws and if it's open<br>[31:02] source. It just makes it hard if you<br>[31:04] want to like de-open source something,<br>[31:05] but that's already a problem. I mean,<br>[31:07] how do you know somebody hasn't<br>[31:09] downloaded, you know, your open source<br>[31:12] repo to their computer or whatever<br>[31:14] before you decide to make it private or<br>[31:17] whatever. Like I feel like that's<br>[31:18] already a pretty pretty common<br>[31:19] occurrence. Um Yeah. Okay. So, we're<br>[31:22] we're on board with with decentralizing<br>[31:24] NPM. Yeah. Give it to the people. Let<br>[31:26] the people decide. Yep. Okay. GitHub<br>[31:29] contribution. So, do we think that that<br>[31:32] like<br>[31:33] you know, say you have all of your<br>[31:36] GitHub contributions and, you know,<br>[31:38] maybe you want to<br>[31:40] like port that over to a different site.<br>[31:43] Like do we think that's valuable? Yeah,<br>[31:46] I think so. I feel like that's<br>[31:47] especially because that's like pretty<br>[31:49] commonly viewed as like a, you know,<br>[31:51] like this developer is this active or<br>[31:53] whatever. Um having that the ownership<br>[31:56] of your at least like the record of the<br>[31:58] number of commits you did or like how<br>[32:00] much you contributed to the community or<br>[32:02] whatever. I feel like that is something<br>[32:03] that should belong with the individual.<br>[32:05] Um<br>[32:07] And there is there I know that there is<br>[32:09] one website that is working on something<br>[32:12] similar. It's called Tangle like I<br>[32:13] mentioned. Although there, I think that<br>[32:15] like the issues equivalent and like the<br>[32:19] social part is on App Proto and the rest<br>[32:21] of it's still using Git under the hood<br>[32:23] cuz I think there's like no way to<br>[32:25] replace Git at this point for for<br>[32:27] for that. Yeah. Cool. Yeah, I'm on I'm<br>[32:30] on board with that. I think it'd be cool<br>[32:32] to have that more shareable Mhm. between<br>[32:36] platforms.<br>[32:37] Yeah.<br>[32:38] Um, okay, let's move on to something<br>[32:40] that's not technical, medical records.<br>[32:43] Oh.<br>[32:45] The way that this would look on App<br>[32:46] Proto would be, right, like you have you<br>[32:49] have your medical records that are tied<br>[32:51] to you and instead of like your doctor<br>[32:54] owning your medical records and then<br>[32:56] having to transport those between<br>[32:59] whenever you go to a new provider, like<br>[33:01] you would kind of own you would own<br>[33:03] those records.<br>[33:04] >> I feel like this would solve a lot of<br>[33:06] problems in like our health care system<br>[33:10] and also would be an absolute nightmare<br>[33:12] to any lawyer that is like familiar with<br>[33:15] like HIPAA things. Like the security<br>[33:18] around it would have to be very very<br>[33:19] advanced. But I feel like this would be<br>[33:22] really helpful for like individuals,<br>[33:25] especially I mean you don't live in the<br>[33:26] same place all the time. You're not<br>[33:27] going to go to the same doctor forever.<br>[33:29] Mhm.<br>[33:30] So having those be portable and in like<br>[33:33] at least in a format that's shared<br>[33:35] across multiple doctor's offices would I<br>[33:37] think I think that would help a lot of<br>[33:38] humans. Not just like<br>[33:41] I feel like it would make the systems<br>[33:42] run faster and smoother and then the<br>[33:45] problem is is then you'll have to like<br>[33:46] rely on the individual to like maintain<br>[33:49] their own repository, right? Cuz<br>[33:53] Um, I mean it could theoretically. I I<br>[33:55] just like yeah, I'm with you like<br>[33:57] definitely this like privacy question<br>[34:00] would need to be figured out. Like you<br>[34:02] wouldn't want your medical records all<br>[34:04] public for everyone, but like medical<br>[34:07] records currently are so opaque to me<br>[34:09] that I have no idea where my medical<br>[34:12] and like I don't necessarily want to<br>[34:13] like maintain or manage them, but like<br>[34:16] it would be nice for me to be like,<br>[34:18] well, if I did theoretically want to<br>[34:20] look up my medical history, like how<br>[34:23] would I do that? You know, it's like it<br>[34:25] feels like it's so protected that like<br>[34:27] even I don't know even though they're<br>[34:29] theoretically my records. Like who do I<br>[34:31] ask to see that? Like, where are they?<br>[34:34] Mhm. Yeah, it's a nightmare, especially<br>[34:36] for folks who have like, you know, need<br>[34:38] long-term care or something like that,<br>[34:39] and they need all of their records in<br>[34:41] one place to like, especially if they<br>[34:42] move from one place to another. It's<br>[34:43] just a huge effort to gather all the<br>[34:46] data into one thing. So, I think that<br>[34:48] that would be super beneficial and<br>[34:49] worthwhile, but<br>[34:51] Uh yeah.<br>[34:51] >> don't have to be like, when was my last<br>[34:53] checkup? I don't know. I I think it was<br>[34:56] last year sometime. It's just like<br>[34:58] there.<br>[35:00] Yeah. Yeah. Yeah, that's true. Yeah.<br>[35:02] Yeah. So, yeah, I think with the caveat<br>[35:04] that this would have<br>[35:06] more privacy controls, I'm I'm here for<br>[35:09] a decentralized medical records. Mhm.<br>[35:12] And specifically personal ownership.<br>[35:14] Mhm. Okay, last one, banking. Ooh. I<br>[35:17] think this is interesting. There's a<br>[35:18] book that I read earlier this year by<br>[35:20] Tim Berners-Lee, where he was talking<br>[35:23] about something called Solid Protocol.<br>[35:26] I'll show you the book, but it is is<br>[35:28] really similar to app proto, but they<br>[35:30] started private first. So, like all of<br>[35:32] the repos are private, but then like you<br>[35:34] can you could theoretically own your<br>[35:35] repository, and you can bring that<br>[35:37] everywhere. Those seem like the main<br>[35:38] differences from the way that it's<br>[35:40] described. And I think that they<br>[35:41] actually started that at banks in like<br>[35:43] really large, like enterprise<br>[35:45] organizations in Europe, which is where<br>[35:47] he's at. So, they it's probably<br>[35:48] different like regulatory environments<br>[35:51] or something like that where that is a<br>[35:52] little bit more favorable or worthwhile.<br>[35:55] But, I think that there are some<br>[35:57] financial records that that would make a<br>[35:59] lot of sense. I'm curious how that would<br>[36:02] work for things like, I don't know,<br>[36:03] taxes or whatever. Like, you would need<br>[36:05] to share something with the IRS to be<br>[36:08] like, "Hey, here's how much I'm getting<br>[36:09] paid still or something." I don't know.<br>[36:12] Like, that sounds really complicated and<br>[36:13] like the least interesting of these<br>[36:15] different examples. So, I'll put that<br>[36:17] one as like a five or something. I'm<br>[36:19] sure that there are reasons to post it<br>[36:22] in some decentralized system, but it<br>[36:23] sounds<br>[36:25] hard. This one This one I feel like I'm<br>[36:27] like a one on because<br>[36:31] of the timing and consensus. Because I<br>[36:34] think like that's when decentralization<br>[36:38] gets really tricky. And like I just<br>[36:39] don't think there's any good solution<br>[36:43] like as of now. Like I've never heard<br>[36:45] any really good reliable solution for<br>[36:48] like decentralized consistency and<br>[36:51] consent like consensus with these sort<br>[36:53] of like real-time transactions.<br>[36:56] There's blockchain people out there<br>[36:57] saying, "Hey, we've been talking about<br>[37:00] this." I mean, yeah. So, my my feelings<br>[37:04] still stand.<br>[37:05] Um yeah, that's that's where I'm at. I<br>[37:07] think this is like one of the one of the<br>[37:10] things that Yeah, I think I'm I think<br>[37:12] I'm a one on.<br>[37:13] >> Yeah. With with like I think there's<br>[37:16] room for like maybe having a personal<br>[37:18] repository of like all my financial like<br>[37:22] things or whatever in in a repository.<br>[37:25] This is my This is like the link to my<br>[37:28] savings account and my 401k. And like<br>[37:31] cuz that stuff does get confusing to<br>[37:32] keep track of of like I have a 401k or<br>[37:35] like I have a retirement account from<br>[37:37] when I was a teacher and I'm like I<br>[37:38] don't even know how to access that. Like<br>[37:41] I've tried to contact the school<br>[37:43] district and they like never responded.<br>[37:45] So like I don't know if that money is<br>[37:46] just going to like disappear. Like I<br>[37:48] don't know. Um but like that would be<br>[37:50] cool to like be able to keep track of<br>[37:51] all those different those different like<br>[37:53] financial pieces, I guess. But yeah, as<br>[37:56] far as banking goes, the whole system<br>[37:58] I'm I'm fine to leave it as it is.<br>[38:01] Yeah. Yeah, that's not not a thing that<br>[38:02] I would be like super excited to work<br>[38:04] on, I don't think. But you know, I'm<br>[38:06] sure there's I'm sure there's a case to<br>[38:07] be made for it. Yeah. Well, cool. That<br>[38:09] was fun. Um so, we mentioned we'll drop<br>[38:12] some links to Open Social, Collective<br>[38:14] Social. And<br>[38:16] for people following your work, where is<br>[38:18] the best place for them to look for you<br>[38:20] and your work? Yeah, everything is<br>[38:22] pretty much linked from my website<br>[38:25] including all of the Overcommitted<br>[38:26] episodes. So, Britney Allyc.com is the<br>[38:29] is the spot and that has links to<br>[38:30] socials and blog posts and whatever<br>[38:33] else. Cool. All right. Well, thank you<br>[38:35] listeners so much for tuning in to<br>[38:37] Overcommitted. If you like what you<br>[38:39] hear, please do follow, subscribe, or do<br>[38:41] whatever it is you like to do on the<br>[38:42] podcast app of your choice. Check us out<br>[38:44] on Blue Sky [music] and share with your<br>[38:46] friends. Until next week, goodbye.
<!-- deep-read:sections end -->
๐ **Full text:** ![[Full Document Contents/Articles/Building the Decentralized Social Web From Collective Social to OpenSocial.md|Building the Decentralized Social Web: From Collective Social to OpenSocial by YouTube]]
## Highlights
- And it really sparked my interest a lot. I'm like, wow, OK, this is like something that's very interesting and could make a huge difference for the world if like social media was less terrible. So I knew that I wanted to build something on at Proto just to like learn more about it. And then I started with, yeah, that Goodreads style app, Collective Social. But what I really wanted is something that we could use for our book club to like organize things like, you know, have like an async spot to. collect comments or to share updates and have a schedule of when we're supposed to read and by when. ([View Highlight](https://read.readwise.io/read/01krgpz8vgv2jvrw3f9tn1yh3e))
- Tags: ๐ป ai highlighted
- So that's sort what I started with and it kind of led me down this rabbit hole where I realized there's no real concept yet of a group or a community shared identity within the at Proto space. I know that there's some folks looking at that now, but. uh Yeah, so that's sort of what led me down this big rabbit hole of building OpenSocial, which is actually a little bit further along than CollectiveSocial is. And we have a few use cases for it, like for the atmosphere.community website, which is where all of the different local app proto groups are through. ([View Highlight](https://read.readwise.io/read/01krgpz8wh2df0rnf2tn0b1jwx))
- Tags: ๐ป ai highlighted
- People can now share their blog posts or events or something like that, and they all aggregate under one group identity, which has been really interesting, I think, to work on and build. Yeah, it's been really fun. Yeah, for sure. Okay, so as a kind of refresher for me and then for anyone who's new to the app, Proto Space, can you explain what it does and what it does differently from maybe other social ([View Highlight](https://read.readwise.io/read/01krgpz8ws58cysd39ytjznhq1))
- Tags: ๐ป ai highlighted
- And then the sort of decentralized aspect of it, which includes like discoverability and also like whenever you come into a group setting, there's like the idea of like management. Like, do you have somebody who owns the group? Do you have somebody who moderates the group? Like, and then that becomes a centralization point. But if you don't have anybody doing that, how do you expect that to work? Mm hmm. Yeah, yeah. So everybody's repository, their little folder full of JSON objects lives on what's called a personal data server or a PDS. ([View Highlight](https://read.readwise.io/read/01krgpz8xjvwf420a7jq9xnzwf))
- Tags: ๐ป ai highlighted
- one of the things I was looking at is like, you know, within collective social, we could just say like, all right, the group lives in a repo within or like within the database of that collective social app. But I really wanted something that was like on protocol so that it could be used across different apps. And in the future, it could be like extended and you could say like, all right, like we can, you know, have like the shared resource to post to Blue Sky or the shared resource to like work under and untangled or something like that. And so that is sort of where I realized like we needed uh some sort of an identity to like handle allowing those permissions to post under. ([View Highlight](https://read.readwise.io/read/01krgpz92cfj8vnzghty62t6vs))
- Tags: ๐ป ai highlighted
- So the atmosphere.community site is an example of one where ah we are. There's folks that have joined the atmosphere. community group through open social and then they've said like alright these are the posts from you know one of the blog post sites within at proto that I want to share with the group and then all of them are like represented with from that group but based on like posts that people have shared which is cool to like see it actually do a thing yeah Yeah, well, that was very cool. ([View Highlight](https://read.readwise.io/read/01krgpz94h6y73er6de0vppk9x))
- Tags: ๐ป ai highlighted
- They map to these, you know, visuals differently. Like... Why not provide a way for people to to collaborate but also customize? Mm-hmm. Yeah. Yeah, I'm excited to see where it goes. I feel like it's starting to get like a lot of steam behind it now. And like there's a lot of moves being made and a lot of features. One of the things that they're working on this year is permission to data. So right now everything is just public in your repo, which like having something that is private or only available within specific settings is super important for like identity in ([View Highlight](https://read.readwise.io/read/01krgpz970rkmqavw75895ptgj))
- Tags: ๐ป ai highlighted