Gemini

I'm not entirely sure what to say about Gemini, the new, intentionally limited internet protocol. Except that it feels right, it feels like a system whose time has come. It's the confluence and culmination of a lot of movements that have been swirling around the internet as of late.

Let's start from the beginning. Gemini is intentionally bare-bones. According to their homepage, the gemini project is meant to be halfway between gopher and the web. Thus it was named after a short-lived mid-point space program.

You get one filetype, which is a plain-text file with a .gmi or .gemini extension. A Gemini file can have five types of markup in it:

  1. Headings of levels 1 through 3, using Markdown-style octothorpes: # to ###
  2. Quotes, also using a markdown-style greater-than: >
  3. Unordered lists, with an asterisk before each line *
  4. Fenced pre-formatted blocks, often used for code, or ASCII-art
  5. Links in a very specific format.

So this is sub-markdown, no italics, no bold.

So why is it cool?

The Web Is Too Much

When I started my career as a software developer it was fairly easy to stand up a web server:

  1. Write some HTML
  2. Write some CSS
  3. Publish it to your server via FTP

But the web has changed. For the better in many ways, but standing up a website now involves choosing a server framework, choosing a front-end framework, graphic design, and a lot of coding. This isn't bad, but sometimes it's too much. Sometimes what you want to convey doesn't need all that.

The web is awesome. It's what pays for my life, it's what lets us stay in touch during a pandemic. But web development has gotten out of hand. While it's still possible to stand up a simple web server with nothing but HTML and CSS, JavaScript has taken over the web, and websites are now full-on apps.

And this isn't a bad thing! (Have I made it clear that I don't hate the web?) But sometimes it's more than you need. Sometimes all you need is a way to communicate via text. You don't need parallax-scrolling backgrounds or single-page apps. The system that hosts this blog, Write.as, is a step in that direction. I write simple markdown and defined some CSS. You get to read what I wrote with minimal software getting in the middle. It's easy to use a “reader” mode to grab my text and read it in Instapaper or Pocket or even download this entire blog as an ebook, if that's your idea of a good time.

But even this very page might be considered overkill. When you loaded this page your request hit the write.as servers (updating my analytics on your referrer and updating my stats on views), the snap.as servers for images (a few megabytes of those), grabbed web fonts from a different server...it's a lot of calls. And it could be simpler. It could be you retrieving a text file and reading it.

Gemini is...that. It's a privacy focused, simplified method of transmitting just text from person to person. There's no user agent string to record and collate, no tracking, no cookies.

Writing Gemini pages is also simple. Plain text with five types of markup. If you like code highlighting and IDEs you can use those. I created a plugin for the Mac-based Nova editor that does syntax highlighting for Gemini files. It took me a couple of hours, and most of that was reading documentation.

And since it's so simple you can view pages in whatever way works for you. Web browsers have become as complex as operating systems (like, say Chrome, that often is an operating system), but because Gemini is simple, it's simple to create a Gemini browser, meaning you can find one that does things your way. There are full GUI browsers for Gemini like Lagrange that do all the fun font treatments you want and style up the five types of markup.

The Lagrange gemini browser showing my Gemini “Capsule”

There are terminal-based browsers like Amfora that let you do the same thing from the command line.

Amfora showing the same page in a terminal

Since there's no JavaScript, no CSS, you can get a full-featured terminal client that does everything you need. Load times are insanely fast, and Gemini server software is lightweight, and collects no information about the user. There's no user agent string to record and collate, no tracking, no cookies.

And yes, you can view Gemini pages on the web. The Gemini Portal shows you bare-bones (read: ugly) versions of Gemini sites. Here's My “Capsule” as seen through the portal.

So, do we need Gemini? Maybe not. But I'm glad it exists. Gemini embodies the spirit of the “unix mindset”: do one thing well.

I’m publishing this as part of 100 Days To Offload. You can join in yourself by visiting 100 Days To Offload.

#100DaysToOffload 52/100

Thoughts? Tell me about them!
on Mastodon | on Twitter