What's the point of Web5?

Developer Advocate @ GitHub
Search for a command to run...

Developer Advocate @ GitHub
No comments yet. Be the first to comment.
Raise your hand if you've been personally victimized by the question: 'Will AI replace software engineers?' It's a common debate that drives developers to extremes—either avoiding AI entirely or frantically signing up for every AI course available. ...
I recently went down several rabbit holes about building WYSIWYG editors and popovers. While on maternity leave, I finally have time to deeply explore random technical problems without deadlines - a rare opportunity. Thus far, I've focused on contrib...
This blog post uses storytelling to introduce beginners to Verifiable Credentials, followed by a tutorial on creating them in JavaScript and Kotlin. In Our Last Issue... In our previous issue, we met Dawson Webhart, a junior frontend software enginee...

"Our current credit system says, 'Saddle yourself, so we can give you more to saddle.'" Eric Lapin, President of FormFree, stated during a recent TBD live stream. His comment sheds light on a fundamental paradox of the U.S. credit system: it often re...

Technology adoption doesn't happen with one software engineer coding in solitude. Even though big companies like Meta and Microsoft boast of their humble beginnings in a dorm room or a garage, product adoption requires good marketing. Many software e...

Black Girl Bytes
58 posts
I'm a Developer Advocate at GitHub. I'm passionate about community, code, and education! Reach out to me on Twitter ❤️
Meet Dawson Webhart, a software engineer who's part of the frontend team at StyleByte, a cutting-edge fashion company that uses augmented reality to style its customers. The team focuses on the part of the app that users see and interact with, and Dawson is a key contributor.

Today, Dawson is at her desk, but she's not exactly working. She's scrolling through her phone, watching short workout videos to inspire her next gym session.
"Here are my top 10 tips to getting a peach like Megan Thee Stallion," says the fitness instructor on the video.
Dawson rolls her eyes just as her co-worker, Nadia Noelly, bursts into her office. "Hey, Dawson! The meeting is starting soon, and I want to get there early. They're making a big announcement!"
"Another announcement? What now? More ping pong tables in the lounge?" Dawson sighs, not particularly thrilled but curious enough to find out.
In the meeting room, the atmosphere is electric and cult-like as every tech company is. StyleByte's Vice President of Engineering, Wilson, takes the stage. "We're moving to Web5," he announces.
While Nadia's eyes beam with excitement, Dawson feels a mixture of concern, exhaustion, and frustration. "Web5? We just integrated Augmented Reality, migrated to the cloud, and now this? What even is Web5?"
Dawson has always been cautious about change, especially when it comes to technology. She tunes out for the rest of the meeting, pondering what this shift could mean for her work.

After the meeting, Nadia is practically buzzing. "Wasn't that cool? We're moving to Web5! You know what that means, right?"
"More late nights and stress?" Dawson sarcastically replies.
"No, silly! A promotion! We could lead this initiative and finally drop our 'junior' titles. How does 'Mid Level Developer' sound?"
For the first time, Dawson feels a spark of interest. She's been at StyleByte for three years without a promotion. "Okay, you've got my attention. But what is Web5?"
"Weren't you listening? They emailed us the presentation. Check it out," Nadia says, already halfway out the door.
Back in her office, Dawson opens the presentation and finds a diagram explaining the evolution of the web:

Web 1.0: Static, read-only content.
Web 2.0: Interactive, social, and user-generated content.
Web3: Decentralized, blockchain-based, user-controlled data.
Web5: Enhanced decentralization, peer-to-peer communication, and self-sovereign identity.
Dawson finds it interesting but isn't entirely convinced. "Seems like a solution looking for a problem," she thinks.
Just then, a notification pops up on her phone. It's from her favorite social media app, Incognito. Incognito’s new and very erratic CEO, Francis Francino, has just announced a name change for the app—to WebHeart.
“We will be changing this app’s name to WebHeart because it exemplifies what this company has evolved into. We capture the heart of the web. We will be changing our username to @webheart to reflect that.”

Dawson's eyes widen in disbelief. "@webheart" was her own username, a clever play on her last name, Webhart, and her role as a frontend web developer focused on enhancing user experience. She quickly replies to the announcement, "Hey, that's my username!"
Francis Francino responds almost immediately, "Oh, too bad. How about some free merchandise to make up for it?"
Nadia texts her, "Sorry to hear that. If we were on the decentralized web, this wouldn't have happened. Your username would've been yours, controlled by a Decentralized Identifier. Look it up."
Dawson feels gutted. That didn’t console her at all.

Dawson feels a mix of indignation and inspiration. If there's anything that fuels her, it's the prospect of revenge served cold and promotions served hot. She decides to dive deeper into Web5. Maybe she could build a transparent social media platform where usernames are truly owned by users. Or maybe she'll snag that promotion. Either way, Dawson is now on a mission.
Throughout her research, Dawson asked the following questions:
Web5 is an evolving incubator project spearheaded by TBD, Block's newest business unit. The goal is to equip developers with the essential tools for building decentralized applications that prioritize user control over identity and data.
From Dawson’s perspective Web5 could be considered:
Tooling: Web5 provides a suite of tools and APIs designed for implementing Self-Sovereign Identity (SSI), decentralized data storage, and secure peer-to-peer communication. This enables the creation of secure, user-centric, privacy-first applications.
An Ecosystem: Web5 is part of TBD's broader ecosystem, which aims to empower developers to create their own decentralized applications and protocols.
Toolbox for Developers: Web5 provides pre-built functionalities for identity management, data storage, and secure communication. This way developers can focus on building their application's features rather than worrying about the complexities of security and identity management.
Web5 exists to enable Self Sovereign Identity. Self Sovereign Identity (SSI) is the concept that users should have full control and ownership over their digital identities.
Because we are not used to owning our digital identity, it may seem like a futile and foreign concept. Here are a few moments when ownership of digital identity is beneficial:
Social media:
There’s no way someone can steal your handle, just like what happened with Dawson's "@webheart" username.
You can take your followers and content with you if you decide to switch platforms.
You have full control over how your data is shared, reducing unwanted advertising and privacy breaches.
Healthcare systems
You can take your medical records with you, ensuring that you have access to your own health information wherever you go.
You control who has access to your medical data, making it more secure and private.
Banking
Your financial transactions are secure, and only you have access to your financial data.
You can easily prove your identity for online transactions, reducing the risk of fraud.
You can build a web5 application using the web5.js SDK.
A decentralized identifier (DID) is a w3c open standard. It’s represented by a string of numbers and letters that identifies and verifies who you are on the web. No one can take it away from you, and no one can change it. A DID is not limited to just a person. It can point to an organization, data model, entity, or whatever it is that user is managing online.
Creating a directory via her terminal
mkdir decentralized-social-app
cd decentralized-social-app
Installing the web5.js SDK
npm install @web5/api
Verifying her package.json looked like this:
{
"dependencies": {
"@web5/api": "0.8.1"
},
"type": "module"
}
Creating an index.js file
touch index.js
Importing the Web5 package in our pages/index.js file
import { Web5 } from '@web5/api';
Creating a decentralized identifier
const { web5, did: dawsonDid } = await Web5.connect();
Logging the decentralized identifier
console.log(dawsonDid);
Running this command in her terminal
node index.js
Here’s her result
did:ion:EiBiHtKwEIdrqLRph3id0HoyCeuk69t6oWbw38WbyYAjvQ:eyJkZWx0YSI6eyJwYXRjaGVzIjpbeyJhY3Rpb24iOiJyZXBsYWNlIiwiZG9jdW1lbnQiOnsicHVibGljS2V5cyI6W3siaWQiOiJhdXRoeiIsInB1YmxpY0tleUp3ayI6eyJjcnYiOiJzZWNwMjU2azEiLCJrdHkiOiJFQyIsIngiOiIxOTQxS29LZ1RyX1V5cDhwcDJITTdGc3U3TzhMb3JyRXNuaXpTZ3o0T1NNIiwieSI6Im1XLTB3dGZobWxBYklFVFczY1JmZUFDRXVzcGNVTVlnM2kzTXlYUTc2X2cifSwicHVycG9zZXMiOlsiYXV0aGVudGljYXRpb24iXSwidHlwZSI6Ikpzb25XZWJLZXkyMDIwIn0seyJpZCI6ImVuYyIsInB1YmxpY0tleUp3ayI6eyJjcnYiOiJzZWNwMjU2azEiLCJrdHkiOiJFQyIsIngiOiJONFhPWWgzeWRMMHA1UGZrVzRZWmZqWjN3WXpQWmNRb1pNcmpQX04xUmI4IiwieSI6InUzRHBKc1ZkN0FRVUZEYkVaSEVhUkJNM0VCajN1ZEpJMXpUbFVsSnZJaFEifSwicHVycG9zZXMiOlsia2V5QWdyZWVtZW50Il0sInR5cGUiOiJKc29uV2ViS2V5MjAyMCJ9XSwic2VydmljZXMiOlt7ImlkIjoiZHduIiwic2VydmljZUVuZHBvaW50Ijp7Im1lc3NhZ2VBdXRob3JpemF0aW9uS2V5cyI6WyIjYXV0aHoiXSwibm9kZXMiOlsiaHR0cHM6Ly9kd24udGJkZGV2Lm9yZy9kd240IiwiaHR0cHM6Ly9kd24udGJkZGV2Lm9yZy9kd24yIl0sInJlY29yZEVuY3J5cHRpb25LZXlzIjpbIiNlbmMiXX0sInR5cGUiOiJEZWNlbnRyYWxpemVkV2ViTm9kZSJ9XX19XSwidXBkYXRlQ29tbWl0bWVudCI6IkVpQ25tcGxmb1VOemlnX01HWnA1QU1Gel9yRm5rUmtHV01jSXJSbFcyT1dGd3cifSwic3VmZml4RGF0YSI6eyJkZWx0YUhhc2giOiJFaUNnUy1nT21lY3lBeXo0V1VwTEJUQTl3MnFIVUR3ek0wd0JyUkYxbXZZY1V3IiwicmVjb3ZlcnlDb21taXRtZW50IjoiRWlBZnZHWEx2cEhEOFVRbnU3RG1OTDVKdEFMQjRaOTg2bG1VRjFMTERPN1JrQSJ9fQ
Dawson was having so much fun learning until she realized it was 5:00 pm and her work day was over. She still had questions like,