I first heard about Project Gemini a few months ago, and thought it was neat, but never went any further than that. Since then, the "modern web" has worn me down. I'm sick of bloated websites loading megabyte upon megabyte of code and purposeless images just to render a few paragraphs of text. I'm fed up of being intrusively tracked for the privilege of wasting bandwidth and CPU-seconds to read some crappy article.
 - Project Gemini
 - The Website Obesity Crisis
 - James Mickens: To Wash it All Away
 - What Do You Actually Agree To When You Accept All Cookies
 - The truth about cookies
Gemini is the Web that I want. Heavy on content, light on bloat. Of course it's possible to accomplish this with HTTP, HTML, CSS, and maybe a dash of JS. There are some examples of this, such as 10 KB Club and 250KB Club. There are even some mainstream sites that have lighter-weight options, like CNN and NPR. But the overwhelming preponderance of evidence would seem to suggest that given the option, people choose to create bloated sites; I'm not going to analyze their motives here - others have already done that.
 - 10 KB Club
 - 250KB Club
 - The "lite" version of CNN
 - Text-only NPR
Some of my readers may not be familiar with Gemini.  explains it well, but my own short explanation is below.
HTTP (Hyper Text Transfer Protocol), possibly with an 'S' on the end (meaning "Secure"), is a protocol for transferring data (usually web pages) from one computer to another. This is the "http://" that you have probably typed in front of a URL before. There are many possible protocols that can be used here - what you're actually typing is an IETF RFC3986 URI. In today's world though, most of them except for "http" (and "https") have gone away. Gemini (the protocol) replaces HTTP. To visit a Gemini site, you will enter a URI beginning with "gemini://". The point of the Gemini protocol is to be extremely simple - HTTP(S) is an old protocol with many years of additions and extensions tacked on over the years.
 - Uniform Resource Identifier (URI): Generic Syntax
Obviously Gemini and Gemtext aren't going to replace HTTP and HTML. They aren't intended to. However, they are a fun way to move against the grain.
So how does one use Gemini? Many programs have been written to both serve and access Gemini content. Personally, I like Lagrange, and would recommend it as a good place to start. If you don't want to bother downloading a program, there are also web proxies, such as  available; you may have noticed that Gemini links in the HTTP version of this site are proxied through  automatically.
 - Gemini Software
 - Lagrange
 - Gemini Portal
I have rewritten the entire site to be Gemini-first. All of the pages are now written in Gemtext. The HTTP/HTML version of the site is mirrored from the Gemtext version. Nevertheless, users of the HTTP/HTML version of the site will notice several improvements:
 - highlight.js
The site is still hosted using OpenBSD Amsterdam . relayd(8) is used to handle incoming HTTP, HTTPS, and Gemini traffic, and to SSL (via letsencrypt). I used a combination of  and  to set this up. Web traffic is still served using httpd(8), and Gemini traffic is served using vger. Gemtext is converted to HTML, and feeds are generated using my own new project, gemdown. The site is built using a simple TCL script.
 - OpenBSD Amsterdam
 - relayd(8)
 - Let's Encrypt on OpenBSD 6.7
 - OpenBSD webserver with httpd, relayd and TLS
 - httpd(8)
 - vger
 - gemdown
 - cdaniels.net build script
A few old pages that weren't indexed directly have been deleted. Content from those pages is still available in the source repo. The last commit hash before the rewrite was 02b5ded5e9878cebb864665a13f89e8f0dd91944.
 - cdaniels.net source repo
Copyright 2021 Charles Daniels.
This work is licensed under CC-BY-SA 4.0