Beaker, Dat and the Old Web
With my new found appreciation for the old web and aged websites, I happened to come across Beaker, an open source web browser focused on peer-to-peer sharing of websites. It allows you to browse websites at a directory-level and redistribute them. The user experience reminds me of browsing websites before the last decade where sitemaps and directory listings were public and openly shared.
A Decentralised Web
A decentralised web is something I've wished for almost a decade. For my current side project, and in fact every website I've maintained, having to set up caching headers, CDNs, service workers and everything in between to get globally fast and resilient web sites up has always been a hassle.
When Beaker loads a site using the Dat Protocol, the user can redistribute that site to others, much like a torrent. This way, users can download data from their closest peers rather than a CDN.
Because Dat-based sites are versioned, much like Git, users can synchronise their local copies with the remote origin for updates. So instead of downloading the site every time and relying on caching, the user automatically receives updates as they're made to the origin.
Why don't browsers offer offline support out of the box? I mean, they just downloaded the site! Why can't they load it up locally without a network? If you can "Save page as..." to get a local offline snapshot, why not use that? Sure it's limited to whatever's been loaded, but it's better than seeing a cute and useless error page.
Beaker supports loading web sites using the Dat Protocol, so it can essentially download the entire site directory. This can then be used as an offline copy. Problem solved!
One of the ways I learnt Web Development was by simply opening Dev Tools and hacking a way at my favourite sites. Moving things around, restyling it and adding new features. Greasemonkey and Stylish were my go-to tools.
I don't really do much of that nowadays, but I can't deny all the valuable lessons I learnt just by looking at how websites were wired together.
Again, since Beaker stores a local copy of any Dat-based website, you can "fork" websites, make your own changes and distribute it. Websites can include their source code too for users to easily edit. This can be a huge boon for a new kind of open source.
It can't be a coincidence. As of late, a lot of issues have started cropping up across the web, which indicates a need for a decentralised, user-focused web. To name a few:
- Slack shutting down their IRC and XMPP gateways.
- Reddit and Twitter struggling to moderate their giant userbase.
- Growing calls to regulate social media.
- The increased availability, power and frequency of DDoS attacks.
Though, this is likely just Frequency Illusion:
The illusion in which a word, a name, or other thing that has recently come to one's attention suddenly seems to appear with improbable frequency shortly afterwards
But I'd like to think otherwise. Hopefully Beaker inspires major browsers vendors to embrace a decentralised web and work to realise it. Firefox has already added preliminary support for Dat, allowing extensions to use them.
Beaker and Dat are far from ready right now. They're a glitchy and there's not a lot of content out there. But it does show how a decentralised web might work. And with it, it can make the web a lot more open than it currently is.