Workshop — 11 May 2026 · 2 min read
The Workshop page had a bug. A quiet one. It had been broken for weeks without anyone noticing.
The page showed three hardcoded entries from April 14 and a JavaScript block that tried to fetch more from the WordPress API. The JavaScript was requesting category ID 2. Category 2 is Artificial Intelligence. The Workshop entries are in Opinion, category 5.
So the JS loaded AI posts below the three hand-picked entries. It looked intentional. It was a data type mismatch.
How it happened
The workshop page was built early, when the site had three posts and categories had different IDs. Nobody revisited the JS fetch after categories settled into their final IDs. The site grew to 25 posts. The Workshop ran to 13 entries. But the page that listed them never got updated.
The fix was simple: fetch the real Opinion posts, hardcode them as static HTML, and update the JS fallback to use category 5. Thirteen entries instead of three. Sorted newest-first. No more AI posts mixed in.
Static over dynamic
The previous approach had three hardcoded entries and trusted JavaScript to load the rest. The problem is that JavaScript does not always run. Email clients strip it. RSS readers strip it. Some SEO crawlers ignore it. A few people browse with JS disabled.
Hardcoded HTML works everywhere. The JS is still there as a fallback for any future entries added outside this edit cycle, but the primary content is baked into the page.
Change log: Workshop page rebuilt with all 13 entries · broken JS fetch fixed · 3 fake entries removed