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/299/p1/",
      "url": "https://paulrobertlloyd.com/2025/299/p1/",
      "date_published": "2025-10-26T23:50:00.000Z",
      "content_html": "<p>I absolutely bloody love Haim, and they didn’t disappoint this evening.</p><ul><li><img src=\"https://paulrobertlloyd.com/media/2025/299/p1/1.jpg\" alt=\"Alana, Danielle and Este Haim projected in black and white.\" class=\"u-photo\"></li><li><img src=\"https://paulrobertlloyd.com/media/2025/299/p1/2.jpg\" alt=\"Este Haim singing below a sign in red text that says ‘Cry’.\" class=\"u-photo\"></li><li><img src=\"https://paulrobertlloyd.com/media/2025/299/p1/3.jpg\" alt=\"Alana, Danielle and Este Haim playing their guitars below a sign in red text that says ‘I quit lying to myself’.\" class=\"u-photo\"></li><li><img src=\"https://paulrobertlloyd.com/media/2025/299/p1/4.jpg\" alt=\"Alana, Danielle and Este Haim druming on stage, projected on a screen behind them.\" class=\"u-photo\"></li></ul>",
      "attachments": [
        {
          "url": "https://paulrobertlloyd.com/media/2025/299/p1/1.jpg",
          "title": "Alana, Danielle and Este Haim projected in black and white.",
          "mime_type": "image/jpeg"
        },
        {
          "url": "https://paulrobertlloyd.com/media/2025/299/p1/2.jpg",
          "title": "Este Haim singing below a sign in red text that says ‘Cry’.",
          "mime_type": "image/jpeg"
        },
        {
          "url": "https://paulrobertlloyd.com/media/2025/299/p1/3.jpg",
          "title": "Alana, Danielle and Este Haim playing their guitars below a sign in red text that says ‘I quit lying to myself’.",
          "mime_type": "image/jpeg"
        },
        {
          "url": "https://paulrobertlloyd.com/media/2025/299/p1/4.jpg",
          "title": "Alana, Danielle and Este Haim druming on stage, projected on a screen behind them.",
          "mime_type": "image/jpeg"
        }
      ]
    },
    {
      "id": "https://paulrobertlloyd.com/2025/292/a1/paris_lyon_sitges_barcelona/",
      "url": "https://paulrobertlloyd.com/2025/292/a1/paris_lyon_sitges_barcelona/",
      "date_published": "2025-10-19T21:00:00.000Z",
      "title": "Last of the summer shine",
      "summary": "Attempting to avoid tourist treadmills in France and Spain.",
      "content_html": "<p>I’ve gotten out of the habit of writing about my travels. Not sure why, maybe it’s a consequence of revisiting favourite cities or an increasing familiarity with Europe in general, and everything feeling less remarkable.</p><p>Anyway, earlier this month I took myself to Sitges – via Paris and Lyon – to extend my summer, and thought I’d share a few photos I took, alongside some light commentary.</p><h2 id=\"paris\">Paris</h2><p>Given previous experiences, I try to avoid the French capital when venturing across Europe. If I’m travelling south, I’ll head to Lyon instead.</p><p>Thanks to train chaos this side of the Channel, I had to resign myself to spending a night in Paris. I found a predictably small hotel in the <em lang=\"fr\">Saint-Paul</em> district, close to <em lang=\"fr\">Gare de Lyon</em> and also <em lang=\"fr\">Notre Dame</em>. In this moment of mild desperation, I inadvertently found <a href=\"https://www.letempledejeanne.com/en/\"><em lang=\"fr\">Temple de Jeanne</em></a>, a hotel with incredibly friendly and courteous staff. <em lang=\"fr\">Ça alors!</em></p><p>The next morning, before catching my rescheduled train to Lyon, I chanced finding a short queue outside the rebuilt and rejuvenated Notre Dame Cathedral. After 20 minutes, I was in.</p><ul><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/paris_notre_dame_1.jpg\" alt=\"Light shining through stained glass windows adding spots of colour to a nearby wall.\"></figure></li><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/paris_notre_dame_2.jpg\" alt=\"A bas-relief sculpture of a man praying situated below a row of stained glass windows.\"></figure></li><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/paris_notre_dame_3.jpg\" alt=\"Highly decorated walls below high stone arches.\"></figure></li></ul><p>Much like the Sistine Chapel, hoards of tourists prevented any possibility of me being awe struck. Here too are frequent requests for visitors to be silent, though given as automated announcements, the illusion of this being a place of solemnity soon vanished.</p><h2 id=\"lyon\">Lyon</h2><p>My time in Lyon truncated, I reacquainted myself with each part of this beautiful city, split into three by the rivers <em lang=\"fr\">Rhône</em> and <em lang=\"fr\">Saône</em>.</p><figure class=\"align-bleed\"><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/lyon_fontaine_bartholdi.jpg\" alt=\"A water fountain featuring a woman riding atop 4 galloping horses.\"><figcaption>Fontaine Bartholdi in Place de Terreaux.</figcaption></figure><p>Arriving west of the city in <em lang=\"fr\">La Part-Dieu</em>, I got to see the refurbished station concourse I saw glimpses of two years earlier.</p><p>Over the road lies the sprawling white jigsaw-clad Westfield shopping centre, with both the pencil-like <em lang=\"fr\">Tour Part-Dieu</em> and slender <em lang=\"fr\">Tour Oxygène</em> towers reaching above nearby.</p><p>Nestled among buildings in this area lie fine examples of brutalism (not pictured). The shell-shaped <a href=\"https://hiddenarchitecture.net/maurice-ravel-auditorium/\">Maurice Ravel auditorium</a> is a particular highlight, but on this visit the rigid lines of the <em lang=\"fr\">100 Cours Lafayette</em> apartment blocks caught my attention.</p><ul><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/lyon_rue_paul_chenavard.jpg\" alt=\"Sunlight picks out the windows on a street with a cyclist in the shadows.\"></figure></li><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/lyon_lamppost.jpg\" alt=\"A man sits near a lamppost, with large grey doors to a building behind both.\"></figure></li><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/lyon_saint_nizier.jpg\" alt=\"A decorated church spire bathed in sunlight, with a cyclist in the foreground.\"></figure></li><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/lyon_clock.jpg\" alt=\"A modern clock outside an older building featuring rows of windows.\"></figure></li></ul><p>Crossing a river in Lyon can transport you back a century or two. Crossing the <em lang=\"fr\">Rhône</em>, towers and concrete carbuncles give way to low-rise terraces and fine gothic buildings such as the <em lang=\"fr\">Hotel de Ville</em> and <em lang=\"fr\">Opéra Nouvel</em>. The large tree-lined <em lang=\"fr\">Place Bellecour</em> underlines the formality of this area.</p><p>Crossing the <em lang=\"fr\">Saône</em>, I retreated further into history. Although the neo-classical <em lang=\"fr\">Palais de juctice historique de Lyon</em> faces the river, it is here that you can find <a href=\"https://en.wikipedia.org/wiki/Lyon_Cathedral\">Lyon’s medieval cathedral</a> and narrow cobble-stoned streets.</p><p>I didn’t climb (or take the funicular railway) up the hill this time, but if I had, I would have ventured further back and found the remains of a <a href=\"https://en.wikipedia.org/wiki/Ancient_Theatre_of_Fourvi%C3%A8re\">Roman amphitheatre</a>.</p><figure class=\"align-bleed\"><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/lyon_palais_de_juctice.jpg\" alt=\"Looking up at 8 neo-classical columns, with the French flag flying above them.\"><figcaption>Palais de juctice historique de Lyon.</figcaption></figure><h2 id=\"sitges\">Sitges</h2><p>My eventual destination was <em lang=\"es\">Sitges</em>, a little south of Barcelona. I picked this city for its beach and distance from major tourist attractions to make sure I had a proper holiday where I had little choice but to relax.</p><p>Of all its tourist attractions, I had hoped to visit the <a href=\"https://museusdesitges.cat/en/museum/palau-de-maricel/palau-de-maricel\"><em lang=\"es\">Palau de Maricel</em></a> but as this opens on select Sundays, I had to console myself with a walk around the neighbouring museum instead.</p><p>Not much to show for my time here – the beach and hotel pool were both lovely, thanks.</p><ul><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/sitges_street.jpg\" alt=\"A narrow street with some signage on buildings and seats outside restaurants.\"></figure></li><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/sitges_st_batholomew_thecla.jpg\" alt=\"Last afternoon sun illuminates a medieval church tower.\"></figure></li><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/sitges_sunset.jpg\" alt=\"Sunset with people as silhouettes in the foreground.\"></figure></li></ul><h2 id=\"barcelona\">Barcelona</h2><p>Towards the end of my trip, I took the train into Barcelona for some architectural tourism. On the first day I visited the Gaudí-designed <em lang=\"es\">Park Güell</em> (once I could get past the <a href=\"https://paulrobertlloyd.com/2025/279/n1/\">woeful digital-only ticketing system</a>). Like <em lang=\"fr\">Notre Dame</em>, this is a beautiful location spoilt by an influx of visitors.</p><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/barcelona_graffiti.jpg\" alt=\"A message sprayed on an outside wall near says ‘Tourists go home’.\"></figure><p>Approaching the park I spotted graffiti with the message ‘Tourists go home’ and I can understand why. I’ll try and resist the temptation to be an old man moaning about people preening and posing for Instagram. But tourism feels increasingly broken, less about seeing different places, but about being seen at those places. <em lang=\"es\">Park Güell</em> (and its Dragon Stairway) is one such example.</p><ul><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/barcelona_park_guell.jpg\" alt=\"Blue, white and black tiled spire, a cityscape in the distance.\"></figure></li><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/barcelona_national_art_museum.jpg\" alt=\"Classical tower and dome with details picked out by low sunlight.\"></figure></li><li><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/barcelona_calatrava.jpg\" alt=\"Silhouette of a tall, thin and sculptural communication tower at dusk.\"></figure></li></ul><p>On the second day I headed to <em lang=\"es\">Montjuïc</em> to see the <a href=\"https://en.wikipedia.org/wiki/Barcelona_Pavilion\">Mies Van Der Rohe Pavillon</a>, a replica of a pavilion originally built as the German Pavilion for the 1929 International Exposition. This is not a large building, small enough to question the €9 admission price.</p><p>I then found myself retreading the steps I had taken 16 years ago as I climbed <em lang=\"es\">Montjuïc</em> and strolled around the <em lang=\"es\">Anella Olímpica</em>, location of the 1992 Olympic Games. Three decades on, this area is showing its age, and could do with a bit of renovation. <a href=\"https://en.wikipedia.org/wiki/Montju%C3%AFc_Communications_Tower\">Calatrava’s distinctive communications tower</a> is in desperate need of a lick of paint.</p><h2 id=\"paris_part_deux\">Paris (part deux)</h2><p>I was able to get from Sitges to Brighton in one day, though it did mean leaving the hotel at 7am. I’d left myself some wiggle room between arriving in Paris and getting the Eurostar, so after checking my luggage into a locker at <em lang=\"fr\">Gare du Nord</em>, I wondered around the neighbourhood.</p><p>I soon stumbled upon <em lang=\"fr\">Canal Saint-Martin</em>, a little slice of Amsterdam in Paris, the city continuing to work its magic and slowly win me over to its charms.</p><figure><img src=\"https://paulrobertlloyd.com/media/2025/292/a1/paris_canal_saint_martin.jpg\" alt=\"A four-storey apartment building reflected in the canal.\"><figcaption>Reflection in Canal Saint-Martin.</figcaption></figure><hr><p><a href=\"mailto:reply@paulrobertlloyd.com?subject=Reply:%20Last%20of%20the%20summer%20shine\">Reply via email</a></p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/291/n1/",
      "url": "https://paulrobertlloyd.com/2025/291/n1/",
      "date_published": "2025-10-18T22:06:19.653Z",
      "content_html": "<p>Enjoyed drinks and a curry in Birmingham this evening alongside 6 familiar faces to celebrate an astonishing anniversary; 20 years ago this month, 4 web developers met in Walsall, and <a href=\"https://lloydyweb.paulrobertlloyd.com/blog/2005/10/the_we_in_web\">the Multipack was born</a>.</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/290/n1/",
      "url": "https://paulrobertlloyd.com/2025/290/n1/",
      "date_published": "2025-10-17T18:06:45.589Z",
      "content_html": "<p>The concourse at Euston station is now a festival of Rail Alphabet 2. Yet move beyond that and… well, God knows what font has been chosen for the gantries above the approaches to platforms (which themselves still use NR Brunel). One day there might be some visual coherence on the railway, but today is not that day.</p>"
    },
    {
      "id": "https://paulrobertlloyd.com/2025/279/n1/",
      "url": "https://paulrobertlloyd.com/2025/279/n1/",
      "date_published": "2025-10-06T14:01:15.048Z",
      "content_html": "<p>Trying to buy tickets for a major tourist attraction in Barcelona. Three separate attempts fail to complete (session expired). Go to the attraction hoping to buy tickets in person; online purchases only. When speak to an official, tells me to use Google Chrome (I’m using an iPhone, which is a whole other issue but needless to say, this is not an option).</p><p>Just a small, insignificant example of how this century has rapidly turned into a techno-centric idiocracy.</p>"
    },
    {
      "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"
        }
      ]
    }
  ]
}