Profile Picture

Spencer B.

👋 Hello, name is Spencer. I am a CS graduate, programmer, and Linux enthusiast. Outside of technology, I enjoy learning, playing guitar, and citizen science.

feed | tips | contact

The Gemini Protocol

Calendar icon October 15, 2020

Clock icon 3 min read

Folder icon #gemini #zola #gemtext #blog #protocol in tech


Project Gemini is a new internet protocol that is working to make the internet more private, efficient, and pleasant to use.

The Internet on a Diet

Something I’ve come to lament about the internet is how little of it is actual content. So much of every website is user-tracking JavaScript slowing everything down, popup messages whining about ad-blockers, filler content, and inaccessibly designed UI. The Website Obesity Crisis is a real problem.

Try It

I will continue to tell you about Gemini, but I would also like to show it to you. The first thing to know about accessing Gemini sites is that you can’t without either a Gemini client or a Gemini-to-web proxy. For clients, I like Kristall but if you just want to have a quick look then go to the proxy site.


Now you can do some exploring and check out some pages (all proxy links):


Whereas the internet as we know it has HTML, CSS, and JavaScript, Gemini has a markup language resembling trimmed-down markdown that is called gemtext. This markup format is much more utilitarian and trims pages down to be only content. In gemtext there is no JavaScript bloat, terrible layouts, or ugly colorschemes (unless you set one for yourself, as the end user). From the cheatsheet:


Long lines get wrapped by the client to fit the screen
Short lines *don't* get joined together
Write paragraphs as single long lines
Blank lines are rendered verbatim

You get three levels of heading:

# Heading

## Sub-heading

### Sub-subheading

You get one kind of list and you can't nest them:

* Mercury
* Gemini
* Apollo


My Plans

I always try to keep my websites small in size and simple to navigate so it’s no surprise that I like Gemini. Technology needs more minimalism as I will write about more in the future, and this protocol is a step in the right direction. In an attempt to embrace the protocol, I have a few projects planned.

Conversion of Markdown to Gemtext

Pandoc is software which can convert most things to most other things as far as documents go. You can use it to convert markdown to HTML, reStructuredText to PowerPoint, among many other possibilities. I’ve opened an issue on pandoc to try to get support for conversion to gemtext. Conversion to gemtext from formats which literature is already available in will open the floodgates to more content available via gemini. If this feature request is rejected, I plan to attempt something similar myself.

This Blog

A personal reason I want this conversion capability is so that I can make this blog available through gemini without having to maintain two versions of every post or have protocol-exclusive content. For static sites, Hugo supports custom output formats but Zola does not. Because of this, I may set up a Makefile to convert my articles in markdown to gemtext and then run a gemini server such as agate in the same directory.