2026-04-09 21:37
I've added some data analysis into my training log so that it can total up and average out across months and years - only from 2024 onwards until I format and add earlier data.

I've added some data analysis into my training log so that it can total up and average out across months and years - only from 2024 onwards until I format and add earlier data.

I've added two functions to my PureBlog install, to extract the first image, and the first description or first paragraph in a post, with a custom header.php using them for opengraph. I need to copy two files into my install after each update - feed and header.
I've managed to reformat and simplify the content from my Kirby CMS and 11ty installs, test, and upload today, and improve my archive layouts a little. I have some housekeeping to do, and I need to trim taxonomies, but I'm really happy with how this afternoon's work has gone.

For once, I'm going to remember to turn echofeed off before importing the first 21 years of content into this site. No idea will happen on RSS though!
Hopefully see you on the other side!
What else to do on a long bank holiday weekend than play about with web design? I've implemented custom header and fonts, accented headers, widened view. Need to upgrade archives, and make that light theme Burnley acceptable!
Dark theme - Gold on Black
Light theme - Royal Blue on White
I see that Kev is not entirely succeeding at dialling back the rate of development on Pureblog. Here's a couple of screenshots of the new admin stats page which is really neat.


Was surprised to find microformats2 classes in Pagecord page source this morning, more suprised still to see they are based in Scotland. Not mentioned in features, I see they announced this addition in January.

I spent a little time this morning getting Pure Blog categories to automatically inject into the bottom of the feed content, using a custom function, and an amend to the feeds template. I will no longer need to write this manually at the bottom of each post.
/content/functions.php
----------------------
<?php
function render_hashtag_links(array $tags): string
{
$tags = array_values(array_filter(array_map('trim', $tags)));
if (!$tags) {
return '';
}
$links = [];
foreach ($tags as $tag) {
$slug = normalize_tag($tag);
$links[] = '<category>' . e($tag) . '</category>';
}
return implode(', ', $links);
}
?>
This creates a similar function to the existing tag function, but only provides the hashtag text, no link. This loads alongside the default /functions.php file, and will persist beyond updates. I then inject this into category elements below the description element inside feed.php
/feed.php (bottom of <item> block)
----------------------------------
<item>
...
<description><![CDATA[<?= $content ?>]]></description>
<?php if (!empty($post['tags'])): ?>
<?= render_hashtag_links($post['tags']) ?>
<?php endif; ?>
</item>
In theory I should be able to map a custom route to a custom feed.php, but in reality Pure Blog seems to default the original feed.php anyway - so while the custom function will persist, I'll need to remember to make this insert after the <?= $content ?> to feed.php whenever an update overwrites that file.
Also in version 2.0 Kev has added tag autocomplete. Once I've been through and made all of my existing tags lower case, that is going to be a great help. 2.0 looks like a monster of an update I still need to digest, I have no idea where Kev fins the time 🙏❤️!
This website has become a bit nomadic over the last wee while transiting from lee-perry.co.uk to l.prry.uk before landing on its final resting place here at prry.uk.
The software powering the site has been similarly changeable. What started with amalgamating all of my wordpress projects in a single Hugo based site on Micro.blog, grew into a much more complex site built in Kirby CMS, simplified itself into a bearblog experiment, metamorphosed into a similar project using 11ty, before landing on Pure Blog via an abortive move back to Micro.Blog.
Explaining the domain name switch is simple, I'll always maintain my lee-perry.co.uk domain, I've been hosting on it since 2004. I just like the new shorter domain that I've got hold of. Originally I'd planned to host my Mastodon instance on that domain, but moved my site onto it once I'd decided (for the second time) that self-hosting is expensive, wasteful, and very quiet (moving to social.lol).
Explaining the move to Pure Blog is more complex, as I've enjoyed building every iteration of this site over the last few years. I loved learning to template in Hugo and applying it to make Micro.Blog more customisable. Then I really enjoyed building a more complex site and dashboard using Kirby CMS. Using Bearblog showed me how you could take a very simple blogging system and make it do more complex things, and in 11ty I applied the same concepts and design while going back to basics from the console before plugging in the excellent PagesCMS.
That last development introduced a few things that I was less happy with though. Having worked hard to exclude big tech from my life where I can, Apple largely excluded for the moment, using PagesCMS meant using Github and Netlify for hosting and deployment - though it did make deployment much more straightforward than my earlier Codeberg / Statichost setup.
I considered moving back to Micro.Blog at this point, spending a week building out a concept. This was borne out of a few things. I love the app environment over there, am interested in the new extended video hosting features, and also the new RSS aggregator inkwell. I was also intrigued by the 'check-in' functionality in the Micro.Social app. I aborted this though, it felt as isolated as my previous stay, and an expensive way of gaining a few phone apps and video hosting vs my current setup with Bunny.
So here I am now rebuilding my site on Pure Blog.
I remember seeing Kev's earlier Hyde CMS sat on top of Jekyll, being impressed and envious in equal measure. So once I'd realised how straightforward Pure Blog is to install on traditional hosting without needing a VPS or Docker and any of that nonsense, I was sold (his Pure Comments project is similarly straightforward). I downloaded the zip from github, uploaded to the site folder in the file manager on my Krystal.io hosting, moved the files back to the root of the folder, visited my website, and followed the on screen installation instructions. Up and running in around a minute and all very straightforward.
If one of the reasons that I moved to Pure Blog was simplicity, as well as ejecting the big-tech addition to my 11ty setup, portability was also key. Pure Blog stores files in the content folder in plain markdown text format with fairly standard looking yaml frontmatter. It would be super easy to pick the site up later and completely rebuild it using Jekyll or Hugo in future, and for the most part the reader would not know or even need to know that had happened.
I've enjoyed my time writing in Pure Blog so far, easy to set up, pleasant but bare bones enough to enjoy writing in markdown text within. Ready to go out of the box as a blog, I've configured different content post types for articles, micro posts, image posts, training entries and link posts. I've not done much with the content structures yet, I want to keep this as simple as possible - but I can build specific fields into my custom content temnplates if and when I choose to.
I like Pure Blog so much that I have created a separate site trackd purely to capture short activity tracking posts that syndicate out to the fediverse, but otherwise feel weird to send out within my RSS field. I then plugged in Pure Comments to both, installed on my chatter subdomain, with Amazon SES to serve email (mainly because I just failed to get SMTP to work at all). I'll come back to this later, as I don't really want Amazon in my stack, or after a weird payment to Twilio after a decade this week, longstanding payment instructions sat in unused accounts.
Probably the most complex thing that I've done so far with Pure Blog is to build a custom front page, pulling through the latest posts from each section. Kev quickly update Pure Blog so that a custom front page would be selected where a custom route was set to it on the home url.
I have implemented microformats within the theme where easily able to, I don't think its straightforward to implement h-feed to archive pages without beginning to overhaul templates that would need to be reimplemented after every update. I've customised a Pure Blog version of the webmentions script that I had previously installed on both the 11ty and bearblog versions of my site. I think that is an improvement as it groups the mentions into a single row, taking up less space on the page. I have also made a wee Pure Blog svg to follow the day/night theme colours, positioned within my footer - that took far longer than it should have!
I've still got plenty of work to do on this move, but I'm really happy with the choice and planning to hang around for a while.
I've brought across parts of my site collateral, but I've done very little theming so far, and need to put more of my stamp on the design. Part of the reason for that is, fonts aside, there are a lot of synergies between the core design and my previous design - especially in night view. So I need to style up my site.
I will probably have custom content structures that I want to create, but for now I'm trying to keep the field structure as flat as possible. Lets see how that goes.
The main thing that I need to do now is to import my existing content, preferably without making echofeed go haywire. On that point, echofeed definitely needs a master off switch. This is going to take some time though, I have thousands of pieces of content in different content structures across my 11ty and KirbyCMS builds, and its going to take some time to reformat the content and frontmatter and to move images into the right folder stucture - I'm going to try to write a script to do that when I have a moment.
Great to write in, flexible enough to build custom content, but limited enough to make you not want to. Kev wrote that he thought that Pure Blog was feature complete ish. I think its great, I see a few areas where, selfishly, it can be improved further to simplify my workflow, without pulling it too far away from what it was designed to be:
I'd always advocate for baking microformats directly into posts, pages and feeds - but that may not be a direction Kev wants to take Pure Blog in.
Hopefully thats all constructive. I think anybody is capable of building and producing content using Pure Blog, and if you've never written in markdown, you'll not look at a text editor in the same way again once you have!
Until next time...
One of the quirk's of my Pure Blog switch is that I've split short activity logging posts off into a second site to clean my rss feed. Here I've reversed the favicon colors and styled the dashboards so I can tell which admin console I'm in!

I need to decide whether to leave my training log on my main site and feed, or to move it into trackd.prry.uk which I've built for simple tracking items. Will mull that over on my ride. Any thoughts?
I'm going to build a second site at trackd.prry.uk to move activity logging out of my main feed. Realised earlier that I can use webmentions to backlink through to the digital garden on my main site.
I made a custom homepage for the PureBlog site I've been working on, though I've not worked out out to route this onto the hompage yet, if thats even possible.

I was hard at work this morning installing microformats onto my pureblog site. I still need to do the h-feeds, and I'm yet to come up with a way of doing tags given the way they are produced.

After 6 months with bearblog, 11ty and even micro.blog again, maybe the (link: https://lee-perry.co.uk text: kirby site) I started with was the most functionally complete. I'm going to try to simplify and update the design, and perhaps move it onto my new shorter url.
Firmly in the incremental upgrades bracket, I have made myself a little SVG of the power of 10 logo, and linked it through to my 'athlete' 🤣 profile from my website footer.
My contribution to the IndieWeb Carnival, December 2025 - the IndieWeb in 2030.
In the invitation, Venkatram asked where we see the IndieWeb in 2030. In answering it is necessary to consider what the IndieWeb is, which is described on the IndieWeb website:
The IndieWeb is a people-focused alternative to the “corporate web”.
We are a community of independent and personal websites based on the principles of: owning your domain and using it as your primary online identity, publishing on your own site first (optionally elsewhere), and owning your content.
Putting the website at the core of the IndieWeb is the complete opposite to the development of social media silos over much of the past two decades. The internet was certainly much better fun before the emergence of the social media giants of the late 2000s. Most social media users did not give up personal websites to join a silo though, the photograph of their toast on the timeline probably was their first meaningful contribution to the internet.
To be an attractive alternative to the corporate giants of the social media world, the IndieWeb has to be easy to join, and easy to participate in. Simply it needs to be more accessible to grow beyond the fairly narrow cohort it attracts today.
I've been writing on my own website since 2004, but I've only really considered myself to be participating in the IndieWeb since early 2023 when I combined a number of Wordpress projects together on micro.blog. In the time since then I have rebuilt my site completely using Kirby CMS hosted with Krystal, have rebuilt my site on a new domain using the bearblog service, and more recently have completely rebuilt that using the 11ty static site generator hosted on Statichost, and then Netlify. Most normal people don't spend hours building this stuff, they throw a picture of their breakfast on the social media platform of their choice, and move on.
The IndieWeb of 2030 needs to have solutions that make it as easy to get involved in the IndieWeb as it is to get involved in large social media silos. It needs a genuine IndieWeb as a Service solution.
Micro.blog probably comes as close to this as I've seen, frustratingly close, with an application suite that makes it easy to post short and longform content. But for structural rigidity, I'd probably still be hosting there now.
I'm sure that the IndieWeb can feel lonely at times, particularly to new participants. The alternative is some form of content algorithm that runs against the people focused alternative that the IndieWeb is.
The community building blocks are already there. From carnivals like this one, to photoblogging challenges and the Homebrew Website Clubs - they just need to be more discoverable and accessible to people who do not even know they exist.
What does need to improve, stepping into the fediverse, is cross-discoverability of content across different instances. Projects like David's TagPush are needed to help people with common interests connect with each other properly, and to discover posts that they are interested in reading but would not otherwise see. Being one of two people talking about Burnley FC on micro.blog was great, but with better discoverability across platforms might have even been three people!
Options to automatically and easily share content from website to the fediverse were improved hugely with the release of the EchoFeed web app around 12 months ago. Using different feeds and conditionals Echofeed allows the writer to share different types of content to different services differently.
While Echofeed can post to Mastodon, micro.blog and Bluesky, options that can post to other fediverse providers such as GoToSocial, Lemmy, Pixelfed etc could help to broaden this further.
Venkatram asks how the IndieWeb can stand up to the CorpoWeb better in coming years. It does not need to.
There are features of the IndieWeb that are inherently good, that I would not want to change, prominent amongst those is the absence of any algorithm, and the influencers they promote.
Sure there are people active on the IndieWeb with greater reach and audience than others. But my mastodon server is not going to force marketing content into my feed unless I've been stupid enough to put it there myself.
The IndieWeb does not need to stand up to the CorpoWeb, it just needs to stay in its own swimlane, living its own values, doing its own thing. It is not in competition with the deadweb, it is a viable alternative for people to turn to once they tire of being the product.
The IndieWeb is a fundamentally good alternative to, but not really in competition with, corporate social media - nor should it try to be.
It would benefit from a complete Indieweb as a Service solution that lets non-technical people do lots of the magic things that people like Jan-Lukas Else and Aaron Parecki make their websites do, without needing to dive into documentation and build things.
Better hashtag and/or content discoverability across instances, particularly in relation to self-hosted instances, would help newer users to find interesting content and people much more quickly. Further options to syndicate content out from websites more widely still can only help.
What do you think?
One of my objectives for this week off was to connect a CMS to my 11ty site to make it easier to post from mobile - here is PagesCMS editing my repo directly, with Netlify auto publishing any commits. ✅
Fresh from my shock at finding Starbucks open for my 6am train came my shock at buying my first ever +£7 coffee. Finishing off last nights work getting image transforms and feeds working together in the first 15 minutes of my journey did soften the blow.