Blog
Technical notes on web development, DevOps, and AI integration.
124 articles
- 04:29frontend
Related Articles Without a Waterfall
What commit 70a43a9 taught me about related articles, parallel fetching, a CSS timeline, and a file-tree TOC in a Next.js blog.
#nextjs#react#frontend - 02:39frontend
Why My Blog List Renders Stack Icons on the Server
Runtime Iconify requests made my blog list icons appear late. I replaced them with server-rendered SVG and fallback icon sets.
#nextjs#react#frontend - 01:49ai
Building an Article Research Stack with AI Agent Skills
How to build an article research workflow on AI agent skills: three core capabilities, editorial patterns to adopt, and a 2026 security audit.
#seo#automation#security - 01:00frontend
My Accent Color Looked Great in Dark Mode, Then Died in Light
Orange looked great in dark mode but washed out in light. A split accent, emerald-600 in light and mint in dark, clears the WCAG contrast bar in both.
#tailwind#css#frontend - 00:57seo
Wiring the avoid-ai-writing Skill into the Article Pipeline
How to wire the avoid-ai-writing skill into an article pipeline as a detect-only gate, plus a lesson from the Stanford study on AI-detector bias.
#seo#automation - 00:48frontend
Flat Gray Tag Chips Never Invited a Click
Flat gray tag chips all carry equal weight. A 10% primary tint plus a hairline inset ring makes them feel alive and clickable again.
#tailwind#css#frontend - 00:38frontend
When I Fixed My Blog Sidebar Headings That Read Like a Whisper
Sidebar headings at 11px uppercase dim gray were the hardest text to read. Switching to 13px bold normal-case plus icons raised contrast and fixed asymmetry.
#tailwind#css#frontend - 22:34frontend
The 1px Sidebar Wobble That Ended My Chip Borders
Swapping a chip border for a background nudged the whole row by 1px. The fix: an inset ring, because box-shadow never affects layout.
#tailwind#css#frontend - 20:53devops
Sudo That Survives Every Container Recreate
The upstream image ships no sudo and /etc is ephemeral. A tiny entrypoint override in compose reinstalls passwordless sudo on every boot.
#docker#devops#security