Blog - 0x00


Setting up a website on Gemini (alternative to HTTP)

2021/11/05

I was browsing new posts on Lemmy (Similar to reddit, for the fediverse) and stumbled upon a project called The Weblite project, which wants to define new specifications to make the web lighter and easier to develop browsers for it, but it’s still very new. “HTMLite” one of their specifications it’s still on revision 0 so I’ll keep an eye on for when they release a new revision.

While reading their website, Gemini was brought to my attention, it’s a “new” protocol similar to HTTP with the difference is that the specification is very simple, is privacy focused and defines a very simple file format to serve files over Gemini making it lightweight.

The simplicity of the protocol allows developers to easily create clients and servers for Gemini from scratch, unlike current web standards that takes group of developers to maintain and create. The simplicity of the file format called “Gemtext” which is also part of the Gemini specification allows to serve very lightweight files while allowing certain formatting of your text.

Chrome, one of the most popular web browsers, uses their own browser engine called “Blink” and they are no the only ones using that engine, recently Microsoft decided to use Blink engine on their new browser (Edge), and the only “competitor” to this engine is Gecko, developed by Mozilla. This shows that there is very little options when it comes to browser and engines and this enables companies like Google (Blink engine) to decide the future of the web by creating “features” which are not defined by the web standards and you end up with websites with the warning or banner “Best Viewed with Internet Explorer”, which forces users to use THEIR browser.

Of course, one of the first things I did was checking out websites over gemini://. I used Lagrange browser, which is a browser written in C and is available in Linux and Window.

Lagrange browser displaying gemini website over Gemini protocol

Because Gemini is about simplicity, Gemtext is a file format that allows you to add text, headings, lists, links quotes and preformatted text. Thats it, the size, the font and colors is up to your client making it easier to customize all webpages to your needs. For example websites like Docker or YouTube have a button to toggle between their light and dark version of their website, there are even browser extensions that will modify the colors of a webpage to darker ones, but what if instead you were able to control that without the need of extensions that may break with an update or by having to develop toggle buttons. Here Lagrange allowed me to change the colors to a sepia and the font style, and no matter what website I visit it will keep the colors, font style and size I defined.

Lagrange browser displaying gemini website over Gemini protocol

I liked its simplicity and the fact that is privacy focused, since there is no JavaScript executing code in your machine and there is no need to send headers with a lot of information about the connection/client. The only thing the server knows about who’s visiting the site is your IP and the resource you are requesting. So I decided to host this blog over the Gemini protocol if you want to try out a website. gemini://gmi.0x00.cl

Lagrange browser displaying home of 0x00.cl over the gemini protocol