Hyperlocal Software
How Web3 opens new opportunities in software development
The bright promise of software is the ability to solve a personal problem. If no solution already exists for a challenge I’m facing, I have the superpower to create a new solution myself.
We’re accustomed to thinking about software development as something that only big companies do: Microsoft! Facebook! But there’s a huge amount of power in creating ‘hyperlocal software’: creating software to solve a problem that you and your community face.
Hyperlocal software solves a problem personal to you or your local community.
Yet software development is still too hard. And because it’s too hard, it’s often too difficult to get started. Only 0.5% of the planet can claim to “know how to code”, and even of those, bringing a new idea out into the world is often prohibitively complex. While software has the power to “eat the world”, that power is effectively locked away for the majority of the world.
We’re all used to taking photos and making videos for our friends and family — so when can we make little APPS for our friends and family? The next revolution of the internet will be once we break down the artificial barriers preventing anyone from creating hyperlocal software to solve their own problems. Very likely, these apps will also change the world.
Software Development Status Quo — Too exclusive
In many measures, writing software has indeed gotten much easier over the past decade. Rather than creating a new server rack to power your website’s backend, you can use AWS. Rather than writing a server, you can use Firebase cloud functions. But these are very deep verticals, and you are still supposed to know how to piece all these services together. You’re still only a couple of abstractions away from doing it all yourself. At best, it’s incredibly inefficient and is a huge source of friction in innovation. At worst, it’s a prohibitive barrier that prevents new entrepreneurs from getting started at all.
Really, as a new developer, it’s impossible to know what you don’t know.
Solution: “Deconstructive” Software Development
When I approach the problem of developing a new app, 90% of my time is spent on ‘tablestakes’, or features users expect from all the other apps they use. Login. Accounts. Commenting. Followers. These are not new concepts, but when you are creating an app for the first time, you are required to start from scratch.
As an established developer, over the years I’ve built up a personal library of half-finished or sunset apps that I can scrap for parts whenever I start a new project. So, rather than starting from the ground level, I start with an existing app and chip away at it until I can add the truly new features.
This “Deconstructive” approach to software development means that I can ignore the ‘tablestakes’ and get straight into the hyperlocal part — the part of my idea that I’m excited to build for my friends and family.
Yet new developers don’t have this advantage. They have to start from scratch, because they don’t have other existing projects to use. But it did get me thinking:
Could we create a new system to provide entire working apps for deconstruction? Rather than having to choose a ‘software stack’, and additively putting new pieces into the application, someone with a new idea could take a working app off the shelf and mold it until they have their new idea. If they didn’t need to innovate in an area, say uploading photos to a database, they wouldn’t even have to spend any time thinking about it.
The appeal of the Deconstructive Software approach is to lower the barrier to creating hyperlocal software. Starting with something that works, and then changing it until it’s the new idea that you have is still the best place to start.
Web3 Changes Incentive Structure
Unfortunately, the incentive structure isn’t currently setup to support the new Deconstructive model. If I create an app, and release it on the app store, why would I completely open source it and allow anyone to rip it off? I spend all this time creating an app and then someone else uses it, tweaks some variables, and then they go viral and get all the credit?
Historically, creating open source software has been a thankless, altruistic task. Take the story of homebrew, used by tens of millions of creators:
“Maintaining such a large project was more than a full‐time job but every few years Max would have to go back to working on somebody else’s idea for money. Of the countless enterprises that have utilized Homebrew, only two have ever said thanks: Google sent him a blanket and Square sent him an iPad. As generous as (the iPad) was, small gifts don’t pay bills.”
Yet now we have new tools. Web3 is already changing the Homebrew example, with the new project Tea.xyz by Max Howell. He writes about his new project that:
Web3 has introduced powerful new paradigms that allow value to be compensated without direct payment.
When there is a way to track ownership, and provide rewards back to the original creator, then suddenly the incentives switch to promoting open source. Maybe my photo-sharing app didn’t get many installs. But if someone else can easily fork it, change some pieces, and then their version is successful, and I get some percentage of the credit, I’m suddenly incentivized to open source all of my projects.
This is where the potential of Web3 comes in to solve the above problems with deconstructive development. NFTs provide status-as-a-service and enforceable royalties — so we can use them to track software development credit.
Soon, even if you don’t know how to code, you’ll be able to take fully functional apps off the chain and experiment with tweaking them. Rather than ‘learning to code’, you can just try copying and pasting and deleting things and experimenting your way to a solution to your problem.
The future of the Internet
I’m currently building Seam, which brings a GitHub-like approach of community and collaboration to the process of creating the front end of a social network. And like the best of Web3, Seam brings composability, ownership and payments to developers.
Seam is a centralized platform with a decentralized featureset. This abstracts away all the tricky things like database management, social graph management, and appstore management, and allows people to get to the thing that matters the most: creating solving problems or creating fun stuff for their friends and family. All blocks are remixable, meaning that anyone with an idea, even if they don’t know how to code, can find an example block and then work from there.
Hyperlocal software made by everyone is around the corner.