Notes from the workbench.
Essays on Vue, Nuxt, Shopware, performance, and the parts of web development that aren't in the docs.

Making Your Website Readable for AI Agents — What Actually Matters
llms.txt, agents.md, ai-catalog.json, AI-bot rules in robots.txt. I shipped all of it on marcofaul.de, then audited it and found four of my own files broken or missing. What the 2026 data says about these files, what really decides whether AI tools can read your site, and a checklist to verify it.
Read the article10 articles

531 Requests on a Homepage — Cutting a Headless Storefront Down to 101
A headless Shopware 6 + Nuxt storefront loaded 531 requests on its mobile homepage and scored 56 in Lighthouse. After one batch of changes on production it was 101 requests and 88. How I measured, where the weight came from, what I reverted, and a checklist for your own storefront.

BFSG for Online Shops — What an Accessibility Audit Actually Finds
The BFSG has applied to B2C online shops since 28 June 2025. What an accessibility audit on a real headless Shopware storefront turned up, which fixes a developer can ship right away, which ones need design sign-off, and a checklist for your own shop.

Migrating a JTL-Shop to Shopify: What to Import and What to Skip
There is no one-click connector from JTL-Shop to Shopify. Here is how I planned a real migration - what I imported, what I deliberately did not, how scripts verify the result, how to stop notification mails during an order import, and the launch checklist.

Scheduled AI Agents — What Weeks of Unattended Runs Teach You
Notes from running scheduled, unattended AI agents for a few weeks — a daily upstream-sync job, a research agent that publishes a page, and review-bot tuning. Guards, state files, failing publish steps, and where it breaks.

Proving Where Data Stops — How I Debug Multi-System Integrations
A shop field that never updates, a CDN that can't find its images, a sync that "randomly" skips entries. A method for multi-system integrations — instrument every hop, read the boundary evidence, hand over proof instead of opinions — with five real cases from the last weeks.

Personalized Products and Packaging Fees in Shopify
How I modeled printed cups with tiered prices and a logo upload in Shopify, and the options I weighed for passing a per-item packaging licence fee through to customers — with the pitfalls I hit.

Shareable Product Configurator in Shopware 6 — State in the URL
How I built a product configurator for a Shopware 6 storefront where the whole state lives in a ?cfg= URL parameter — what to serialize, how the PDF export works, what breaks, and the trade-offs of letting users edit a shared configuration.

Purging Cloudflare's Cache Automatically on Every Netlify Deploy
This site sits on Netlify behind Cloudflare, and after every deploy Cloudflare kept serving stale HTML. Here's why the Netlify-CDN-Cache-Control header was a dead end for static files, and the 26-line build plugin that purges Cloudflare's edge cache the moment a deploy goes live — including the CJS/ESM gotcha that broke the first build.

Debugging LCP on a Real Site - A Case Study on marcofaul.de
A first-person walkthrough of fixing LCP on this very site - a JS reveal animation gating first paint, a font preload that held rendering hostage, a 5.8s image CDN cold start, and the measurement noise that almost sent me chasing ghosts.