Getting to Know the Gemini Protocol and Gemtext
A few weeks ago I stumbled on the Gemini Protocol. I feel as if I've been living under a rock for the last few years but somehow I hadn't heard of it before.
In an oversimplified nutshell you can think of the Gemini Protocol as a minimalistic version of HTTP. The protocol can be used to transfer any content but most of the content is served in Gemtext format instead of HTML. Gemtext is roughly a minimalistic version of Markdown. I'm already a huge fan of Markdown and I felt right at home with Gemtext.
I thought that the best way to get to know Gemini and Gemtext is to just start using it. So I did. I converted this blog content to Gemtext and I started to create my own static website generator that I could use to create both the HTML and Gemtext versions from the same content. It's still a work in progress but it already works.
I decided to call my new static site generator Wrote.
It's very much an early alpha release and it's still missing documentation and everything, but it's shaping up quite well. In addition to working with Gemtext, I wanted to try ouy a few new (to me) things as well. Version control is handled By Sourcehut instead of GitHub which I've usuaully used, and I've written the generator in PHP following functional programming principles.
Yes, you read that right, functional programming in PHP. It's a bit weird and there's definitely some non-functional parts in my code, but there's a lot I like in this approach. And since this is first and foremost a learning project, I thought why not. I'm still learning and trying to wrap my head around some functional principles but at least now I think I know what all the fuss is about and why people like this approach.
I'm really excited about this sideproject and Gemini in general. I still need to get my thoughts together and write a longer post about all of this small internet stuff.