Devin Abbott
6 min readJun 16, 2022

Meet Geo, a browser for web3 content — and my vision for web3 as backend infrastructure for apps

I’m excited to finally be able to share my work on Geo, a new mobile app just announced by Edge & Node. I’ve been helping develop Geo over the last few months, and it’s finally available in beta: Go here to request access.

The text “Geo, the decentralized world awaits” over a pink and orange gradient background

While I’m a proponent of web3, there are still frequent questions around its scalability and future. What can we use web3 for beyond NFT and crypto speculation? Is the infrastructure ready to support “regular,” everyday apps?

Geo, hopefully, is an answer to these questions.

What is Geo?

Geo is a browser for creating, curating, and consuming an open knowledge graph. I think of it a little like Wikipedia-meets-web3. Anybody can add articles and data sources (think Notion databases), with contributors earning reputation points for creating and curating content (think reddit). Imagine if you could propose an “edit” to any webpage you’re reading, and that data is instantly available via API to developers all around the world — that’s Geo!

Geo relies on several decentralized services for the dev stack:

  • Smart contracts track user accounts
  • User-generated content is stored on IPFS, and linked to the blockchain
  • The Graph acts as the database, indexing Geo’s smart contracts and IPFS data

If you’ve ever used a web3 dapp before, you might’ve had a crummy experience, especially if you’re not super well-versed in the space. Even some of the best ones can still be slow and confusing to use. With Geo, we wanted to try something different.

Geo’s UX

Geo’s landing page

When you start using Geo, you’ll notice that in most ways it feels quick and seamless just like the Web 2 apps we use every day… with one key difference. When you post an update on Twitter, Instagram, or pretty much any other app, it’s published instantaneously — you click and it’s up. There’s no weight or “gravity” to it. When posting content on Geo, by contrast, you must use your password or iOS Face ID, and do a final “Yes I’m publishing this under my account” confirmation.

This is because to post, update, or vote on content, you need to use a crypto wallet. However, we wanted Geo to be just as easy to use as a Web 2 app. So you don’t have to own a pre-existing wallet, or even know what a wallet is. Instead, installing Geo creates a wallet that’s tied to your device. Your wallet’s secret phrase is then stored in Apple’s secure storage, just like some standalone wallet apps. Geo will require a $5 monthly subscription from end-users, which goes toward covering the costs of making transactions, and storing/querying data on the different decentralized networks.

We could’ve hidden all hints of a wallet being involved, but we chose to show users the wallet authorization step for two reasons. First, we believe it’s an important design decision to help foster positive, quality content. Just adding this single extra step will hopefully encourage more thought and consideration around the posting process. Second, wallets will only become more important as apps start to adopt the web3 stack, and we want people to feel the weight of posting public content to the blockchain.

From a user’s perspective, that’s really the only difference, compared to the Web 2 apps we use every day. From a developer’s perspective, however, it’s a whole other game:

Developing Geo with a Decentralized Backend

Configuring the backend for Geo was much different (and in my opinion, easier) than configuring a similar backend for a comparable Web 2 app.

  • Instead of hiring backend developers to build something bespoke on AWS, we had a smart contract and IPFS; that’s all we needed
  • Near the end of the dev cycle, we set up a custom subgraph on The Graph to index Geo content and make our app fast
  • Instead of a large, dedicated team working on this app for over a year, a handful of us built the majority of Geo in just a few months.

Geo is the kind of app I’ve been envisioning since I started experimenting with web3 last year: the frontend built with React Native, and the backend built on decentralized services, a “regular” app designed for everyday use by people with little understanding or interest in web3.

This isn’t to say every app is ready for a fully smart contract-based backend. After you post content in Geo, it still takes a few seconds or longer for it to show for everyone else in the system, since the (Polygon) blockchain has to confirm the transaction. An app that depends on realtime interaction, such as Twitch, would likely need to be architected differently.

Netscape & web3’s Network Effect

I see web3 as a worldwide, collective experiment. We’re still figuring out what is easy to build with it, what is not, and improving the core tech stack as we go. Geo is one way to build a user-friendly app on top of web3 tech, that we hope other people can learn from and build on top of.

As part of that experiment, what we did with Geo can be leveraged by other devs. Geo isn’t a walled garden, its data is all public, and it has a GraphQL API for any developer to access. And not just web3 devs — I hope all developers can benefit from Geo’s open data, and that apps like this blur the lines between what we consider a Web 2 and web3 app. We’ll also be making all of our code open source so other devs can use our same techniques. Our hope is this helps enable a network effect for other apps that want to transition parts of their backend stack to decentralized services.

Related to that, consider the point in the mid-90s just before Netscape, the first commercial web browser, went public. During that time, media reports were hyping a new technology called the world wide web, claiming it would transform everything. That all seems inevitable now, but back then, browsers were not standard to PC and Mac operating systems. With limited use cases, many pundits even argued the world wide web and the Internet itself was over-hyped.

Image by https://twitter.com/ballmatthew

None of the web’s massive potential could be met until consumers started downloading a browser. That’s what led to the network effect that made the web possible. The same might be said now, I think, with web3. If consumers can get accustomed to using wallets (even if they’re mostly behind-the-scenes like in Geo), we can leap into a new kind of computing where our core development infrastructure is decentralized. Like the web browser, the point of web3 adoption is the network effect of a positive feedback loop.

Browser adoption enabled internet-based companies to compete with brick-and-mortar stores with only a fraction of the initial capital. Similarly, wallet adoption lets us build with decentralized backend services — which can be an order of magnitude faster and cheaper than the traditional Web 2 stack. This dramatic decrease in cost and development time has the potential to enable new companies, business models, and apps that we’ve yet to dream of.

This is why I think NFT/crypto speculation are often a massive distraction from web3’s bigger potential. It shouldn’t be about bringing in new wallet owners to inflate the price of tokens — as a community we should instead be saying: “Get a wallet and come experiment with this whole new world that’s springing up.”

Geo is a small but hopefully important part of that message. I’d be grateful if you take some time to check it out, and let us know what you think.

Devin Abbott

Design tools, developer tools, React, and web3. Focused on open source. Prev Airbnb, Deco, Yahoo.