Back to the web!


For almost a year I posted my few retro projects on a Gemini Capsule. It has been interesting and fun, but it was never quite as easy as I would like, so I have moved these posts back to the boring old web. Here is some insight into my choices and why I have moved back to the web.

Gemini

My original goal was to have an easy place to write up and record the details on some retro projects that I have undertaken.

After being introduced to Gemini it looked like a great candidate. Write articles in a lightweight markup called gemtext, place them on a gemini server and bam, your posts are online. Finding a hosting service was also easy and free with flounder!. So what went wrong?

I don't think anything really went wrong, it was still fun and interesting, but it wasn't as simple as I would've liked...

Hosting

Flounder! is great. Super super easy to use. You can edit online or upload files directly from the website. They even also have FTP so you can just sync up new files. The last approach was what I went for. I had a repository where I kept a copy of my site. I would update it, check the changes locally by running a local Agate Gemini server, and then sync the changes by FTP to flounder. I probably even could have got it all automated with some GitHub actions, but it remained just a few too many steps each time I wanted to make a post or update. I also felt like I had to maintain and build tools and helpers, when really I just wanted to make a post.

Clients

The Gemini protocol of course isn't support by any standard web browser. You have to install a separate Gemini client. I used the excellent Lagrange, which has builds for Windows, MacOS, Linux and Android. Being dedicated just to Gemini it is super fast and also easy to use, but it's yet another piece of software you need. Many Gemini posts also refer to web content so having to flip back and forward was also a bit clunky at times.

The Gemini Conclusion

So even though Gemini was fun, I guess I wanted to be able to just make a post, commit it to my repository and then it would be live. I also wanted to have content that was "just part of the web". The other reason is curiosity. That's what got me started with Gemini and after a bit of a run with it, it was time to try something new. I wanted to see if I could make publishing on the web even easier than Gemini was.

The Web

So what I didn't want to do, was suddenly have a super complex website, and installation to maintain! In the past I've had some Wordpress sites, a Gallery 3 site, and some other sites, but I really didn't want to go back to all of that. Enter the static site generator (SSG).

The Choice

The big advantage of a static site generator is right there in the name. There is no database or fancy hosting. A static site is generated for some input data, and it needs nothing more than a basic web server. You also do not need to write HTML. The HTML is generated from the input data which can be a number of other formats. In fact you can use Markdown, which is only slightly more heavyweight than gemtext. The generator will create all the HTML pages you need.

Time to google "best static site generators".

Jekyll is the go to static site generator. I have even used it before. It's also directly supported by GitHub Pages, meaning I would also have a place to host the site for free! But I didn't go for this set up in the end for the following reasons:

  • Jekyll is based on Ruby, yet another language for me to install and learn
  • Personal accounts using GitHub pages must publish the public repository of the site. Not a super deal breaker, but I couldn't understand why I should have to do that.

After discounting Jekyll, I found Pelican. It looked great and is based on Python, which I use a lot! So no new language to learn, win! I chose to go with markdown posts and pages, so now all I need to do is make a simple markdown post and it will end up as a nice looking HTML page. All static site generators use themes, and after some searching I found Pneumatic. It's a simple theme without any JavaScript, so my posts will remain simple and lightweight as they were with Gemini.

I could have hosted a Pelican based site on GitHub pages, but after some search I discovered that GitLab also had a pages feature and GitLab has the following advantages:

  • Your repository can be private
  • GitLab has a build it CI tool so you can deploy direct from your repository
  • They already had a sample Pelican project you can fork to get started!
  • You can have your own custom domain
  • And all this is FREE! * Within very reasonable limits, I'll never break

The Decision

So the decision was made. I now have a private GitLab repository. It uses Pelican, with the GitLab Pages feature, which is deployed via the GitLab CI on every commit. Now to make a post, I make a new markdown file, commit it and about one minute later it's live on the web. Super easy.

This is my solution for now which I'm super happy with and would recommend, but let's just see where I am in a year.