Empty CMS hours must not clear Google Maps
Sander Korf4 min read
Retail CMS hours sync to Google Maps on publish. Empty regularHours in a PATCH body cleared live weekday hours because updateMask treats blanks as deletes.
Read more
Writing
Next.js App Router notes from production: Suspense, MDX, next-intl, and CLS. The trap, then the reusable fix.
Sander Korf4 min read
Retail CMS hours sync to Google Maps on publish. Empty regularHours in a PATCH body cleared live weekday hours because updateMask treats blanks as deletes.
Read more
Sander Korf4 min read
Logged-in shoppers saw an empty My orders screen while older rows still existed. hasMore followed filtered rows, not the raw API page.
Read more
Sander Korf3 min read
Card declines sent shoppers to /undefined after HTML sanitization stripped data-failed-return-url. Contract-test live payment snippets, not doc examples.
Read more
Sander Korf4 min read
PDP packshots looked soft on phones while cards stayed sharp. sizes asked for retina pixels but srcset stopped at 1000w. I matched candidates and one builder.
Read more
Sander Korf3 min read
Fashion liveshow soft nav painted an empty shell. Instant Nav locks static HTML; next/dynamic with ssr false and cookie awaits blocked landmarks e2e needed.
Read more
Sander Korf4 min read
On a fashion storefront mega menu, the dim layer snapped off when Base UI cleared the menu value at the start of the exit animation, not the end.
Read more
Sander Korf4 min read
Homepage prerender on a Centra Next.js build failed with 'Filling a cache during prerender timed out'. Nested use cache remote boundaries caused the hang.
Read more
Sander Korf4 min read
Minified React error #441 broke soft navigation in a Next.js app with Cache Components. Here is what caused it in production and the fix that stopped it.
Read more
Sander Korf3 min read
Checkout country dropdowns rebuilt after hydration and emptied a test fill. Precompute localized names on the server before the form paints.
Read more
Sander Korf4 min read
Shared Next config had offline detection always on, so local dev inherited HEAD polls meant for deploy. I now derive the flag from Vercel env at config time.
Read more
Sander Korf4 min read
Below-the-fold blocks on my Next.js site faded in with a client observer. Scroll timelines do the fade now, and older browsers just show the content.
Read more
Sander Korf4 min read
Crawlers never ran my blog JavaScript, so they got a shell with no article. I flattened the static pages and now test the HTML with scripts turned off.
Read more
Sander Korf3 min read
I awaited a cached translation for a skip link and the Shopify homepage jumped. That one string now renders inside the section that already waits.
Read more
Sander Korf3 min read
Empty loading slots made my CMS blocks jump in late and wrecked layout stability. I now reserve height per section type and watch P95, not P75.
Read more
Sander Korf3 min read
Dutch shoppers got English order emails from Klaviyo. I now pick the storefront language on the server before the event leaves, not in a default template.
Read more
Writing
Next.js App Router notes from production: Suspense, MDX, next-intl, and CLS. The trap, then the reusable fix.
Sander Korf4 min read
Retail CMS hours sync to Google Maps on publish. Empty regularHours in a PATCH body cleared live weekday hours because updateMask treats blanks as deletes.
Read more
Sander Korf4 min read
Logged-in shoppers saw an empty My orders screen while older rows still existed. hasMore followed filtered rows, not the raw API page.
Read more
Sander Korf3 min read
Card declines sent shoppers to /undefined after HTML sanitization stripped data-failed-return-url. Contract-test live payment snippets, not doc examples.
Read more
Sander Korf4 min read
PDP packshots looked soft on phones while cards stayed sharp. sizes asked for retina pixels but srcset stopped at 1000w. I matched candidates and one builder.
Read more
Sander Korf3 min read
Fashion liveshow soft nav painted an empty shell. Instant Nav locks static HTML; next/dynamic with ssr false and cookie awaits blocked landmarks e2e needed.
Read more
Sander Korf4 min read
On a fashion storefront mega menu, the dim layer snapped off when Base UI cleared the menu value at the start of the exit animation, not the end.
Read more
Sander Korf4 min read
Homepage prerender on a Centra Next.js build failed with 'Filling a cache during prerender timed out'. Nested use cache remote boundaries caused the hang.
Read more
Sander Korf4 min read
Minified React error #441 broke soft navigation in a Next.js app with Cache Components. Here is what caused it in production and the fix that stopped it.
Read more
Sander Korf3 min read
Checkout country dropdowns rebuilt after hydration and emptied a test fill. Precompute localized names on the server before the form paints.
Read more
Sander Korf4 min read
Shared Next config had offline detection always on, so local dev inherited HEAD polls meant for deploy. I now derive the flag from Vercel env at config time.
Read more
Sander Korf4 min read
Below-the-fold blocks on my Next.js site faded in with a client observer. Scroll timelines do the fade now, and older browsers just show the content.
Read more
Sander Korf4 min read
Crawlers never ran my blog JavaScript, so they got a shell with no article. I flattened the static pages and now test the HTML with scripts turned off.
Read more
Sander Korf3 min read
I awaited a cached translation for a skip link and the Shopify homepage jumped. That one string now renders inside the section that already waits.
Read more
Sander Korf3 min read
Empty loading slots made my CMS blocks jump in late and wrecked layout stability. I now reserve height per section type and watch P95, not P75.
Read more
Sander Korf3 min read
Dutch shoppers got English order emails from Klaviyo. I now pick the storefront language on the server before the event leaves, not in a default template.
Read more