JSON Feed Validator

Check whether your feed is valid. For more information about JSON Feed, see the specification. Find the validator source code on GitHub.

GET validation response in JSON format.

Feed source

{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Paul Robert Lloyd",
  "description": "The personal website of Paul Robert Lloyd",
  "home_page_url": "https://paulrobertlloyd.com",
  "feed_url": "https://paulrobertlloyd.com/feed.json",
  "favicon": "https://paulrobertlloyd.com/assets/icons/icon.svg",
  "icon": "https://paulrobertlloyd.com/assets/icons/icon-192-any.png",
  "language": "en-GB",
  "authors": [
    {
      "avatar": "/.well-known/avatar.png",
      "name": "Paul Robert Lloyd",
      "url": "https://paulrobertlloyd.com"
    }
  ],
  "items": [
    {
      "id": "https://paulrobertlloyd.com/2025/273/n1/",
      "url": "https://paulrobertlloyd.com/2025/273/n1/",
      "date_published": "2025-09-30T07:27:18.912Z",
      "content_html": "<p>Thanks to severe train delays, I have a morning to spend in Paris. Last night I booked into a charming hotel in Saint-Paul, and just met some of its extraordinarily friendly staff at breakfast. Going by previous experiences, I didn’t think any of this was possible! Paris might be growing on me.</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/267/p1/",
      "url": "https://paulrobertlloyd.com/2025/267/p1/",
      "date_published": "2025-09-24T19:37:23.699Z",
      "content_html": "<p>Favourite tree doing favourite tree things.</p><figure><img src=\"https://paulrobertlloyd.com/media/2025/267/p1/1.jpg\" alt=\"Luminous bright orange leaves on the branches of a maple tree.\" class=\"u-photo\"></figure>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/267/p1/1.jpg",
          "title": "Luminous bright orange leaves on the branches of a maple tree.",
          "mime_type": "image/jpeg"
        }
      ]
    },
    {
      "id": "https://paulrobertlloyd.com/2025/254/j1/",
      "url": "https://paulrobertlloyd.com/2025/254/j1/",
      "date_published": "2025-09-11T22:00:42.998Z",
      "title": "♫ Lucky by Radiohead",
      "content_html": "<p>♫ <a class=\"u-jam-of\" href=\"https://music.apple.com/gb/album/lucky/1097861387?i=1097861843\">Lucky by Radiohead</a></p><p>Played this in the car driving around Kent with Jon at the weekend, and now pleasantly stuck in my head.</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/252/n1/",
      "url": "https://paulrobertlloyd.com/2025/252/n1/",
      "date_published": "2025-09-09T22:16:07.327Z",
      "content_html": "<p>Caught up with the Apple Event. Took me 30 minutes to realise I was watching <em>last year’s</em> event.</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/247/p1/",
      "url": "https://paulrobertlloyd.com/2025/247/p1/",
      "date_published": "2025-09-04T21:50:01.882Z",
      "content_html": "<p>Probably the last post-work rays of sunlight for 2025.</p><figure><img src=\"https://paulrobertlloyd.com/media/2025/247/p1/1.jpg\" alt=\"Rays of sunlight illuminating long bright green leaves.\" class=\"u-photo\"></figure>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/247/p1/1.jpg",
          "title": "Rays of sunlight illuminating long bright green leaves.",
          "mime_type": "image/jpeg"
        }
      ]
    },
    {
      "id": "https://paulrobertlloyd.com/2025/243/a1/nhsuk_eleventy_plugin/",
      "url": "https://paulrobertlloyd.com/2025/243/a1/nhsuk_eleventy_plugin/",
      "date_published": "2025-08-31T17:00:00.000Z",
      "title": "Twice as nice: Introducing the NHS.UK Eleventy Plugin",
      "summary": "With the NHS.UK Eleventy Plugin you can focus on writing content instead of writing code.",
      "content_html": "<figure><img src=\"https://paulrobertlloyd.com/media/2025/243/a1/image.png\" alt=\"Elle, the Eleventy mascot, held aloft by three balloons, one red and two blue.\"><figcaption>Elle, the Eleventy mascot. Adapted from an illustration by David Neal.</figcaption></figure><p>Since its <a href=\"https://x-govuk.github.io/posts/govuk-eleventy-plugin/\">release in April 2022</a>, teams across government have been adopting the GOV.UK Eleventy Plugin. Examples include:</p><ul><li><a href=\"https://uk-x-gov-software-community.github.io/\">Cross Government Software Engineering Community</a></li><li><a href=\"https://ukhomeoffice.github.io/hocs/\">DECS Developer Documentation</a> (Home Office)</li><li><a href=\"https://digital-land.github.io/technical-documentation\">Digital Land Technical Documentation</a> (MHCLG)</li><li><a href=\"https://engineering.homeoffice.gov.uk/\">Engineering Guidance and Standards</a> (Home Office)</li><li><a href=\"https://engineering.hmrc.gov.uk/\">Engineering Guidance</a> (HMRC)</li><li><a href=\"https://ukhsa-collaboration.github.io/standards-org/\">Engineering Standards</a> (UKHSA)</li><li><a href=\"https://design-guide.publishing.service.gov.uk/\">GOV.UK Publishing Design Guide</a> (GDS)</li><li><a href=\"https://dwp-health-data-glossary.netlify.app/\">Health and Disability Data Glossary</a> (DWP)</li><li><a href=\"https://handbook.planning.data.gov.uk/\">Planning Data Service Handbook</a> (MHCLG)</li></ul><p>The plugin also powers some of <a href=\"https://x-govuk.github.io/projects\">our own documentation sites</a>, as well as <a href=\"https://x-govuk.github.io/govuk-design-history/directory/\">a growing collection of design histories</a>, a reflection of the project’s origins.</p><figure><img src=\"https://paulrobertlloyd.com/media/2025/243/a1/govuk-eleventy-plugin-sites.png\" alt=\"A selection of websites using the GOV.UK Eleventy Plugin\"></figure><p>It’s gratifying to know that this little project has helped teams focus on writing content instead of writing code.</p><p>That wasn’t true for teams in the NHS however.</p><p>Although NHS.UK frontend is a distant cousin of GOV.UK Frontend, there are enough differences that using the plugin to build a site that followed NHS design standards required a lot of effort, only to end up with a design stuck in uncanny valley.</p><p>This is what teams in the NHS Digital prevention services portfolio discovered when they were setting up their design history.</p><p>They needed their own Eleventy plugin, one that reflected the design idioms common to the NHS website. Other teams working in the NHS may want this too.</p><p>That’s why we created the <a href=\"https://x-govuk.github.io/nhsuk-eleventy-plugin/\">NHS.UK Eleventy Plugin</a>.</p><h2 id=\"stick_or_split\">Stick or split?</h2><p>We wanted to create a plugin that provided the same level of customisation as the existing plugin, but without too much duplication. We considered two approaches:</p><ol><li>Fork the plugin and maintain two separate codebases</li><li>Maintain the existing plugin but provide a <code>brand</code> option which users could set to <code>nhsuk</code></li></ol><p>While the first option wasn’t desirable, the second approach would likely end up with us being in a worse situation, maintaining a project that was overly complicated and littered with conditionals.</p><p>This is because, while the NHS.UK and GOV.UK design systems overlap, there are plenty of areas where they diverge.</p><p>For example, the <a href=\"https://service-manual.nhs.uk/design-system\">NHS design system</a> has a card component, used on collection and hub pages, as well as contents list and image components not found in the <a href=\"https://design-system.service.gov.uk/\">GOV.UK Design System</a>. Layouts for NHS sites rarely have sidebars, and of course the header and footer are entirely different.</p><p>Yet, apart from layouts, components and styles, the remaining code base was fairly design agnostic.</p><p>So, with our bucket hats on and Oasis blaring in the background, we headed back to the nineties and embraced a third way.</p><p>We decided to have the GOV.UK Eleventy Plugin export its utility functions, collections, virtual templates, template formats and Nunjucks filters, and updated the <a href=\"https://github.com/x-govuk/markdown-it-govuk\"><code>markdown-it-govuk</code></a> plugin to include a <code>brand</code> option so that <code>nhsuk-*</code> prefixes could be used in any generated HTML.</p><p>This means that, while the NHS.UK Eleventy Plugin inherits much of its underlying code from the GOV.UK Eleventy Plugin, it can provide its own Markdown setup, layouts, custom components and configuration options.</p><p>Over time, perhaps as NHS.UK frontend and GOV.UK Frontend converge, the need for separate plugins will disappear. But for now, this feels like a good compromise.</p><p>Here are some examples of the new plugin in use:</p><figure><a href=\"https://design-history.prevention-services.nhs.uk/\"><img src=\"https://paulrobertlloyd.com/media/2025/243/a1/nhsuk-design-history.png\" alt=\"Home page and internal page from the NHS Digital prevention services design history website.\"></a><figcaption>Digital prevention services design history</figcaption></figure><figure><a href=\"https://guide.manage-vaccinations-in-schools.nhs.uk/\"><img src=\"https://paulrobertlloyd.com/media/2025/243/a1/nhsuk-service-guidance.png\" alt=\"Home page and internal page from the NHS Manage vaccinations in schools service guidance website.\"></a><figcaption>Manage vaccinations in schools service guidance</figcaption></figure><h2 id=\"a_fresh_perspective\">A fresh perspective</h2><p>Creating this new plugin provided an opportunity to revisit some of out earlier design decisions.</p><h3 id=\"more_meaningful_markdown\">More meaningful Markdown</h3><p>The GOV.UK Eleventy Plugin has always supported the basic Markdown syntax, as well as common extensions such as those for tables and fenced code blocks.</p><p>One area where these options felt limiting (and possibly prone to misuse) was the styling given to block quotes. These used the same design as that for inset text, but this often meant authors ended up using the <code>&lt;blockquote&gt;</code> element to add emphasis to content rather than markup quotations.</p><p>Another issue was the lack of support for <a href=\"https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts\">GitHub-style alerts</a>.</p><p>Version 8 of the GOV.UK Eleventy Plugin changes <a href=\"https://x-govuk.github.io/govuk-eleventy-plugin/example/markdown/#blockquotes\">the way block quotes get rendered</a>, instead using the design used on GOV.UK where paragraphs display hanging quotation marks. They can now also include an attribution.</p><p><a href=\"https://x-govuk.github.io/govuk-eleventy-plugin/example/markdown/#alerts\">Alerts instead use the inset text component</a> (with the alert type provided as a visually hidden label). The lowest alert level, ‘note’, has the same appearance as that for inset text, while the remaining alert levels have different border and background colours.</p><p>The NHS.UK Eleventy Plugin takes <a href=\"https://x-govuk.github.io/nhsuk-eleventy-plugin/example/markdown/#alerts\">a slightly different approach for alerts</a>:</p><ul><li>‘note‘ and ‘tip’ alerts use the inset text style</li><li>‘important‘, ‘warning‘ and ‘caution’ alerts use the warning callout style</li></ul><p>These changes hopefully provide a greater degree of flexibility, while ensuring content gets marked up with the appropriate semantic elements.</p><h3 id=\"virtual_templates\">Virtual templates</h3><p>While developing this new plugin, it also became clear that we could use the <a href=\"https://www.11ty.dev/docs/virtual-templates/\">virtual templates</a> feature introduced in Eleventy 3.0 to a far greater extent than we had considered for version 7.</p><p>Until now, we provided documentation to help teams add features like sitemaps and RSS feeds. Enabling features meant adding empty pages to content folders and in some cases creating custom collections.</p><p>Virtual templates mean such pages can go away, with the plugin allowing you to enable features with a couple of lines of code.</p><p>For example, you can add an RSS feed to your site by adding the following lines to the plugin’s configuration object:</p><pre class=\"language-js\"><code class=\"language-js\">eleventyConfig<span class=\"token punctuation\">.</span><span class=\"token function\">addPlugin</span><span class=\"token punctuation\">(</span>govukEleventyPlugin<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>  <span class=\"token literal-property property\">templates</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>    <span class=\"token literal-property property\">feed</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>      <span class=\"token literal-property property\">title</span><span class=\"token operator\">:</span> <span class=\"token string\">'Latest updates'</span>    <span class=\"token punctuation\">}</span>  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span></code></pre><p>The 404 error and sitemap pages are created by default, but you can disable these if you want to. You can also configure each feature template, as well as override the layouts that they use, if you need something more custom.</p><p>We’re excited about Eleventy’s virtual templates feature and the opportunities they give plugin creators. If you have an idea for other features the plugin could provide, <a href=\"https://github.com/x-govuk/govuk-eleventy-plugin/issues\">let us know</a>.</p><h3 id=\"improved_documentation\">Improved documentation</h3><p>We also took this opportunity to review our documentation and how it’s organised. There’s now more detail about how to start a new project, while documentation for features and layouts is now split into different sections. Again, let us know if we can improve this further.</p><p>Happy website building! 🎈</p><hr><ul><li><a href=\"https://x-govuk.github.io/nhsuk-eleventy-plugin/get-started/\">Get started with the NHS.UK Eleventy Plugin</a></li><li><a href=\"https://x-govuk.github.io/govuk-eleventy-plugin/get-started/\">Get started with the GOV.UK Eleventy Plugin</a></li><li><a href=\"https://x-govuk.github.io/govuk-eleventy-plugin/get-started/upgrading/7-to-8/\">Upgrade from v7 to v8 of GOV.UK Eleventy Plugin</a></li></ul><hr><p><a href=\"mailto:reply@paulrobertlloyd.com?subject=Reply:%20Twice%20as%20nice:%20Introducing%20the%20NHS.UK%20Eleventy%20Plugin\">Reply via email</a></p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/242/a1/sloppy/",
      "url": "https://paulrobertlloyd.com/2025/242/a1/sloppy/",
      "date_published": "2025-08-29T23:15:00.000Z",
      "title": "Sloppy",
      "summary": "Stop the slop.",
      "content_html": "<p>Last month, somebody at work put the government’s 10 Year Health Plan for England through Google Notebook LM and had it generate a 13 minute podcast.</p><p>I didn’t listen to it.</p><hr><p>Last week, I found myself in an a video conference in which a developer tried to describe the component they wanted to build by pasting the entire output of an AI chatbot into the meeting’s chat.</p><p>I didn’t read it (although I did almost fall off my chair).</p><hr><p>Last weekend, a neighbour posted a 17-page PDF into my street’s WhatsApp group summarising the potential downsides of local government reorganisation (“these are not my own thoughts and opinions, they are suggestions from AI”).</p><p>I didn’t read any of that, either.</p><hr><p>I guess I’m applying the inverse of <a href=\"https://simonwillison.net/2023/Aug/27/wordcamp-llms/#personal-ai-ethics\">Simon’s rule</a>: I will not consume anything that will take me longer to read than it took for someone to write.</p><p>(Again, please, <a href=\"https://paulrobertlloyd.com/2025/087/a1/bored/\">make it stop</a>).</p><hr><p><a href=\"mailto:reply@paulrobertlloyd.com?subject=Reply:%20Sloppy\">Reply via email</a></p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/222/p1/",
      "url": "https://paulrobertlloyd.com/2025/222/p1/",
      "date_published": "2025-08-10T17:34:11.370Z",
      "content_html": "<p>I found a <a href=\"https://www.youtube.com/watch?v=sWxXyR4ifbk\">Benchmark</a>. Harder to find than I thought it would be.</p><figure><img src=\"https://paulrobertlloyd.com/media/2025/222/p1/1.jpg\" alt=\"Four faint lines etched into a brick wall that form the benchmark symbol.\" class=\"u-photo\"></figure>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/222/p1/1.jpg",
          "title": "Four faint lines etched into a brick wall that form the benchmark symbol.",
          "mime_type": "image/jpeg"
        }
      ]
    },
    {
      "id": "https://paulrobertlloyd.com/2025/212/n1/",
      "url": "https://paulrobertlloyd.com/2025/212/n1/",
      "date_published": "2025-07-31T21:07:41.437Z",
      "content_html": "<p>Tonight I watched <cite>Nye</cite> at the National Theatre, a play about the life (and death) of NHS founder, Aneurin Bevan. Beautiful and haunting, the very last scene completely broke me. Forget ten year plans; Nye had a vision, and he absolutely delivered on it.</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/151/p1/",
      "url": "https://paulrobertlloyd.com/2025/151/p1/",
      "date_published": "2025-05-31T12:13:06.841Z",
      "content_html": "<p>Many years ago I read about <a href=\"https://www.dezeen.com/2012/10/04/book-mountain-library-pyramid-by-mvrdv/\">Book Mountain</a>, a curious pyramid-shaped library in Spijkenisse, the Netherlands. Today I finally stepped inside.</p><figure><img src=\"https://paulrobertlloyd.com/media/2025/151/p1/1.jpg\" alt=\"Large black bookshelves, desks and indoor trees under diagonal wooden roof beams.\" class=\"u-photo\"></figure>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/151/p1/1.jpg",
          "title": "Large black bookshelves, desks and indoor trees under diagonal wooden roof beams.",
          "mime_type": "image/jpeg"
        }
      ]
    },
    {
      "id": "https://paulrobertlloyd.com/2025/150/n1/",
      "url": "https://paulrobertlloyd.com/2025/150/n1/",
      "date_published": "2025-05-30T15:57:46.486Z",
      "content_html": "<p>Good services are verbs.<br>Bad services are nouns.<br><a href=\"https://ai.gov.uk/projects/\">AI services</a> are whimsical, opaque or vAPId.</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/146/d1/",
      "url": "https://paulrobertlloyd.com/2025/146/d1/",
      "date_published": "2025-05-26T16:30:00.000Z",
      "title": "Firebreak",
      "content_html": "<figure><img src=\"https://paulrobertlloyd.com/media/2025/145/d1/1.png\" alt=\"A poster with an illustration of the ‘everything is fine’ dog, with a schedule of 7 events taking place over a few weeks in April 2025.\"></figure><p>Poster I created to mark <a href=\"https://www.goodmachine.team/\">Good Machine</a>’s first firebreak week.</p>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/145/d1/1.png",
          "title": "A poster with an illustration of the ‘everything is fine’ dog, with a schedule of 7 events taking place over a few weeks in April 2025.",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "id": "https://paulrobertlloyd.com/2025/146/a1/blue/",
      "url": "https://paulrobertlloyd.com/2025/146/a1/blue/",
      "date_published": "2025-05-26T16:15:00.000Z",
      "title": "Now available in blue",
      "summary": "As teams at GDS prepare to launch a refreshed brand for GOV.UK on 25 June, so the X-GOVUK community has been updating its projects in preparation for this go-live date.",
      "content_html": "<figure><img src=\"https://paulrobertlloyd.com/media/2025/145/a1/image.png\" alt=\"A cyan blue dot surrounded by radiating, fading bands of the same colour.\"></figure><p>As teams at GDS <a href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\">prepare to launch a refreshed brand for GOV.UK on 25 June</a>, so the X-GOVUK community has been updating its projects in preparation for this go-live date.</p><p>As a reminder, X-GOVUK is an unofficial community-maintained space for people working on government digital services in the UK. Since <a href=\"https://x-govuk.github.io/posts/introduction/\">formally launching</a> 3 years ago, it has become home to a number of different ports of GOV.UK Frontend, with <a href=\"https://github.com/gunndabad\">James Gunn</a>’s <a href=\"https://github.com/x-govuk/govuk-frontend-aspnetcore\">ASP.NET Core integration</a> joining us earlier this month.</p><p>Besides updating projects to support the refreshed brand, other updates have been made across a range of projects, so now seems like a good time to recap some recent improvements.</p><h2 id=\"gov_uk_eleventy_plugin\">GOV.UK Eleventy Plugin</h2><p>The latest <a href=\"https://x-govuk.github.io/govuk-eleventy-plugin/upgrading/6-to-7/\">v7.0 release to this plugin for Eleventy</a> addresses a number of long standing issues.</p><p>Thanks to the <a href=\"https://www.11ty.dev/docs/virtual-templates/\">virtual templates feature</a> introduced in Eleventy 3.0, default templates provided by the plugin can now be replaced by creating a layout with the same name in your layouts directory.</p><p>There are also fixes to generated RSS feeds. Featured post images are now included by default and source paths for embedded media now resolve correctly.</p><p>Thanks to Sass modules, you can now update the design of a site by calling <code>govuk-frontend</code> with the <code>@use</code> syntax:</p><pre class=\"language-scss\"><code class=\"language-scss\"><span class=\"token property\"><span class=\"token variable\">$_font-family</span></span><span class=\"token punctuation\">:</span> system-ui<span class=\"token punctuation\">,</span> sans-serif<span class=\"token punctuation\">;</span><span class=\"token keyword\">@use</span> <span class=\"token string\">\"pkg:govuk-frontend/dist/govuk\"</span> <span class=\"token module-modifier keyword\">with</span> <span class=\"token punctuation\">(</span>  <span class=\"token property\"><span class=\"token variable\">$govuk-font-family</span></span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$_font-family</span><span class=\"token punctuation\">,</span>  <span class=\"token property\"><span class=\"token variable\">$govuk-brand-colour</span></span><span class=\"token punctuation\">:</span> #8822aa<span class=\"token punctuation\">,</span>  <span class=\"token property\"><span class=\"token variable\">$govuk-link-colour</span></span><span class=\"token punctuation\">:</span> #660088<span class=\"token punctuation\">,</span>  <span class=\"token property\"><span class=\"token variable\">$govuk-link-hover-colour</span></span><span class=\"token punctuation\">:</span> #440066<span class=\"token punctuation\">,</span>  <span class=\"token property\"><span class=\"token variable\">$govuk-link-visited-colour</span></span><span class=\"token punctuation\">:</span> #333366<span class=\"token punctuation\">,</span>  <span class=\"token property\"><span class=\"token variable\">$govuk-page-width</span></span><span class=\"token punctuation\">:</span> 1100px<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre><p>Generated JavaScript and CSS files are now minimised, and all options for the <a href=\"https://design-system.service.gov.uk/components/service-navigation/\">Service navigation component</a> are now supported.</p><p>And of course, support is provided for the GOV.UK rebrand. Setting the <code>rebrand</code> option to <code>true</code> will render templates with the refreshed design. This option is set to <code>false</code> by default; a later minor update will change this default to <code>true</code> before the option is removed.</p><h2 id=\"gov_uk_prototype_components\">GOV.UK Prototype Components</h2><p>Alongside some under-the-hood updates (moving the project to ES and Sass modules), v4.0 of <a href=\"https://x-govuk.github.io/govuk-prototype-components/\">this plugin for the GOV.UK Prototype Kit</a> removes the deprecated Primary navigation component. You should use the <a href=\"https://design-system.service.gov.uk/components/service-navigation/\">Service navigation component</a> to help users navigate your service instead.</p><h2 id=\"gov_uk_prototype_filters\">GOV.UK Prototype Filters</h2><p>Recent updates to the <a href=\"https://x-govuk.github.io/govuk-prototype-filters/\">filters provided by this plugin</a> for the GOV.UK Prototype Kit have been especially fun.</p><p>Turns out JavaScript runtimes have differing opinions around date formatting. How is September abbreviated (‘Sept’ or ‘Sep’)? Should a comma be included in a date that includes a time?</p><p>These inconsistencies have been resolved, alongside the ability to include the day of the week in formatted dates and format a person’s age according to the <a href=\"https://service-manual.nhs.uk/content/inclusive-content/age\">NHS.UK content guide</a>.</p><h2 id=\"gov_uk_components_and_form_builder_for_ruby_on_rails\">GOV.UK Components and Form Builder for Ruby on Rails</h2><p><a href=\"https://github.com/peteryates\">Peter Yates</a> continues his diligent stewardship of the Ruby Gems that provide <a href=\"https://govuk-components.netlify.app/\">components for use with Rails’ ViewComponent framework</a> and <a href=\"https://govuk-form-builder.netlify.app/\">form components for Rails’ <code>FormBuilder</code></a>.</p><p>Updates to both gems in support of the rebrand will be released on 25 June.</p><h2 id=\"gov_uk_frontend_statistics\">GOV.UK Frontend Statistics</h2><p><a href=\"https://github.com/frankieroberto\">Frankie Roberto</a>’s project attempts to track <a href=\"https://x-govuk.github.io/govuk-services-frontend-stats/\">adoption of the latest releases to GOV.UK Frontend</a>.</p><p>Originally created to track adoption of a release that introduced the Tudor crown, the report has been updated to show which services are ready to support the rebrand.</p><p>The report isn’t exhaustive (it doesn’t detect uses of <code>govuk-frontend</code> in some types of repository or within closed source projects), but it serves as a good sense check.</p><h2 id=\"x_govuk_rebrand\">X-GOVUK rebrand</h2><p>Finally, with all this talk of rebrands, X-GOVUK has updated its own brand to align with changes to GOV.UK.</p><p>Our new logotype features a unique graphic device, a perfectly symmetrical oval that sits between ‘X’ and ‘GOVUK’. This symbolises the synergy between our collaborative cross-government community and the digital centre of government, with its neon blue colour expressing the energy and passion we put into our projects. It’s also just a cyan blue circle.</p><p>Joking aside, apart from updating our project documentation to use the rebranded components, the service navigation component allows us to better demonstrate the relationship between X-GOVUK and the projects that exist under that banner.</p><p>This work was made much easier thanks to the excellent work done by the teams working on the GOV.UK Design System. As ever, our projects stand on the shoulders of giants.</p><hr><p><a href=\"mailto:reply@paulrobertlloyd.com?subject=Reply:%20Now%20available%20in%20blue\">Reply via email</a></p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/142/n1/",
      "url": "https://paulrobertlloyd.com/2025/142/n1/",
      "date_published": "2025-05-22T09:05:20.426Z",
      "content_html": "<p>I’m not convinced that the designer of a $10,000 gold watch (now obsolete), who gets driven around in the back of a Bentley, and who spends his spare time in coffee shops ‘inventing the future’ with the likes of Sam Altman, is capable of designing products for the rest of us.</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/133/n1/",
      "url": "https://paulrobertlloyd.com/2025/133/n1/",
      "date_published": "2025-05-13T20:05:30.539Z",
      "content_html": "<p>Happy M&amp;S cyber incident update day for those who celebrate.</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/111/a1/drawings/",
      "url": "https://paulrobertlloyd.com/2025/111/a1/drawings/",
      "date_published": "2025-04-21T22:45:00.000Z",
      "title": "These are my drawings",
      "summary": "Goodbye Dribbble.",
      "content_html": "<p>With the <a href=\"https://avalonstar.com/blog/2025/the-enshittification-of-dribbble\">enshittification of Dribbble</a> marching towards its <a href=\"https://dribbble.com/stories/2025/03/17/work-in-progress-part-9\">inevitable conclusion</a>, I’ve decided to stop posting images to that service and instead post them to a new section of my website called <a href=\"https://paulrobertlloyd.com/drawings\">Drawings</a>. This is a place where I can share pencil sketches, illustrations and logos, but most likely, mission patches (which I can now also <a href=\"https://paulrobertlloyd.com/collections/mission_patches\">collect separately</a>).</p><h2 id=\"goodbye_dribbble\">Goodbye Dribbble</h2><p>Much like when <a href=\"https://paulrobertlloyd.com/2024/005/a1/jams/\">I added my previous posts from <cite>This is My Jam</cite></a> to the <a href=\"https://paulrobertlloyd.com/jams\">Jams</a> section of my website, my original intention was to bring across all the previous shots I’d posted to Dribble over the last 15 years.</p><p>This made sense for the more recent images, but reviewing older shots took me back to a time when Dribbble was a helpful and lively community, one where I would post images and get feedback not just the occasional like. On a few occasions I used the ‘rebound’ feature to post iterations of other people’s shots with my recommendations. My very first shots were 400×300 crops of design files I no longer have or can open<sup class=\"footnote-ref\"><a href=\"https://paulrobertlloyd.com/2025/111/a1/drawings/#fn1\" id=\"fnref1\">1</a></sup>.</p><p>These earlier posts felt out of place on my own site, so I choose to import a subset of posts instead. While my inner completionist wasn’t too happy, I reminded myself that the goal was not to recreate Dribbble, but to build something for my own purposes.</p><p>There’s not too much to say about the implementation, though perhaps it’s worth mentioning why I choose the name ‘drawings’. For the most part ‘design’ may be better suited, but this new section also gives me a place to collect the few <a href=\"https://paulrobertlloyd.com/2023/094/d1/\">sketches</a> I’d <a href=\"https://paulrobertlloyd.com/2020/114/d1/\">previously</a> <a href=\"https://paulrobertlloyd.com/2017/204/d3/\">posted</a>. Who knows, maybe having a new section will encourage me to post many more.</p><h2 id=\"cool_urls\">Cool URLs</h2><p>There is another reason for choosing this name, and perhaps now is a good time to finally write up the URL structure I moved to a few years ago. Largely based on Tantek’s <a href=\"http://tantek.pbworks.com/w/page/21743973/Whistle\">Whistle URL shortening scheme</a>, it means URLs on my site use the format <code>/yyyy/ddd/tn[/slug]</code>, where:</p><ul><li><code>yyyy</code> is the year</li><li><code>ddd</code> is the day of the year</li><li><code>t</code> is the post’s content-type</li><li><code>n</code> is the nth post of that content-type on this day</li><li><code>slug</code> is optional and can be removed when used</li></ul><p>This means that each type of post has to be assigned a letter. So far I’ve assigned the following:</p><table><thead><tr><th>Post type</th><th>Content-type prefix</th></tr></thead><tbody><tr><td>Article</td><td>a</td></tr><tr><td>Bookmark</td><td>b</td></tr><tr><td>Comments</td><td>c</td></tr><tr><td>Drawing</td><td>d</td></tr><tr><td>Itinerary</td><td>i</td></tr><tr><td>Jam</td><td>j</td></tr><tr><td>Note</td><td>n</td></tr><tr><td>Photo</td><td>p</td></tr><tr><td>Reply</td><td>r</td></tr><tr><td>Presentation</td><td>s (slides)</td></tr><tr><td>Trip</td><td>t</td></tr><tr><td>Project</td><td>w (work)</td></tr></tbody></table><p>If it wasn’t for <code>s</code> already being assigned to presentations, perhaps I’d have chosen <code>s</code> for ‘screenshots’, but I like where I ended up. Not only does <code>d</code> stand for ‘drawing’ and ‘design’, but it’s also a subtle nod to Dribbble, a soon-to-be forgotten place where a number of these drawings first appeared.</p><section id=\"footnotes\" aria-label=\"footnotes\"><ol class=\"footnotes\"><li id=\"fn1\" class=\"footnote-item\"><p>During this work I discovered <a href=\"https://www.photopea.com/\">Photopea</a>, an online image editor that can open Fireworks’ propriety PNG files. However, files still need some manual editing and recovery to be useful again. <a href=\"https://paulrobertlloyd.com/2025/111/a1/drawings/#fnref1\" class=\"footnote-backref\">↩︎</a></p></li></ol></section><hr><p><a href=\"mailto:reply@paulrobertlloyd.com?subject=Reply:%20These%20are%20my%20drawings\">Reply via email</a></p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/111/d2/",
      "url": "https://paulrobertlloyd.com/2025/111/d2/",
      "date_published": "2025-04-21T21:20:00.000Z",
      "title": "Manage vaccinations in schools: Doubles private beta",
      "content_html": "<figure><img src=\"https://paulrobertlloyd.com/media/2025/111/d2/1.png\" alt=\"A circular badge featuring two polar bears facing each other.\"></figure><p>The mission patch for the release supporting ‘doubles’ (co-administered MenACWY and Td/IPV vaccinations) features Mavis the polar bear meeting her double.</p>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/111/d2/1.png",
          "title": "A circular badge featuring two polar bears facing each other.",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "id": "https://paulrobertlloyd.com/2025/111/d1/",
      "url": "https://paulrobertlloyd.com/2025/111/d1/",
      "date_published": "2025-04-21T21:20:00.000Z",
      "title": "Manage vaccinations in schools: HPV private beta",
      "content_html": "<figure><img src=\"https://paulrobertlloyd.com/media/2025/111/d1/1.png\" alt=\"A circular badge featuring a polar bear watching a sunrise.\"></figure><p>The mission patch for the HPV private beta features Mavis the polar bear watching the sun rise over the horizon, representing the launch of our new service into private beta.</p>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/111/d1/1.png",
          "title": "A circular badge featuring a polar bear watching a sunrise.",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "id": "https://paulrobertlloyd.com/2025/107/p1/",
      "url": "https://paulrobertlloyd.com/2025/107/p1/",
      "date_published": "2025-04-17T20:22:18.634Z",
      "content_html": "<p>Hey Guy’s</p><figure><img src=\"https://paulrobertlloyd.com/media/2025/107/p1/1.jpg\" alt=\"View up towards a brutalist tower, its many floors highly contrasting in the evening sunlight. The building is part of Guy’s Hospital.\" class=\"u-photo\"></figure>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/107/p1/1.jpg",
          "title": "View up towards a brutalist tower, its many floors highly contrasting in the evening sunlight. The building is part of Guy’s Hospital.",
          "mime_type": "image/jpeg"
        }
      ]
    },
    {
      "id": "https://paulrobertlloyd.com/2025/104/p1/",
      "url": "https://paulrobertlloyd.com/2025/104/p1/",
      "date_published": "2025-04-14T15:36:27.482Z",
      "content_html": "<p>Diffused (sunrise).</p><figure><img src=\"https://paulrobertlloyd.com/media/2025/104/p1/1.jpg\" alt=\"Blue and orange light of an early morning sunrise diffused by patterned glass window.\" class=\"u-photo\"></figure>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/104/p1/1.jpg",
          "title": "Blue and orange light of an early morning sunrise diffused by patterned glass window.",
          "mime_type": "image/jpeg"
        }
      ]
    },
    {
      "id": "https://paulrobertlloyd.com/2025/104/n1/",
      "url": "https://paulrobertlloyd.com/2025/104/n1/",
      "date_published": "2025-04-13T23:47:01.769Z",
      "content_html": "<p>If everything is working correctly, this is the first post from my website syndicated to Bluesky via Indiekit. 🤞</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/101/a1/nerve/",
      "url": "https://paulrobertlloyd.com/2025/101/a1/nerve/",
      "date_published": "2025-04-11T09:00:00.000Z",
      "title": "Touched a nerve",
      "summary": "I put a little care into something and sent it out into the world.",
      "content_html": "<p>Like most good ideas, the idea for <a href=\"https://paulrobertlloyd.com/2025/087/a1/bored/\">my last post</a> started in the shower.</p><p>I’ve long been frustrated that, by working in and around technology, I find myself adjacent to a class of people who care so little about society. This situation has worsened since some computational mathematics was fed into a grifting machine only for everyone to talk about aye-bloody-eye like it were the second coming.</p><p>I could give you my thoughts, but that’s exactly why I ended up writing that post; I’m way beyond caring. Particularly when in most cases you could replace the initials with ‘magical thinking’ (else use a more specific but less fashionable term).</p><p>Anyway. I slept on the idea before travelling to Dundee on the Caledonian Sleeper the following evening. I love travelling by train, but sleeping isn’t something you really do on the Caledonian Sleeper; especially not for the few hours it loudly idles at Reading station or somewhere near Crewe.</p><p>Unable to rest, I began tapping away on my phone and drafted a new post. Arriving in Dundee just after 6am, and with time to kill before I could check into my hotel, I sat down in the station’s coffee shop and played around with the post further.</p><p>I tried weaving in familiar refrains that would hint at the target of my piece, but without mentioning those two letters (which I still can’t bring myself to write down). I wasn’t entirely happy with the post’s pacing or structure. Did I consider using a chatbot to help me write it? Of course! But that <em>really</em> didn’t seem appropriate, and besides, having it be slightly raw and unpolished made it more human.</p><p>Knowing that seeding doubts would leave the post lingering in my drafts folder, I hit publish, but decided not to share it any further than my RSS feed. And that’s how it stayed.</p><p>And dear reader, you know what? The web did its thing.</p><hr><p>David was <a href=\"https://mastodon.social/@dbushell@fosstodon.org/114240514035795652\">the first to share it</a> before a few others did too, often alongside a few words of despairing agreement: “<a href=\"https://bsky.app/profile/loficodes.bsky.social/post/3llt35st2ps2g\">Me too</a>”, “<a href=\"https://adders.blog/2025/03/28/discussion-of-it-is-everywhere.html\">I know how he feels</a>”, “<a href=\"https://adactio.com/links/21819\">Same</a>”.</p><p>A few days later, <a href=\"https://jesseyuen.com/\">Jesse</a> messaged me to say that people in his office were passing it around – and he lives on the other side of the world!</p><p>A week later, the post found the bottom of the barrel and was <a href=\"https://news.ycombinator.com/item?id=43580449\">posted on Hacker News</a>. This is rarely an enjoyable experience, largely thanks to its bloviated commentariat that make assumptions and wilfully misinterpret things. However on this occasion a number of comments were actually quite thoughtful. Then I started getting emails and direct messages:</p><blockquote><p>I resonated a bit too much with your last post about <em>it</em>. The projects I work on are both in defiance of it, both in the written, and in the visual arts space… and yet it’s so hard to escape it on both. I’ve had to police <em>it</em> on my platform and it’s exhausting.</p></blockquote><p>And:</p><blockquote><p>Bored of it.<br>I am too.<br>It makes me cry.<br>But everyone loves it, so I cry on the inside.</p><p>Thanks for this! It’s been a long time since I read a poem.</p></blockquote><p>Also:</p><blockquote><p><cite>Bored of It</cite> was the first piece of art about the current It that’s connected with me. Thank you a million for writing it; I really needed to read something of the sort.</p></blockquote><p>Poem? Piece of art!? Blimey.</p><p>This week, the post reached the sullied depths of LinkedIn:</p><blockquote><p>This post inspired by all the action figures in my feed, new buttons appearing in my phone apps, and every nudge that encourages me to think less and automate more of my creativity, joy, and humanity.</p></blockquote><p>I have no idea how many people have read my post – or poem – but I don’t need to. Especially on this occasion when the reaction has been so direct, pained and heartfelt. Maybe those sharing my exhaustion are the same age as me or similarly pessimistic. Still, there’s a mood among people who somehow feel ignored by the wider discussion and unmitigated hype.</p><p>So yes, while I am bored of <em>it</em>, I remain enthralled by the power of boring technologies like hyperlinks, email and RSS. I’m also glad that I’ve been able to demonstrate – if only to myself – that you don’t need to prostitute yourself to social networks, create large advertising hoardings to make a post stand out or titillate people with lead-ins before a ‘more’ link.</p><p>Just put a little care into something, send it out into the world and let it find an audience. Aye-bloody-eye be damned.</p><hr><p><a href=\"mailto:reply@paulrobertlloyd.com?subject=Reply:%20Touched%20a%20nerve\">Reply via email</a></p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/099/n1/",
      "url": "https://paulrobertlloyd.com/2025/099/n1/",
      "date_published": "2025-04-09T21:13:36.206Z",
      "content_html": "<p>Just watched B. J. Novak’s directorial debut, <a href=\"https://www.imdb.com/title/tt11976532/\">Vengeance</a> (2022) and oh boy, it’s a hoot. A hearty recommendation from me.</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/087/a1/bored/",
      "url": "https://paulrobertlloyd.com/2025/087/a1/bored/",
      "date_published": "2025-03-28T08:00:00.000Z",
      "title": "Bored of it",
      "summary": "Please, make it stop.",
      "content_html": "<p>I’m bored of it.</p><p>The pervasive, all encompassing nature of it.</p><p>The inevitable, dehumanising consequence of it.</p><p>That there’s a ‘there’ there to it.</p><p>Rubbish in and rubbish out of it.</p><p>Nobody asked for it, and nobody wants it.</p><p>The best minds of my generation thinking about how to make people use it.</p><p>That you should just accept it.</p><p>A thousand no’s, but ‘yes’ when shareholders start clamouring for it.</p><p>Policy-makers pandering to it.</p><p>A decommissioned nuclear power station required to power it.</p><p>Not to mention millions of gallons of water required to cool it.</p><p>Every article glorifying it.</p><p>Every article vilifying it.</p><p>Every pub conversation winding up talking about it.</p><p>People incessantly telling you how <em>they</em> use it.</p><p>I feel dirty using it.</p><p>You know what I’m talking about, even though I’ve not mentioned it.</p><p>And that’s why I’m bored of it.</p><hr><p><a href=\"mailto:reply@paulrobertlloyd.com?subject=Reply:%20Bored%20of%20it\">Reply via email</a></p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/085/p1/",
      "url": "https://paulrobertlloyd.com/2025/085/p1/",
      "date_published": "2025-03-26T20:59:52.043Z",
      "content_html": "<p>If you’re wondering why you can’t find any pineapples in Brighton, thank Fatto a Mano, where for a limited time you can exchange a pineapple for their Bella Disgrazia pizza. Fortunately they also accept tinned chunks!</p><figure><img src=\"https://paulrobertlloyd.com/media/2025/085/p1/1.jpg\" alt=\"Close up of a pineapple pizza, with a tin of pineapple chunks in the background.\" class=\"u-photo\"></figure>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/085/p1/1.jpg",
          "title": "Close up of a pineapple pizza, with a tin of pineapple chunks in the background.",
          "mime_type": "image/jpeg"
        }
      ]
    }
  ]
}