Web 3.0 is an umbrella term for technologies in the webspace that offer decentralized applications and don’t rely on central servers, improving user autonomy and privacy. While many developers focus on Web 3.0 applications that use distributed ledgers called blockchains to manage data, other applications use methods like torrents or browser storage to offer decentralization.
In this article, we’ll review some of the different technologies in this space, discussing their current state and future plans. Let’s get started!
Onion Routing is the key technology of the Onion Router (TOR), created in 2002. TOR
disguises the source of internet traffic through layers of servers and encryption.
With the TOR Browser, you can create .Onion
domain names that provide your website with source anonymity in what many refer to as the deep web. The deep web contains sites only accessible through the onion protocol on the TOR browser.
TOR and the Brave browser both support the Onion Protocol. The makers of TOR have also created a browser for iOS called the Onion Browser.
The Gemini Protocol, created in 2019, is an internet protocol that aims to fall somewhere in between the Gopher Protocol and HTTP. Gemini offers improvements like domain-based virtual hosting, redirects to prevent broken links, and identification of binary content using MIME types.
Gemini distributes sites using a lightweight markup language called gemtext, which removes many of the advanced media features of HTML, keeping pages small so they load quickly. gemtext looks a lot like markdown, so a heading with a bulleted list would use the following structure:
# This is my Heading * item * item * item
Generally, pages are text based with some color changing, meaning content loads quickly and is responsive to the viewport. To add external media, you can simply use links. If content moves to another location, you can easily create redirects.
You can access a list of Gemini clients on the homepage. At the time of writing, there is no major browser support for Gemini, but there are traditional HTTP sites that can act as a proxy to access Gemini content from any modern browser, like Mozz.
The Interplanetary File System, or IPFS, is an internet protocol created in 2015 that aims to decentralize the location of content on the web. Instead of hosting content on a static server, content is distributed via peers who seed content in a way similar to torrents.
As long as one IPFS node has its content under a particular IPFS content ID, the content will remain accessible. Content is immutable, so any updates will result in a new content ID. At the time of writing, the Brave and Opera browsers both have native support for IPFS, and you can download extensions to add IPFS support to Chrome and Firefox. Additionally, databases like OrbitDB and AvionDB are built on top of IPFS.
Stacks is a blockchain-based protocol that settles transactions through Bitcoin transactions on the blockstack network. Apps built on the blockstack network can’t be taken down. Additionally, data is controlled by the user and is portable between apps. App builders can also issue their own tokens with the security of the Bitcoin network.
A popular example of a Stacks app is the blogging application Sigle. First, you’d get a secret key from the Stacks network, then you can log in to Sigle or other apps using the key. Data will be bound to the key instead of the app.
You can build the frontend of these apps with standard HTTP websites, so you don’t need any unique browser. The application itself handles creating and fetching the data. The data on the network is deployed to the blockchain, then paired with a standard web interface.
At the time of writing, another blockchain network Algorand is working with Stacks to develop the Clarity language, which is used to build apps on Stacks.
BigchainDB is a database that any web, desktop, or mobile application can use to distribute data over the Bigchain network. Data on BigchainDB is organized into assets that can either be created or transformed, instead of records or collections.
Assets are especially useful for applications aiming to create records of ownership. Imagine you create an asset for buying and selling goods between users. When a user registers a good they would like to sell, they’d first CREATE
that asset on the Bigchain network that they own. When the user sells the asset, the application would create a TRANSFER
transaction to transfer the asset to a different user or address on the chain.
The application that creates the data doesn’t own the data, but instead, it is distributed over the blockchain, preserving the integrity of the users’ assets. These assets work in the database you’d use in your application, so you don’t need any special browser. The user interface for the app would be your standard web, desktop, or mobile application.
ActivityPub is a specification for creating application servers that can talk to each other and create federated applications. An application that implements the ActivityPub specification can talk to other applications that implement the specification. One example of this is the microblogging network, Mastodon.
When you sign up as a Mastodon user, you sign up on one of the many independently run Mastodon servers available. Although each server is independently run and follows its own rules, you can follow users on other servers as long as the server you’re on allows you to federate with that server. A server can block federating or communicating with certain servers.
ActivityPub’s server specification protects your privacy. For example, if you want to own your information, you can start your own individual server and interact with the greater network.
On other networks, you must either follow the rules or lose all access to the network, however, on ActivityPub, there is no all-or-nothing gatekeeping in this sense. Because each server is independently run, you’re sure to find a server that allows or restricts your desired specifications.
GUNDB is a database that truly gives a user ownership of their data. The GUN database stores information on a user’s computer through the localStorage API. For example, imagine a social network or chat app that makes your data inaccessible when you log out, prioritizing your privacy even when you’re not logged in.
The localStorage API really opens the door to giving users greater control over privacy and scalability. Every user holds their own data, and data is passed via WebRTC. For example, think of how Zoom and other video calling apps pass data directly between users, providing great speed for viewing data.
With so many protocols available for decentralizing the web and protecting privacy and autonomy, it can be difficult to keep track of them all. In this tutorial, we covered a few of the most popular Web 3.0 protocols, looking specifically at protocols that use a blockchain-based approach.
If you’re looking for a good resource to keep track of all these technologies, be sure to check out the following GitHub Gist. Also, if you want to connect, be sure to follow me on Mastodon. Thanks for reading and happy coding!
LogRocket is like a DVR for web and mobile apps, recording everything that happens in your web app or site. Instead of guessing why problems happen, you can aggregate and report on key frontend performance metrics, replay user sessions along with application state, log network requests, and automatically surface all errors.
Modernize how you debug web and mobile apps — Start monitoring for free.
Would you be interested in joining LogRocket's developer community?
Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.
Sign up nowThe useReducer React Hook is a good alternative to tools like Redux, Recoil, or MobX.
Node.js v22.5.0 introduced a native SQLite module, which is is similar to what other JavaScript runtimes like Deno and Bun already have.
Understanding and supporting pinch, text, and browser zoom significantly enhances the user experience. Let’s explore a few ways to do so.
Playwright is a popular framework for automating and testing web applications across multiple browsers in JavaScript, Python, Java, and C#. […]