HTML Vs Gemini & My Workflow


Who is this for?

I can't be the only one that wanted to make a webpage by hand, but also looked at the old constraints imposed by the likes of Angelfire and Geocities as something of a personal challenge rather than a thing to feel chained down by. Fortunately, both because our benevolent overlord included an on-Tilde Gemini server and because web proxies exist in case one wants to share Gemini material with friends who don't want to grab a browser, we have a way of maximizing that self-imposed ten megabytes of space.

What this is not.

This is not a step-by-step tutorial. I am not going to make recommendations for web proxies or demand anyone else do things like I do. This is mostly because my own output is fairly spotty and regularity is what one should aim for in content creation of whatever form. Also, and probably importantly, any automation I might employ would be you to the server, rather than demand the server perform tasks on its own and thus take up resources. Yes, Gemini is a tiny TINY protocol, and serving static web pages is very non-taxing. However, and this is more out of courtesy than any real knowledge or care of the server's limits, 'you' are one person amongst many using what is effectively something someone's had going as a hobby. No need to be rude and hog resources.

Then again that mindset is from an era a quarter century past. I doubt even with all of us going tinkermonkey we could make the server do anything more than tick up a tiny bit. Still, I prefer to operate under the idea of 'take only what you can get by on rather than assume you can grab everything you want.'


OK, so the title is a bit clickbait. That said, I shouldn't make assumptions about the readers. Ergo, explanations are in order.


Everyone here knows what a web page is. Due both to wanting to do everything by hand and to stick to something resembling the late 90's 'feel' of things? I've decided to stick with CSS that basically is me taking the main Ctrl-C site CSS and making a few very minor tweaks to suit aesthetics, which boils down to a couple of color tweaks as pure #000000 black isn't actually the best background in my experience. It may be better for some and worse for others though so Your Mileage May Vary.

Anyway. I have a few HTML pages that will be big 'Here is Me On The Web' type largely static things. Most of my content is text anyway, so having to spin up a ton of HTML pages is, in my mind, wasteful when another solution exists.


A protocol made by Solderpunk and is, as far as I'm aware, considered 'complete' much to the annoyance of the community that helped hack it together, since now that it's largely done there isn't anything to tinker with on the back end with the protocol itself. It is very much of the mantra of 'One Request by The Client. One Response from The Server.' Some clients like Lagrange will automate things like auto fetch and expand image links, but baked into the protocol itself is this idea that 'the server isn't going to just completely dump a lot of stuff on you nor will it do anything if 'you' the client don't explicitly ask it to.'

This makes it terrible for a lot of things as there are no provisions for streaming content, security past the initial TLS layer, and there are no inbuilt password or login systems beyond certs that might or might not expire and most certainly is (in my experience,) a pain in the meatspace to have on more than one device. These weaknesses really don't affect my use-case, though, and Gemini as a 'works alongside' protocol complements HTML well for my needs.

Gemini: He Who Walks Beside

If you do  lot of text, like me, and want to keep both server space and bandwidth use low Gemini is honestly far better than HTML, but perhaps not nearly as light as one might think. Fine, it's all very basic markdown files, but there's also the TLS encryption that 'bloats' everything when compared to something like Gopher. I could have used Gopher, it is a very mature protocol that was actually created with terminal use in mind (and as i have learned, terminals don't auto-wrap text on their own.) I simply have never felt right about how Gopher pages are created. No real malice or 'snobbery.' Just 'This has never agreed with me.'

Anyway, it's quite simple:

Have HTML pages as anchor points for wider distribution, and Gemini pages to house a majority of the content that is either accessible with dedicated browsers, plugins, or proxies. That's, quite literally, it. No magic sauce other than the fact I'd managed to shove several novels worth of fiction plus two years of blogging, plus a few other things, into a couple of megabytes of space, where four pages of HTML, a CSS file, and a few images take twice that space.

I suppose it's cheating to include the images in one and not the other, but this is where HTML shines well and above Gemini. I can dictate how those images are presented vs relying on the client to figure out what to do with things. Mind you I adore Gemini for leaving everything to the client for style. That is what makes it supremely suited for accessibility as the protocol doesn't care how the client renders; be it braille, audio, or whatever so long as it is rendered.

So, that's it?

Pretty much, but not quite! HTML pages with Gemini links to pad things out. Both are updated through an SFTP client from my computer to the server. Just make sure you have both home directories on your local machine in a folder together so you can just hit a button and everything updates all at the same time with minimal hassle.

Where things get interesting is that simple 'here shove updates to the server via SFTP client' can allow 'you' to automate things, such as having a weather report page, or a Twitter-esque microblogging page, or any of a number of things and so long as you keep your update times reasonable rather than spam the server witk several hundred requests per minute and it should be OK to add in something like automated reports from a local weather station, or something that is an analog to ye olde internet coffee pot camera of old. Keep it to updating a specific image instead of streaming video to the server for storage and again it shouldn't be too taxing.

Next Steps.

For me? My next steps are finding a way to automatically translate my latest Gemini site updates to HTML so that, for example, the latest blog entries can be directly read without a proxy, or have the latest chapter of what I'm working on readable.

I'm just fumbling about, but given I was there in the 90's this scratches a very old itch I've had and I thoroughly enjoy that I'm doing it all by hand rather than a lot of auto-generated content. So if I do manage to automate a few things I probably won't go much past automatic transcription of Gemini to HTML for 'latest entries' that get replaced when they're updated.

If you have other ideas on how to combine the two protocols, I'd be interested to hear about it, and I'm pretty sure I'm not the