First Pelican impressions

One of the reasons why I never became a successful Web Master is that I'm a perfectionist. I never feel ready to publish new content, let alone an entire new website. Usually there's nothing really wrong with said content or website. It might simply be that I know I cut a corner somewhere, that could have coded or written something in a better way. Such thoughts keep haunting me, and the end result is that I either keep perfecting things or throw in the towel.

At the moment I'm working on two web design projects. There's this website, for which I'm using Pelican, and I've also started working on a much overdue overhaul of my anti-junk mail website. Most of the websites I've built were either hand-coded using PHP or used Drupal. For the new projects I want to keep things simple by using a static site generator.

I've been playing with Pelican on and off for a few weeks and my conclusion so far is that Pelican is actually not that simple. I haven't yet found a nice environment to do my coding, there's a lot of information to take in, and the out-of-the-box experience isn't all that great. Of course, that's partially because of my wicked belief that anything that's not completely perfect is rubbish. Don't let my observations put you off. Still, I think it might be useful to document my first impressions…

Coding environment

I always develop websites locally and all my sites live in my /var/www/html directory. For a long time I've heard people say that real developers use containers, and I'm sensitive to such arguments. Still, my set-up worked for me. There's the "Worked fine in dev" issue, but I've rarely encountered it.

I finally saw the light when I reviewed Fedora Silverblue for DistroWatch. I've been running Fedora Workstation for many years, and I'm very happy with it. After playing with Silverblue for a few weeks, though, I was completely sold. I really like the idea of having a lean core operating system, atomic upgrades and the option to roll back changes. The one thing that's holding me back from switching to Siverblue is that I struggle with containers. I just don't get on with Docker, and I don't feel Podman and Buildah are quite ready – at least in the sense that it's impossible to find good documentation on how to run, say, a Drupal website with Apache, MariaDB and Drush.

For this website I've settled on Toolbox. Toolbox doesn't give you the option to use a custom operating system; it just uses whatever Fedora version you're using. That's not a problem for Pelican projects, as I only upload plain HTML pages. However, if you do something more fancy you have the same "Worked fine in dev" situation you have when you run a web server locally.

The main thing I like about Toolbox is that I can install stuff using pip without it poluting my main Fedora install. It's getting me closer to the lauded container-based workflows. There are a few things that are awkward though. For starters, the /var/www/html directory is out. It doesn't exist in a Toolbox container. Instead, I'm now using a sites directory in my home folder. It feels wrong.

More of a worry is that Toolbox is a work in progress. I often run into "failed to download metadata" errors when I run dnf commands, and when I first upgraded the Silverblue install all my Toolbox containers vanished. I did that upgrade not long after Fedora 30 had come out, and I'm not sure if that is still an issue. In any case, it's not very reassuring.

Pelican complexity

Pelican is very configurable, and with that comes complexity and quite a steep learning curve. I underestimated how much time it would take to become familiar with the system. Luckily, the documentation is quite good, and there's plenty of information on other websites as well.

I should also add that learning any new system is complicated. I've had a fair number of battles with Drupal, for instance. Still, if you want to customise the functionality and look of your Pelican website then you're going to have to study the documentation, and you'll have to overcome challenges.

The out-of-the-box experience

My very first impression of Pelican wasn't great. The default theme, named notmyidea, dates back to 2009 and doesn't appear to get much love. And, finding another theme isn't straight forward either. I first tried various themes listed on pelicanthemes.com. Most of the themes are no longer maintained, and few of them have documentation to get you started. I had some succes with a theme named Pelican HSS but ultimately it didn't really do it for me.

I next tried the Elegant theme. The theme is very customisable and I learned quite a bit while exploring options. It was time-consuming, in particular because the documentation is in a bit of a state. They're using a blog for the documentation, which is obviously not the most suitable format. I also wanted to tweak the layout beyond what's possible with CSS, which left me with that horrible "this is never going to be perfect" feeling.

And so I decided to bite the bullet and try the included simple theme as the basis for a new theme. It was only then that I started to enjoy Pelican. I can tweak all the template files and write the CSS from scratch. Within a few hours I had the skeleton of a website that looks and functions as I had in mind while hunting for themes. It's fairly obvious how everything fits together, and the theming is a lot of fun. I think I'll stick with Pelican for a while.