A look at the Gemini protocol: a brutally simple alternative to the web
I have really come to hate the World Wide Web. It is bloated at every level! Websites themselves are doubling in size at an alarming rate. The web standards are expanding at an alarming rate. Trying to build a web browser that works with the modern web from scratch, would take the manpower equivalent to the Snowy Mountains Scheme or the Manhattan Project (no hyperbole).
The state of the web has lead me to only one conclusion: It is broken beyond repair.
I don't think the web can replaced, but we can still look for simpler (open standards) alternatives to move our works to. Gemini is one of these alternatives that I have taken interest in recently. A fairly recent protocol, created in 2019, Gemini defines a markdown-inspired document format, and it's own protocol to serve these documents, or other files.
If you a looking for a 1:1 clone for the early web, you will probably be disappointed. Gemini takes way more design hints from Gopher then it ever will from the web. Gopher (widely considered a predecessor to the web) is built on the idea of text only documents. Gemini expands on this idea by offering basic formatting, and fixing drawbacks unaccounted for in the original Gopher protocol.
Gemini shys away from many standard features of the web. Although there may be plenty of benefits that one accustomed to web wouldn't be able to identify. For example the lack of styling sheets may mean that Gemini sites look plain, however this allows your readers to decide on a colour scheme which suits them best. A night reader would prefer a dark theme, someone with a vision impairment will prefer high contrast, the list goes on.
The Gemini transport protocol is unsuitable for the transfer of large files, since it misses many features that protocols such as FTP or HTTP use to recover from network instability.
The internet protocols of old aren't encrypted by default, since security wasn't seen as being important back in the late-80's/early-90's. Thankfully Gemini, being a recent protocol, mandates the use of TLS. There is no unencrypted version of Gemini available.
I could totally see Gemini being used as an alternative particularly for the non-commercial individuals who use text as a primary medium. Blogs, poems, recipes, tutorials are perfect for the Gemini format. There are always ways around the lack of media functionality, since although Gemini lacks in-line images, you can still use in-line links to images. As time goes on I could imagine some Gemini browsers providing a fancy image viewer for links to images.
Now, what does Gemini currently have to offer? The best way to find out is to head over to the official site:
gemini.circumlunar.space in your Gemini browser. Here you can find two search engines dedicated to finding pages based on what you search for. And two aggregators which acts as a news feed of Gemini posts.
Personally I enjoy scrolling through the aggregators and seeing what people are blogging about, I find interesting stuff frequently.
From a server management perspective, Gemini is just a diet-Web. You buy a domain name (using the web), obtain or rent a server, install a Gemini server, and start serving your site. In order to post to Gemini you either need to self-host, or take advantage of Gemini hosting which is currently on offer by circumlunar.space. No fancy P2P or Blockchain solution here, just a good old client/server model.
I will no doubt keep an eye on Gemini, and serving my blog posts to Gemini should be easy since they are already in markdown. No promises yet though.
I will leave you with the following quote and some interesting links I found.
"When I picture it in my head I think of the early web as more of a library. Over time it has transitioned into a shopping mall." - chris_f (Hacker News comments)
- (www) Project Gemini - The official website for the Gemini project. FAQ is recommended reading. (hn thread)
- (gmi) Project Gemini - The defacto Gemini main page.
- (gmi) Gemini software - The official page on Gemini lists out some clients and servers.
- (gmi) List of services with a gemini mirror - Includes Wikipedia, YouTube and Lobste.rs.
- portal.mozz.us - A Gemini gateway for Web users.
- Castor - A browser for Gemini, Gopher and Finger. Written in Rust and GTK. Still early days, but probably the most normie friendly. (hn thread)
- Android - Barebones Android client.
- GemiNaut - GUI client for Windows users.
- md2gemini - Python library that converts markdown to gemini.
Comments on Hacker News
Comments on reddit r/coding