A Picture A Day Hugo Edition

The final nail is now in WordPress' coffin.

A Picture A Day has been with us since 2013, and certainly a feature I needed to move from WordPress to Hugo. But Hugo’s main strength lies in generating static web sites, and A Picture A Day has a few dynamic elements to it: It’s updated frequently, has a registration and login feature for private picture, and gives users the option to favorite a picture. Because of this, I realized that Hugo probably wasn’t a good fit for A Picture A Day.

I decided to embed the entire A Picture A Day section in an iframe. That decision opened up a whole new Pandora’s box of troubles. I won’t bother you with the details. Suffice to say that juggling JavaScript and CSS between the main Hugo site and the iframe wasn’t the most enjoyable thing I’ve done lately.

The end result is that, yes, A Picture A Day is now working1, but the back end, JavaScript, and CSS is a monstrous mess. It’s a miracle that it works, even to me, who made it. Actually, there are parts of the code that really shouldn’t work, but they still do. I should probably rewrite the entire thing from scratch, but since everything looks A-OK for you, the user, a re-write is not something I want to dig into right now.

WordPress B-Gone

So what does all this mean in practice? It means that I have now moved everything (important) from the old WordPress site over to Hugo. I have cancelled my JetPack subscription, deleted everything WordPress from the webserver, and deleted all the WordPress-related data from the database (after archiving it, of course). The size of my backups is about a quarter of what they used be to.

After 12 years of reliable service, WordPress is now gone from this site. I really enjoyed using it, but it feels refreshing to try something new. Will I also use Hugo for 12 years before I replace it with something else? I very much doubt that, but not because I’m already growing tired of Hugo - I’m not. I doubt that because I made an effort when migrating to Hugo to store all the content using open, widely used standards like Markdown and JSON. This should make it relatively easy to use something else than Hugo to generate the site if that’s something I want to do at one point in the future.

My original estimate was that migrating from WordPress to Hugo wouldn’t be finished until next summer. That I’m now declaring victory can partly be contributed to Hugo, which is an absolute joy to work with, and partly to my crappy estimation skills. That I’m still being asked to estimate tasks at work is borderline scandalous. That we still live in a world where software projects and estimation is a thing is perhaps actually scandalous.

But I digress, like I often do.

Even though WordPress is now a thing of the past, I’m not done tinkering with the site. Far from it. On my to-do list I’ve got items like adding a feedback and contact form, Webmentions support, and automatic pinging of various SoMe sites when I publish a new post.

WordPress, I wish you all the best for the future. Here’s to many enjoyable and interesting years with Hugo.

  1. The previous iteration of A Picture A Day had two views, a calendar and a list. The calendar view is gone now because I grew tired of trying to get the CSS to work in Chrome. I’m sure it’s possible, I’m just not very good at modern CSS, an I didn’t want to spend any more time trying to fix it now. Maybe another day. ↩︎


This post has no feedback yet.

Do you have any thoughts you want to share? A question, maybe? Or is something in this post just plainly wrong? Then please send an e-mail to vegard at vegard dot net with your input. You can also use any of the other points of contact listed on the About page.


It looks like you're using Google's Chrome browser, which records everything you do on the internet. Personally identifiable and sensitive information about you is then sold to the highest bidder, making you a part of surveillance capitalism.

The Contra Chrome comic explains why this is bad, and why you should use another browser.