yet another static cms
Posted on July 19, 2022 in tech • 2 min read
In my previous post I wrote my experience with Jekyll, a static CMS. Now I am big fan of static CMS tools.
I was not happy with a few things on Jekyll and the overall design of my blog. I had built multiple microsites, each running a separate Jekyll instance and integrated all of them on one page, well somehow. In a few months I realised it's extremely difficult to maintain multiple microsites and not to mention the additional load on the tiny (1 core, 128 MB) VPS where all of this was running.
Spent the last couple of months researching some other CMS platforms. I liked WriteFreely the most but it didn't fit my resource needs and didn't have the required automation opportunities. Then I came across Pelican CMS. Pelican is a python based static site generator that requires no database or server-side logic. What more does a python freak need 😁.
The biggest advantage of Pelican was nothing other than the webserver (nginx in my case) needs to run on the VPS to serve webpages. I need to run few commands to generate the static pages from markdown text and point nginx to the content directory. Pages and posts are organised the way I want it to display on the blog.
I was a bit sceptical on the UI UX, but Pelican offers great themes and plugins, infact I love this new revamped look of my blog.
After setting up Pelican on VPS, I had to tweak a few settings on my custom git based CI/CD peipleline. It now does the following.
- Sync content on remote VPS with local system invoking the pipeline.
- Remotely run scripts on the VPS to generate new static pages.
- Deploy on a test instance on VPS to validate the new content.
- Upon validation deploy to prod.
This CI/CD pipeline can be trigged from any device capable of running git and python. This works great for me as I can run it from my phone (termux), Chromebook, laptop or desktop. Added advantage is content is synced across all devices automatically.
Truly at a stage of home grown cloud based collaborative editing ! Write anywhere, pickup from any device.
It was fun working in Pelican CMS, and hope you like the new UI of my blog !