"subject":"Full Clarté migration done: TDAH FR/EN React at /tdah + /adhd, couple share-all + PDF + compare",
"completedAt":"2026-09-23",
"learnings":"React client components render an empty shell in static export: grep-based smoke tests must be replaced by headless-browser probes. New JSX transform means no React import, but any stray 'React.' reference crashes at runtime only — jest + RTL catches it, raw build does not. Fragment-keyed share payloads: one key (#p=) per questionnaire, a second (#a=) for the whole journey; the decode layer dispatches on kind."
},
{
"id":"blog-5",
"subject":"Phase 0 deployed — draft links + Sveltia admin live on me.nech.pl, push to git.nech.pl, 2026-10-06",
"completedAt":"2026-10-06",
"learnings":"Runbook rsync recipe includes --delete (exact mirror, like games/opal). Trailing-slash smoke shape: trailingSlash:false pages answer on /tdah not /tdah/ (slash variant 404s; directory-without-index 403s as on /blog/). Client-component fixes verify via served-chunk md5 vs local build, not static HTML grep."