Recently I stumbled upon Gemini, a web protocol with a growing community, and decided to share it with you. In this article I will try to present it so as you can try it. Here’s the outline:
- What is Gemini
- Browsing the Gemini web
- What's in Gemini?
What is Gemini
Gemini is a web protocol, that is, a convention to which two computers, a server and a client, can communicate. Gemini is a text based protocol, meaning that the data sent by the parts is human readable, it was built with privacy and simplicity in mind, as per Project Gemini FAQ:
Gemini is intended to be simple, but not necessarily as simple as possible. Instead, the design strives to maximise its “power to weight ratio”, while keeping its weight within acceptable limits. Gemini is also intended to be very privacy conscious, to be difficult to extend in the future (so that it will *stay* simple and privacy conscious), and to be compatible with a “do it yourself” computing ethos.
The Project Gemini started in 2019, originally by solderpunk, who is currently its Benevolent Dictator, although, the protocol is not a work of a single person, many have contributed to important parts. In fact, the spec was finished by the contributor Sean Conner, which was granted some decision making authority.
The protocol enforces privacy by its design, some perks are the mandatory use of TLS, no cookies and no tracking.
In terms of simplicity, the native content type, “gemtext”, is meant to be loaded in a single request, therefore there are no inline images, no iFrames, fonts, scripts or anything else. Here’s an exmple:
This gemtext markup features a subset of markdown, and some other things:
Lines starting with #, ##, ### are headings, just like h1, h2 and h3 tags in HTML, there is no bold or italics. List are done starting lines with a *, all lists are bullet lists, and only one level exists. Quotes are inserted using >. Links cannot be in-lined, a link is made by starting a line with =>, e.g.:
=> docs The documentation page
Where “The documentation page” is the link description. Lastly there is preformatted text with ```, everything inside these backticks is displayed as is. This markup is so simple that it can be read by a human without any transformation.
Browsing the Gemini web
There are already many software choices for you, so far, they range from terminal clients to chrome extensions. I'll show a few browsers:
Lagrange is a graphical browser, just like Firefox or Chrome.
It has all features you would want from a browser:
Bookmarks, search bar, table of contents sidebar, plays audio, opens images, multiple tabs, custom colors and more.
You can find this browser in the web and also on gemini: gemini://skyjake.fi/lagrange/
astro (written by me):
Astro is a terminal browser, still under development, it currently features colors, following links, going back a page, user input and simple bookmarks.
A feature I like to point out is that Astro is written in POSIX shell, so all you need is a modern terminal emulator, in the picture I used urxvt.
You can find the source code in my github repo.
Deedum (for android):
I did not try this one, but it has over 500 downloads and an overall score of 4.6, definitely worth a try.
Elaho (for iOS):
What's in Gemini?
According to geminispace.info, at this time of writing has: 106,046 pages
and 975 domains.
Many developers also publish their articles on gemini, this makes this web great for finding resources about programming, a nice way to find is through spacewalk (gemini://rawtext.club:1965/~sloum/spacewalk.gm), a page that collects updates from all geminispace in a feed:
Some interesting points I found about it is its simplicity: Gemini is much simpler than the web we are used to, its respect to privacy, and focus on content. Gemini is growing organically and is a great opportunity for setting up a blog and contributing to the community.
If you'd like to publish on gemini, there are some hosting platforms that can help you:
Or do it yourself using a server, this is not complicated and there are great libraries that will help you build a server. The list of software previously said contains some nice options.