Some of my thoughts on the Gemini protocol


I experimented with the Gemini protocol recently. To be more specific, I used the Emacs Gemini client elpher to browse some of the Gemini spaces. It was a fun experience. Here are just some of my brief thoughts that I had while browsing. Note that they are jotted down without polishment whatsoever. So don't take them very seriously.

Table of Contents

Less is more

The first impression is that I haven't enjoyed this kind of smooth browsing experience for a while already: almost everything loads instantly, except when I accidentally opened some large dictionary files, hehe.

On a reflection, why do we need to make our browser an application platform? Is it really necessary to run some client-side scripts that are controlled by the author of the website, in order to correctly convey the author's meanings? What meaning is that? Tracking users?

If for styling reasons, I believe that the best styling for everyone is no styling at all: the users can choose to add their own stylings as they see fit. The appearance of an article should not be controlled by someone else.

If for functionality reasons, just send the relevant file to another appropriate application responsible for that functionality. For example, why use a browser to play videos, if there is already a video player in the computer?

Too minimal

One concern I have while reading about the protocol is that per chance it is a little too minimal? I mean, why can I not have more structured documents? And why cannot one have inline links? The FAQ page on the project capsule says this is because they want to stick to the principle of preventing abuses right at the beginning.

My question is if this is necessary?

Of course I agree that we shall prevent potential future abuses of the protocol, as that would have defeated the whole purpose of inventing this new protocol. Notwithstanding this thought, is it necessary to prevent abuses at such a cost?

Maybe for the creators of Gemini this is acceptable. But I really like structures within documents. So I kept thinking is it possible to attempt to have the advantages from both sides: to avoid potential abuses while allowing the text to contain structures.

Ease of implementation

The first obstacle is that one of the design goals is to make it simple to implement a client (if I didn't miss anything, the ease of implementing a server is not within the design goals, though). In other words, if we are going to have structures in documents, we shall make it easy to parse as well. Moreover, this parsing should not imply any potential scripting / actions at all, otherwise I can see future users suffering from all those tracking and advertisements again, somehow.

An idea

Why not write a program to ease the task of parsing documents? That is, why not write a parser generator that can aid the process of parsing? Accidentally enough, I am writing one such project.

Of course I am not serious: I have no skills nor time to provide support for any possible implementor of the protocol. This is just an imagination. :P


Still it would be good if we can extend the protocol. If the designer of the protocol does not allow extensions of the protocol, why not invent our own protocols that are extensions of the Gemini protocol? No one can stop us do that, right?

Perhaps I will experiment with some of the extensions in my mind. :D

All original content is licensed under the free copyleft license CC BY-SA .

Author: JSDurand


Date: 2022-08-30 Mar 00:25:00 CST

GNU Emacs 28.2.50 of 2022-12-05 (Org mode 9.5.5)