This round is all about the ferni.ai website. Four pull requests landed, each one in the site's own code, and together they make pages lighter, quicker to paint and easier to use. The numbers below come from Lighthouse and axe runs against a local production build, as described in each PR.
Blog images
#1592 changed how blog images are served. Index cards and post heroes used to be 2016 by 1134 pixel PNGs, shown at a fraction of that size. They now go through an @11ty/eleventy-img shortcode that renders a <picture> with AVIF, WebP and JPEG at several widths, with srcset, sizes, width and height set. The featured card and the post hero load eagerly with fetchpriority="high", and grid cards stay lazy. Posts also get a 1200 by 630 JPEG for og:image.
The blog index went from 12.01 MB to 0.38 MB. The build now copies only the generated image a page uses, so the built _site went from 698 MB to 166 MB.
First paint
#1582 stopped scripts, side stylesheets and fonts from blocking first paint on the marketing pages. The 22 classic scripts on those pages now load with defer, in the same order. Stylesheets that don't style the hero load without blocking, and the Google Fonts stylesheet is preloaded and swapped in. Lighthouse mobile counted 37 render-blocking resources before and 7 after, and total blocking time on the home page went from 248 ms to 29 ms.
Accessibility
#1589 fixed the accessibility findings from our website audit: low-contrast text, heading-order skips, content outside landmarks, an empty table header and a weak focus ring on the nav button. While the cookie banner shows, the chat pill now moves above it, so it no longer covers the Accept button. Across the four pages checked, axe violation nodes on desktop went from 56 to 26, and the rest come from rules outside that PR.
Icons, previews and the sitemap
#1576 fixed icons and link previews. The build never copied src/images/, so favicons, logos, manifest icons and the default preview image were missing on many pages. Every one of those references on the main site now resolves. The sitemap went from 102 URLs to 65 real pages, every lastmod is an ISO date, and hreflang is emitted only on the home page, the only page with translations.