Microblogging via Gemini: a sketch

Here's a quick sketch for an idea I've been toying with for an ultralight, totally decentralised, self-hosted "microblogging" (in the style of Twitter, Mastodon, Pleroma, whatever) system built around Gemini. Please consider reading it even if you're not remotely into microblogging, because I think it's still a neat example of how Gemini's client certificate and prompted input ideas can be combined to do useful things in a quick and easy way.

So, the sketch:

Replies in Geminispace

Obviously this is not as capable as a "real" microblogging platform, but it should be perfectly usable for those with modest enough ambitions. I freely grant that this is not the most exciting thing that ever hit the internet, in terms of what it actually does. But I'm excited about how tremendously easy Gemini makes stuff like this. The server and client do all the heavy-lifting of authentication via TLS: the server can just pass along the client certificate fingerprint as an (S)CGI variable and all the app itself has to do is check that fingerprint against a whitelist. No cookies, no salting and hashing passwords. Getting input from the user is just a matter of sending status code 10 and a prompt. This interface is usable from within a standard Gemini client, which on the web would require sending a small pile of tags (<html>, <body>, <form>, <input>,...) which would surely be larger than the prompt itself. Grabbing a single line of text from the user is an extremely cheap operation in Gemini. It's easy to do in Gopher, too, but reliably restricting access to the URL for doing it is not, so you have to rely on security-by-obscurity and hope nobody guesses the URL (which travels in the clear as part of a Gopher request). Cute little apps like this can be simple *and* secure with Gemini, which feels genuinely novel. I'm excited to see people start exploring their potential.