(originally posted on Farcaster)
Rereading this piece and thinking about how Web 3 fits into a thin platform world: https://stratechery.com/2022/thin-platforms/.
Local-only/local-first apps on mobile and desktop are less and less prevalent as the biggest platforms nudge developers towards the server. Our devices have become thin clients that require servers to function.
It makes sense, in part, due to the fact that each of the largest platforms (save Apple) runs a lucrative server business. The more servers are central to computing, the more revenue they capture.
Unfortunately, thin clients foster platforms that are much more closed for developers: "the question isn’t about what system APIs are ruled to be off-limits, but what “connectors” (to use Microsoft’s term) the platform owner deigns to build."
In the prior world of thick clients: "Developers had much more power and flexibility...because they had direct access to the underlying PC" which "...presented an opportunity for Firefox and Chrome to dethrone Internet Explorer — and for Netscape to exist in the first place..."
According to Ben, we have mobile to thank for starting the shift to thin clients: "mobile set the expectation that developer freedom — and by extension, opportunity — would be limited by the operating system owner."
As mobile has become dominant, large companies are more than happy to accommodate these thin client requirements while they compound data moats and avoid disruptive competition by locking down devices for developers.
So what role does Web 3 have to play? As our Web 2 king Jeff Bezos once said "your margin is my opportunity..."
While Amazon reaps its server profits, Web 3 abides by the "Server Not Required" ethos described by Nikita Prokopov here: https://tonsky.me/blog/the-web-after-tomorrow.
Developers talk directly to the DB (blockchain) from the browser via a number of different packages that define client logic. "Client logic is in control. JS gives orders, server/DB/[blockchain] follows them."
Interfacing directly with the data store make development feel powerful and flexible without the handcuffs of Web 2 platforms. All the logic you need can be built client-side in Javascript and blocks/contracts take care of the rest.
Clients are thick again and we should seek out ways to fully exploit the inherent advantages in this model.
A big step in this direction is the development of a local-first platform that adheres to the gospel of Kleppmann, Wiggins, van Hardenberg, and McGranaghan ( https://www.inkandswitch.com/local-first/ ).
The platform must enable apps to be: fast, multi-device, functional offline, collaborative, formatted for longevity, privacy focused, and user controlled.
At its core is the idea that apps must "treat the copy of the data on your local device — your laptop, tablet, or phone — as the primary copy" that is periodically synced to a data store that makes it available for collaboration and multi-device use.
There is philosophical alignment between blockchain and local-first proponents around ownership and privacy beyond the more universal affinity for fast and always on apps. This architecture can expand outside of current users and introduce new people to the advantages of Web 3.
Tools like IPFS, Ceramic, and OrbitDB can provide the backbone for this new, local-first platform. Add in app discovery with a subscription payment protocol, and a platform starts to take shape that fully capitalizes on the advantages of a thick, Web 3 client.
We're still early but if this sounds interesting to you, I'd love to chat. It's an exciting time to build!
kyle at trianglelabs dot com.

