:PROPERTIES: :ID: d8304f8a-8db3-4b57-b87a-1d31230fbe93 :END: #+title: The new web and how to achieve it #+Author: Yann Esposito #+Date: [2024-06-27] - tags :: [[id:a5be1daf-1010-428f-a30f-8faf95c1a42f][blog]] - source :: * The new web and how to achieve it I was born before the web, and discovered Internet via the web first as most people. Clearly now, the web is polluted to the point where it is almost unbearable for me. I don't want to start the analysis about exactly went wrong about it. A lot as already been written about it. But let just say, people now forgot about the Internet and focus on the Web. So the spirit about consuming the Internet changed a lot. As I remember the Internet, it was first focused on protocols. People would create a new protocol to provide a feature. Typically, chat, voice, file sharing, etc… Let's take for example, chatting. The IRC protocol is provide. The IRC need two applications, an IRC server and an IRC client. We saw many different IRC servers be built, in different programming languages. And we saw, also many different IRC clients. Of course, there was always some tension between some server not respecting exactly the same conventions than others, but mostly. This was entirely interoperable. As a consumer you choose the application you preferred to use IRC. And the same occurred for, the Web (even if it has changed a lot; [[org:web-engines][see footnote]]), file sharing (FTP, sFTP, then so many P2P protocols), discussion/forum (BBS, Usenet). In fact, I would argue that, the "real Internet" consumption, I mean, in the spirit of the founders was the P2P networks. The net was supposed to make direct communication between people. Not everything was perfect, very far from it. But it had the property of being really free, as consumer we had a lot more choices. So now, we mostly consume the Internet only via the Web and emails. And, as the Web becomes crap, we see a resurgence from the geekiest between us of a will to go back to the old direction. Mainly, decentralization to prevent a single player (generally a big corp) to "enshitify" the experience for everyone of us. I feel the crappy web will be here to stay for a long time. But, we can do something about it. First, there is the recent [[https://www.w3.org/TR/activitypub/][ActivityPub]] protocol. This protocol is recently used to build a [[https://en.wikipedia.org/wiki/Fediverse][Fediverse]]. I feel this protocol has its flaw, but so far, we have not reached [[https://en.wikipedia.org/wiki/Eternal_September][Eternal September]] yet and I enjoy [[https://joinmastodon.org][Mastodon]] (a twitter clone) and [[https://join-lemmy.org][Lemmy]] (a reddit clone) for example. But I wouldn't write this blog post if I didn't believe that we can do better. I feel we reached a point where the web is screwed for good. It is now time to create another protocol that does not need a "Web Browser". Here is my doleances: - The client of this new protocol should be EASY to write from scratch. - The client should NEVER allow client-side scripting. - The language into which we express a rendering should be expressive enough but NOT Turing Complete, we must have a language that can be proven to stop. - The user should be in control of the rendering of the content. Disabled people deserve the right to access the content they way they see fit. No equivalent of CSS which should naturally provide a more "article" or "content" type of things. - Bonuses: - the client is mostly retro compatible with small-websites. Can parse basic HTML, will not load js, will not load CSS, will take care of checking some properties before redirect the user. Ideally we should ask use HTTP to ask a HEAD on the resource, and check a specific header that tell us, that yes, this website is compatible with the "small-web" - the client should also be compatible with gopher and gemini. I want: 1. A new protocol for which it is easy enough to write a code. 2. Still provide nice features that provide the ability for anyone to express his creativity. 3. Would be difficult to monetize with ads, would be very easy to monetize by other means without killing the planet or on top of Ponzi scheme. 4. Client can control a lot about what they view. So people with disabilities can still easily consume what is provided. 5. Should be reasonably safe an private. If you talk to someone, no one else should be able to listen. 6. I would love if a discussion mechanism was integrated. 7. I would love if it could be decentralized * Solution A new application. The UI should not be browser oriented. 1. identities management based on public/private keys. 2. rooms with addresses that should be public or private. 3. rooms have a unique hash to identify them, maybe a short name resource mechanism 4. web of trust using identities 5. Monetization? ... Virtual points? * Footnotes ** <> The Web is entirely controlled by Big corps now As a reminder, the Web is just one way to consume the Internet. Internet is about protocols so different computers can communicate across the globe and beyond. And I would like to remind a time were attached to every new protocol there were a set of applications tied to it. So the Web turns around the HTTP/HTTPs protocols whose content is HTML+CSS+JS. The Applications to consume the Web are Web browsers. For web browser to render a website correctly should have a lot of features, so much that for that you need a /Browser Engine/. The complexity of these Browser Engine is so huge that it would be very difficult if not impossible for just a small group of people to be able to create a new one from scratch. As of today, there are very few choices, looking at this [[https://en.wikipedia.org/wiki/Comparison_of_browser_engines][Wikipedia page]] there are only 4 active browser engine. Most controlled by tech Giants (Apple, Google and Microsoft) and the last one Gecko is controlled, mostly, by Mozilla but is currently very dependent financially from Google. Does it matter? I think so yes. It is now, very easy, for these big players to enforce policies that are against consumers best interests. I guess you can imagine a few of them. Through the browser engine you could alter the rendering of any website. ** The new web became an open application download platform. What really changed recently, is that, we added, layer after layer. The new web mix content website with applications. A website that is in fact an application, or contain an application. As long as you use the application in the "virtual machine" that is the browser engine, you're good to go. The system will download the application without any warning, and it will launch the application without any warning. And you are slightly protected from most nefarious use case but not all. Typically, I could easily put an js that run crypto-money mining and there is not really anything you could do about it. I am even very surprised most website are not already doing something like this. This might be an even better mechanism to earn money than ads... Anyway, it would waste so much resources, I'm glad this is not the norm... yet.