Open Source Friday with LunaFocus - prioritizing data privacy
Introduction and Guest Introduction
- The host welcomes everyone to Open Source Friday, a live event, and introduces herself and her guest, Roselle Scarlet, a developer advocate at Block. (1m57s)
- Roselle Scarlet introduces herself and mentions that she used to host Open Source Friday every week, but now it's being done in a more polished way. (2m21s)
- Roselle talks about her work at Block, specifically at a business unit called TBD, which focuses on self-sovereign identity and helping people move money across borders. (3m15s)
- She mentions that her team is working on projects that help users gain ownership over their data, and she has recently moved to mainly Block to focus on different open-source projects and AI. (3m45s)
Introducing LunaFocus
- The host expresses her enthusiasm for open-source projects and asks Roselle to talk about the project she brought, called LunaFocus. (4m7s)
- Roselle explains that LunaFocus was built during a Block-wide hackathon, where she and others worked on a random project idea to help people own their data, specifically in the context of pregnancy and motherhood. (4m11s)
- She shares her personal experience of downloading apps and being targeted with ads as a pregnant person and a mom, and how LunaFocus aims to address this issue by giving people control over their data. (5m38s)
- A project was created to address concerns about data privacy, particularly for sensitive information such as health and personal data, with the goal of allowing users to own and control their data (6m0s).
- The project was developed during a hackathon, where a team of people with varying levels of experience, including security engineers and web developers, came together to learn and build the application (6m32s).
- The application is not a high-end, polished product, but rather a learning experience and a proof of concept for using decentralized technologies to store and manage personal data (6m41s).
LunaFocus's Decentralized Approach
- The application uses decentralized identifiers, similar to those used by Blue Sky, to create a unique identifier for each user that can be taken across the web (7m57s).
- Users can track their personal data, such as menstrual cycles, and store it in a decentralized web node, which is an encrypted record that can only be accessed by the user or those they choose to share it with (8m22s).
- The data is not stored in a centralized database, but rather in a decentralized web node, which allows users to maintain control over their data and choose who to share it with (8m49s).
- Users can share their data with others by entering their decentralized identifier, allowing for secure and controlled sharing of personal data (9m23s).
LunaFocus's Tech Stack and Protocol
- The tech stack used for the project includes Next.js, which was chosen for its simplicity and seamless integration of front-end and back-end functionality (10m9s).
- The project utilizes a decentralized web node, which can be thought of as a personal data store where users can keep various types of data, such as music and documents, and have control over who accesses it (10m43s).
- A protocol is used to decide how data is shared with people or how they can interact with the application, and it provides a structure for the data and determines who can interact with it (12m21s).
- The protocol used in the project is called "who can," which allows for simple and clear definitions of who can perform certain actions, such as creating, reading, updating, or deleting data (11m35s).
- In the context of the project, a protocol is not the same as a data frame, but rather a set of rules that govern how data is shared and interacted with (13m23s).
- The configuration for the protocol is set up and then consumed on the front-end, which is done in a serverless manner, making an API on top of the protocol (13m52s).
- The project uses a decentralized identity system, which allows users to create a username, but only certain individuals, such as the author, can read or interact with that username (11m24s).
- The protocol is used to define the rules for who can interact with the data, such as creating, reading, updating, or deleting entries, and who can access certain information, such as a period calendar (12m54s).
Data Handling in LunaFocus
- The decentralized web notes (dwnn) can be queried to grab specific records, such as those of a playlist type and in a particular format, and this process is similar to GraphQL, where data is fetched based on a schema and a specific format (15m1s).
- The query process involves specifying what data to fetch, such as period entries, and how to handle errors, and it can also be used to create new records and store them in the decentralized web note using a specific schema and data format (15m57s).
- The decentralized web notes are owned by the user and attached to their identity, making it a serverless and exciting approach to data management (16m50s).
Development Status and Challenges
- The project uses Web5.js, a specific implementation model, and a plugin called FullCalendar to implement the calendar functionality, which was a challenging task (17m6s).
- The project is still being actively worked on, with ongoing efforts to improve the calendar functionality, such as handling cases where the user clicks outside the modal and wants to change their mind (18m29s).
- A project was put on pause due to a company's shift in priorities, but it is expected to be picked up again once a foundation adopts the SDK, and the project still works for those who want to dive in (18m36s).
AI Integration and Database
- The app is AI-free, but the creator has been trying out a new AI agent called Goose that can build out a lot of the work, including scaffolding, and create a plan for tasks (19m9s).
- The app does not use a traditional database like SQL, but instead uses a decentralized web node, which is attached to the user's identity and does not require a database (20m0s).
Decentralized Web Node Details
- The decentralized web node is a local and remote data store, where the remote version is a server that companies can host, but the data is encrypted and cannot be seen by the host (21m17s).
- The data store can be hosted by companies, and users can also choose to host their own server, but the data is encrypted and secure (21m31s).
- The decentralized web node can use different protocols, and it is possible for every app to use different protocols (22m10s).
Protocols and Decentralized Identifiers
- Blue Sky has gained significant attention for its protocol, which allows users to own their data even if someone buys the network, and it's similar to what TBD was doing. (22m39s)
- Protocols are like JSON instructions on how an app should share data, and there's a repository of different protocols that people can use, allowing them to choose the one applicable to their specific web app. (23m20s)
- The choice of protocol depends on the situation, as the app's data and goals may not always be the same. (23m48s)
- The question of who controls the keys to encrypt and decrypt data is complex, involving cryptography and decentralized identifiers, which is a challenging topic. (23m59s)
- Companies like Microsoft have used decentralized identifiers, and cryptographic algorithms are involved, but the specifics are not well understood. (24m25s)
- Creating a decentralized network attached to a person, such as logging live streams, might require defining a custom protocol, as existing protocols may not cover this specific use case. (24m55s)
- Defining a protocol involves specifying the data format, roles, and permissions, which is not a difficult task, but the example given may not have an existing protocol. (25m33s)
Connecting to Decentralized Web Node and Data Ownership
- Connecting to a decentralized web node is relatively easy, using commands like "web5.connect" to connect to a person's identifier. (26m7s)
- The idea of owning a log of personal data, such as live streams or books read, without relying on someone's database, is an interesting concept that could be explored using decentralized protocols. (26m22s)
- Key management is a significant challenge, as highlighted by Jacob's experience in his last startup. (26m44s)
- Decentralized data management allows individuals to control their own data, but managing personal keys can be a challenge, and companies are exploring different methods to handle this issue (26m50s).
- Large companies and individuals spend significant amounts of money to own and manage data, making it essential for individuals to understand what data belongs to them and how to maintain control over it (27m15s).
Decentralized Identifiers (DIDs)
- Decentralized Identifiers (DIDs) are being developed by various companies, such as Blue Sky, which hosts its DIDs on a website or web server, while others, like TBD, use alternative methods like BitTorrent (27m51s).
- The use of DIDs and decentralized data management is a complex issue, and different companies are approaching it in various ways, which can be confusing and may hinder progress (29m4s).
Open Source and AI's Impact
- Open-source development and collaboration can help address these issues and benefit the industry as a whole, as seen in protocols like AD Protocol (29m31s).
- Artificial intelligence (AI) is expected to have a significant impact on the future of data management and identity verification, with different technologies emerging and evolving over time (29m56s).
- The development and adoption of AI and decentralized data management technologies will likely occur in waves, with periods of high interest and innovation followed by periods of quiet and refinement (30m16s).
AI Agents and Tools
- The concept of horizontal and vertical AI agents was mentioned, but the exact meaning of these terms was unclear. (30m41s)
- GitHub Co-Pilot Chat is a tool that allows users to ask questions about their codebase, and it can provide specific and valuable information about implementation details. (30m57s)
- This tool can be particularly useful for content creators, such as podcasters or streamers, who need to understand the nitty-gritty details of a project without having to go through every single code file. (31m24s)
AI in Content Creation
- AI was once a luxury, but it has now become a necessity, especially for content creators who use it as a learning tool or to generate ideas. (32m3s)
- However, it's becoming increasingly obvious when AI is used to generate content, such as job applications, and it's clear which people actually wrote the application and which ones used AI to mass apply. (32m38s)
Decentralized Data Ownership and Human-Centric Internet
- There's a growing interest in decentralized data ownership and keeping content in the open, which allows humans to own their data and write their own things without catering to algorithms. (33m15s)
- This shift is leading to a resurgence of the human side of the internet, where people share their opinions, likes, and musings on various topics, whether technical or not. (33m27s)
- The project discussed, Luna Focus, is an example of this shift, and the creator, Roselle, is active on various social media platforms, including Twitter, Blue Sky, Mastodon, and others, under the handle "black girl bytes". (34m24s)
GitHub Spark: AI-Native App Platform
- GitHub Next has built GitHub Spark, an AI-native app platform that enables users to build, use, and share highly personalized micro apps, making it easier for people to create software through natural language, even if they don't know how to code (35m12s).
- GitHub Spark allows users to describe what they want to create, and the platform provides an app that can be interacted with immediately, rather than providing code (35m40s).
- The apps created on GitHub Spark are made up of custom components, providing a consistent feel, and users can customize the theme, including light or dark mode, or let it respect the operating system's theme preference (35m53s).
- Users can also access a theme editor to control aspects like primary accent colors or border radiuses, and can iterate on their app idea by capturing additional data, such as latitude and longitude (36m5s).
- GitHub Spark stores state without the need for users to manage databases or connection strings, making it easier to add and delete data (36m25s).
- Users can allow others to update and delete items in their list, and plot ratings onto a map, and can also ask Spark to suggest new items based on existing ratings and reviews (36m39s).
- GitHub Spark uses AI to generate results, and provides a multicolored animation around the button to indicate when AI is being used (37m16s).
- Users can provide vague requests to Spark, and the platform will provide several alternate paths to explore, allowing users to select the option that best fits their needs (37m28s).
- As users iterate on their app, they can see a history of changes on the left-hand side, and can explore the revision prompt and resulting state that was generated (37m52s).
- GitHub Spark empowers users to revert changes or explore alternate paths, and allows them to rename and save their app for easy access from their dashboard (38m8s).