My brother Leetaur has been hosting his own Gemini capsule for a long time. Recently, through a confluence of factors, I became interested in hosting one of my own. This happened partially because I've become interested in learning Golang, and writing my own custom Gemini server seemed like a good project to help myself learn the language.
As it turns out, Gemini is such a simple protocol that a custom Gemini server was almost too trivial to implement. This speaks well of the simplicity of the protocol, but by itself this was not nearly enough of a project to get really comfortable with Go. Hence, I'm planning on writing something a bit more substantial with it (more on that below).
I find myself really drawn to Gemini's simplicity. The modern Internet is a full-featured application platform. This certainly has its advantages since it enables a lot of products and services that wouldn't be possible without all the features of HTTP. But it also comes with a lot of downsides, like the privacy and security nightmare that all users of the modern Internet must live with.
It is also hideously COMPLICATED. I do full-stack web development for a living, so I'm about as deep in the bowels of the modern Internet as one can get, working in PHP/Laravel, Python/Django, Javascript, CSS, Vue, etc. The level of complexity required to maintain the modern Internet is completely out of control and means that stuff is breaking all the time. As I said before, it comes with a lot of benefits, but it's also both fragile and exhausting.
Compared to that, the stark minimalism of Gemini is truly a breath of fresh air. It's taking me back to the 90s when some of my family, friends, and I made personal websites on Geocities. CSS technically existed back then, but no one really used it yet. Sites were just simple HTML. Funnily enough, even the simplistic HTML that characterized personal websites of the 90s was more complex than Gemini's markup, but it was on the same order of magnitude, and the character of the sites was very similar: just collections of documents, little repositories of people's personal, quirky humanity. There was a real charm to that early Web which has been lost, and Gemini gives me some nostalgia for that era. Compared to the modern, hyper-corporatized and -commodified Internet that serves as a giant tracking and advertising mechanism, it was much more human and personal.
One thing that feels almost weird about making a Gemini capsule is that there's no design phase. Whenever I make a modern HTTP website, even a relatively minimal one like my personal website Dr.J Studio, a fair amount of time is spent putting together the CSS and tweaking it endlessly to try to get it to look right in as many different browsers, resolutions, and environments as possible. With Gemini, as with the early Web, this sort of design isn't really a thing. The focus is all on the content. In fact, with Gemini, it's largely impossible to even control how the pages look: That's up to whatever client the viewer is using. I think there's actually a lot to be said for this approach, both from an ease of design and a usability perspective.
But enough singing paeans about the virtues of minimalism. Let me talk about what I'll be using my Gemini capsule, Ythraverse, for.
For one thing, I'll be using it for more freeform and stream-of-consciousness writing, like you're reading right now. The content that I post to my other online sites and accounts is more "produced," meaning I've put a lot of effort into shaving off the rough edges and sharing only finished products, or at least fairly advanced betas that are well on their way to becoming finished products. This has merits, but it does mean that my output is comparatively limited and it can be a little exhausting trying to siphon all my creative output through a fine filter. Ythraverse, by contrast, will include lots more rough, in-progress, and fragmentary content, including stuff that might never get finished.
I'll also be using it as sort of a world-building exercise, fleshing out my fictional universes here on the capsule as time permits and ideas occur to me. Foremost among these will be my fantasy world, now named Ythra, the hub for which is linked from the home page, or below if you want to jump straight there:
Secondarily, I'll also be building out my sci-fi universe (which might or might not end up containing my fantasy world), which as of this writing I don't have a name for yet, although maybe by the time I get this capsule published to the Internet I will.
Let me next share the setup that I've put together in part for the purpose of hosting this Gemini capsule:
I ordered a Raspberry Pi 5, specifically a CanaKit starter kit with aluminum case for nice self-cooling action and no need for a fan, so I would have a computer I can leave on all the time, separate from my other systems, for running my Gemini server. I built the simple little desk here and stuck the whole setup in a cozy little corner, completely separate from my main office where I can work on this capsule and other "tinker" type projects in quiet, dim yet warmly lit peace, on a beautiful little Linux board that's a pretty powerful piece of kit for its modest price point.
Let me conclude this inaugural post by discussing the next project I'm going to be putting together on my Pi. It serves the triple purposes of continuing my self-study of Golang, being a project that is best deployed on an always-on server, and evokes the simpler, nostalgic times of personal computing and early Web from my adolescence: I'm going to take a stab at developing a MUD. I'm calling it Vanquish Vanguard Online or VVO, as a complement to my custom-made tabletop roleplaying system called Vanquish Vanguard (VanVan for short). VVO will take place in the same world as VanVan (Ythra), also sharing in common, at least to a limited extent, races, classes, and monsters from the tabletop RPG, as well as the lore and setting elements. It's doubtful how many of the mechanics will transfer over given the different gameplay requirements of a tabletop game vs. a MUD, but at a minimum they will definitely share lore and setting.
But I should clarify something about VVO. Although I called it a MUD just now, I don't think that terminology is precisely correct, since MUDs are more akin to multiplayer text-based adventure games like Zork, whereas VVO will have grid-based maps (which clients will be able to render either with simple tile-based graphics or ASCII art) and roguelike gameplay -- much more primitive than a modern MMO, but not exactly a MUD. I'm not sure if there's a precise term for this kind of game, but maybe "multiplayer roguelite" fits?
Regardless, I intend for the server code to be sufficiently decoupled from clients that different clients can implement their own UIs (somewhat akin to different Gemini clients, perhaps), where (as described) one might choose to render the game world with text while another uses simple tile sprites. Whether this project will get anywhere, who knows, but I'm excited to give it a try, and I'll post any significant updates here as I go.
I reckon that will do for this inaugural post. Dr.J signing off, and may all your hits be crits.