Matt and I have been creating artwork for his music for almost 12 years now. It’s a collaboration I’m immensely proud of, and one that offers a welcome change of scene from my day-to-day job of designing and building websites. Morpho , released on Sound Records in November last year, is our most recent project. Our 12th vinyl release and the 1st Matt is releasing using his last name, Benyayer,…
Last week I received an email from a Practical Hugo student who was struggling to understand my instructions in one of the episodes. As a result, code was added in the wrong place, which subsequently broke their template. It appears the confusion came from a misunderstanding between the terms element and tag . An easy mistake to make, given we often talk about these two constructs as if they’re…
For simple Hugo sites, a single configuration file is usually all you’ll need. However, for bigger projects, with large configurations, it’s often a good idea to split your hugo.toml file into multiple files using the configuration directory . The config directory is helpful for managing how your config behaves across different environments, as well as for organising multilingual menus, params,…
There are times when you might wish to insert content from one page into the content of another. This could be any type of content really, but to give you a better idea of what I mean by this, take the project I’m currently working on as an example. In this project, my client wants to be able to insert content from product pages intermittently into the content of blog posts. Here’s how this…
I spent the final day of 2025 skiing with friends in Leogang, Austria. And what a day we’ve had. Fresh snow, clear blue skies, empty slopes and the best of company. I’m not sure I’ve ever skied at this time of year or celebrated NYE abroad, so it’s been a real treat and the perfect way to wrap up a relatively decent year. Using the same format as usual , here are my reflections on the past 12…
If your site uses an old version of Hugo and you’re happy with the features it offers, then you can happily stick with it as long as you like. Hugo will continue to work without any issues. This is one of the many great things about working with Hugo. There’s no real need to upgrade your version, that is, unless you want to. If you do want the latest features, however, then you’ll need to upgrade…
Native lazy loading is well supported across all major browsers and has been since December 2023. This means there’s no longer any need to use third-party JavaScript plugins to defer non-critical resources from loading until they reach the viewport. Just slap the loading="lazy" attribute onto images and iframes, and your browser will take care of the rest. < img loading = 'lazy' src = 'image.jpg'…
There are various ways to create menus in Hugo . But, in most cases, Cloudcannon won’t automatically detect these menus and make them editable in its interface. I can understand why this decision may have been made. Cloudcannon supports a bunch of static site generators (not just Hugo), each, I assume, with its own opinions on how menus should function. It’s my guess that creating a “one size fits…
I assume not everyone wants to read everything I write about (I certainly wouldn’t blame you for that). Personally, whenever I subscribe to someones content via RSS, it’s often because I’m interested in a specific topic they write about. With this in mind, I’ve listed feeds for each topic I write about over on my feeds page. So you now have the option of only subscribing to the topics that…
The 9th April is CSS Naked Day which is all about promoting web standards . The idea is that for one whole international day each year, anyone who wants to get involved has the chance to strip their websites of CSS, show off their semantic <body> and lay bare to all their proper use of HTML, semantic markup and good hierarchy structure. It’s an event that’s been on my radar for years, but I must…
Friends and family often ask if I still do my weekly sessions, even though I‘m feeling good these days and thankfully have for a while. I still go, I tell them, but now every other week, instead of every week. Often that comes as a surprise and is usual met with a follow up question. Something along the lines of; “But you’re feeling fine now right, how comes you still go?” Until now, I’ve…
Cloudcannon’s Rich Text Editor, like most rich text editors, allows you to format – or ”markup” – your content via the WYSIWYG toolbar , found at the top of the Rich Text Editor . The various formatting options found in the toolbar can be enabled, disable, and configured from inside your cloudcannon.config.yml file. All you need to do is add your options under the _editables key. By default, the…
Airtable is a fantastic tool. I’ve used it for years, mainly to bookmark useful design and development resources, good typefaces and websites I like. But, the more I use Obsidian , the more appreciate the importance of Steph’s file over app philosophy and the fast, resilient, secure nature of local-first software . Don’t get me wrong, cloud apps still have their place in my workflow. When there’s…
I’ve written before about how space, time and sleep, can help give you a fresh perspective on things . In a similar vein, today I want to talk about how silence and meditation can be used as an effective tool for solving problems and making progress. Take this morning, for example. As per usual, I sat down to meditate for a few quiet minutes. No plan, no guidance and zero expectations about what…
For a long time, building pages from remote data sources felt like one of those killer features that was missing from Hugo 1 . A hard pill to swallow, made worst by the fact that the Eleventy community have had this feature, as standard, from day one. Lucky for us, all this changed with the release of Content Adapters in Hugo 0.126.0 . Now, with a few lines of code in a go template (.gotmpl), it’s…
There’s nothing worse than finishing work, feeling tired, then having to figure out what to cook for dinner. It’s a real pain and often leads to bad decisions. I’ve written before about how I use meal prepping to stay healthy throughout the week. In a similar vein, today I want to talk about how I go about planning meals, so we never have to think too hard about what to cook during the week. The…
Creating semantic headings can be tricky business. This is especially true when you find the need to render all the content of your pages on a list page (a page that lists pages). Often we only see page titles and summaries on a list page, which usually cause little to no issue. But, as soon as you throw a few h2’s and h3’s into the mix, correct heading heirachy tends to fly straight out the…
It was interesting to read about the evolution of Robb’s /now page . How he’s moving away from a transient, impersonal page of data towards something more meaningful. On a related note, I completely agree with Chris’ thoughts on slash pages . I found myself nodding along in agreement, to these few lines in particular: “I think it makes more sense to me to write about what I carry around right now…
Trying to get into the whole food prep thing. The goal is to always have healthy options to pull out of the fridge throughout the week. I tend make unhealthy decisions when I’m short on time and there’s nothing convenient to eat, so preparing a few versatile things helps to solve this problem. For the last couple of weeks we’ve made a bunch of spreads and dips on a Sunday afternoon. Usually a…
Thought I’d give the Blog Questions Challenge a go, having seen Kev , Luke and Manu share theirs. I’m also not on Bear Blog, so I’m using the questions Kev adapted from Ava’s original ones for my own. Why did you start blogging in the first place? Around 2017, I started taking notes on the design and web dev stuff I was learning. Mostly so I had something to refer back to when I forgot what I’d…
Mornings are generally dark and gloomy, here in the UK, at this time of year. It’s never easy getting up and out for a run. In recent years, I’ve become somewhat of a fair-weather runner. If there’s any chance of rain, I tend to sack it off altogether, roll out my mat and do some yoga instead. This morning, rain seemed inevitable. Overcast, low dark clouds, all the usual signs. It was only a…
With another year almost over, I’ve spent these final few days looking back at the past 12 months. Here are some of those reflections in writing - what went well, what didn’t go so well and what I learnt in the year 2024. For those interested in how I approach these end of year reflections, check out a year in review . Perhaps this will give you some inspiration to start writing your own, if you…
As part of the Hugo v0.118.0 release, the Hugo team made some improvements to both the hugo new site and hugo new theme commands. The big change, as Joe has pointed out , is that hugo new theme command now creates a functional theme with sample content. The new theme demonstrates some of the typical features of Hugo, so it’s a great way to learn how Hugo works and a helpful starting point for…
“Slash pages” is a great phrase for root-level pages usually found on personal websites. I’m into it. Well done to Caleb Hearth and Shellsharks for coining the phrase. Also Brandon for building slashpages.net , which lists the most common slash pages and provides a clear definition: Slash pages are common pages you can add to your website, usually with a standard, root-level slug like /now,…
It’s encouraging to see folks declaring their work AI-free or human-generated , in some form or another. Jared White has pledged that everything his web design studio creates will be 100% AI-free going forward: Our pledge to you in 2024 and beyond: 100% AI-free productions. All the solutions we provide are of the finest human-grade quality . We’re not afraid of progress ! But we’re not buying the…
Last week I upgraded Hugo from v0.115.0 to v0.126.1 . With all the Hugo sites I manage (for myself and clients), I was half expecting a few breaking changes to fix as a result of the update. But this is Hugo we’re talking about here and I’ve been pleasantly surprised in the past at how few issues you tend to run into when upgrading versions. So I was feeling somewhat confident this time round.…
Since formalising my CSS boilerplate , I’ve come to realise that many CSS problems that I’d typically solved with unique component based styles (using BEM or similar), can actually be solved using a handful of reusable styles. For this I have CUBE CSS and techniques from Every Layout to thank. With this in mind, last week I set out to rewrite the CSS on my personal site with the aim of cleaning up…
In case you missed it, March 16th 2024 was Digital Clean Up Day , a global initiative aimed at raising awareness about digital pollution, encouraging individuals and companies to declutter and organise their online presence. So why is this important and what’s in it for us? The impact of digital clutter Notifications piling up, a disorganised desktop, an overflowing inbox, hundreds of open browser…
In Design Patterns that Encourage Junk Data , Michelle talks about the huge amount of data we accumulate and the impact storing it in “the cloud” is having on the environment. Frighteningly most of that data is junk. As Michelle writes: It’s estimated that up to 88% of the data stored in the cloud is ROT (Redundant, Obsolete or Trivial) data, or “dark data” : data collected by companies in the…
I often find myself updating posts I’ve previously published. Usually this happens when I re-read what I’ve written and think of a better way to say it. Or when I discover more about the subject and I feel a supplement is relevant. Sometimes it’s when my process changes, which typically outdates the post, compared to the way I’m currently doing things. Whatever the case, these updates happen…
I’ve tried various methods to stay on track and reach my goals, but OKR is the only goal setting framework I’ve really managed to make work. A large part of that success I put down to using OKR with Obsidian . The note taking and knowledge management writing app which has become a major part of my workflow. Obsidian has a community plugin called Periodic Notes, which combined with templates,…
It’s not always easy to keep the CSS you write consistent, particularly when you’re working on a variety of different projects. Things tend to get messy when you jump between projects, making arbitrary updates, without a clear approach. As your projects grow, so too does the complexity of your stylesheets and your CSS soon enough becomes a nightmare to maintain. The ultimate goal, I suppose, is to…
Although I’m ending 2023 with a stinking cold, overall it’s been a positive year and I‘m excited to pick things up again in 2024. There’s been some big changes for me, personally, this year – I moved house, which was a much bigger project than I ever expected. I also feel like I made good progress professionally. I worked hard on my business and it’s definitely a little bit closer to where I want…
I’m bit late to the party, but nevertheless, here are my app defaults at the end of 2023. Mail Client: Tuta Mail Mail Server: Tuta Mail Notes: Obsidian To-Do: Obsidian Photo Shooting: Apple Camera Photo Management: Apple Photos Calendar: Tuta Calendar Cloud File Storage: Sync, iCloud RSS: NetNewsWire Contacts: Tuta Mail Browser: LibreWolf, Safari, Firefox Dev Chat: WhatsApp, Apple Messages, Signal…
Let’s be honest, subscriptions are one of those things in life we’d all rather live without. But they’re here to stay and they’re getting more expensive . The approach I’m taking is to cull as many as I can (duh). Typeform recently went. As did Strava. Notion will be on it’s way soon. But not just yet, as I was heavily invested and there’s much to undo. These days, if I can pay for software…
Since falling out with Notion , I’ve been on the hunt for a simple project management tool for managing projects, both client and personal. Working independently, I rarely find the need for collaboration features that a team may find useful. What I need is something that doesn’t get in the way of actually doing the work. Ideally something that meets following criteria: Simple, fast and reliable…
I’ve been on the smart watch fence for a while now. My main concern is creating one more distraction in a growing list of distractions. A mini computer strapped to your wrist sounds like a terrible idea, particularly when focus is in short supply. Having worked hard to minimise my digital dependencies the past few years, is buying a smart watch about to undo all this good work? Probably. But I…
The release of Notion Projects has made one thing very clear in my mind–it’s time to look elsewhere for a simpler project management tool. You can do incredible things with Notion, there’s no denying. It’s a powerful piece of software that I’ve used with varying degrees of success over the past 5 years. But recently I’ve found myself questioning whether I need all this power and complexity.…
Let me sleep on it – my go-to response when struggling to find solutions. I love this expression. It reminds me that a solution will invariably present itself when you’re well rested and a problem has been given satisfactory time and space. It also gives the recipient an idea of when you may have an answer. Win win. It seems absurd to write a note about such a simple idea, but it’s easy to forget…
Today is the 20th anniversary of Safer Internet Day , a global campaign which brings together communities to promote the safe and positive use of digital technology, especially among children and young people. To celebrate and raise awareness, I want to share a few tips that will improve your digital experience and help you stay safe online. Use a password manager Password managers help you create…
I’ve been using Feedbin as my RSS reader of choice for a number of years now. But the iOS app just seems to open the web version. Not much of an experience on mobile. The solution I found was to import my Feedbin subscriptions to the NetNewsWire iOS app and use that instead. NetNewsWire is basic but it works like a charm. It’s also just another RSS reader, meaning I don’t really need to keep…
I’ve added a “Reply by email” button to the end of posts on my site. My aim is to give readers a clear and obvious way to contact me, should they have any questions about something they’ve read. Now that I’m using a masked email address as a way to control spam, this solution feels the least confusing. It means you can click a button which automatically opens your mail client, without having any…
Newsletters in your inbox can be distracting to say the least. To solve the problem I’ve been sending them to Feedbin instead. Feedbin is an RSS reader, but it also provides you with an email address for this exact reason. Use it when you subscribe to a newsletter, then you can read the newsletter in Feedbin, just like any other RSS feed. For the past few years this is how I managed newsletters.…
I’ve made all the mistakes to ensure my email receives a sickening amount of spam. A while back, my address somehow crept into the meta data of a client website. Now I’m constantly bombarded with industry specific spam relating to that particular client. Not the end of the world, but kind of annoying, nonetheless. Over the years I’ve exposed my address on numerous social channels, none of which is…
The start of a new year typically seems to be the time I make improvements to my newsletter . Those I introduced back in Jan ’21 turned out to be goods one, for the most part. And most I’ve stuck with. But, back then I wrote about my plans to share more of my own content and unfortunately I’ve struggled to do that. At least, in a way that I feel makes sense. So I’m going to give it another go.…
2022, for the most part, has been a good one. I’m ending the year feeling fit and energised for the year ahead – I can’t ask for much more than that. As with every year there’s been highs and lows. Some of which I’ll try to summarise here in my annual reflection. As ever, I’m using my usual format; first what went well, then what didn’t go so well, followed by a few realisations I made along the…
I just picked up a MacBookPro M1. I held out for as long as I could. But with these summer temperatures, no amount of fan spinning could keep my MacBookPro 2015 from overheating and griding to a hault. It’s been a valiant servant over the years, but sadly its time has come. My aim with this M1 is to keep it as lean as possible. I’ve refrained from copying over my entire machine. Instead, most of…
Methods and parameters play a key role in storing, accessing and returning data in Hugo projects. So understanding how they work is critical. Page and Site are two categories of methods you’ll find yourself using in every project. Both exist for different reasons and give you access to different types of data. This post looks at the difference between the two, including how Params fit into the…
I’ve started using email aliases. They help you stay anonymous when signing up for things, and give you control over who can send you email. Various terms are flying around for this technology, but I’ve been calling it email masking. Whatever you choose to call it, the concept is simple. With the click of a button, generate a random email address for every account you create. These disposable…
I just added a humans.txt file to my personal site. It’s just a simple plain text file at the root of my site, which you probably wouldn’t ever find, unless you enjoy poking around in Github repos. Along with my contact info, and the technology used to build this site, this file contains a growing list of people who have influenced how I build websites. In the grand scheme of things, this isn’t…