Blog
Thoughts on web development, tools, and things I'm learning.
Chrome 148: Container Queries Without Types, AI in the Browser, and SharedWorker's Comeback
Chrome 148 ships bare-name container queries, the new revert-rule keyword for CSS conditionals, on-device AI with the Prompt API, SharedWorker's return to Android, PWA manifest localization, and a smarter Web Authentication Immediate UI mode. Plus: loading=lazy for video and audio, text-decoration-skip-ink: all, and drag-and-drop spec fixes.
How I Learned to Stop Worrying and Love SVG: A Hands-On Guide
A practical intro to SVG for designers and developers: viewBox explained without jargon, the only 3 shapes you actually need, path commands demystified, and the stroke-dasharray trick that impresses everyone.
Firefox 150: Smarter Images, Richer CSS, and a Voice for Screen Readers
Explore what's new in Firefox 150 for web developers: HTML sizes='auto' for lazy-loaded responsive images, CSS color-mix() with unlimited colors, light-dark() with images, media playback pseudo-classes, animation-range for scroll-driven animations, revert-rule keyword, and the developer-friendly ariaNotify() API for accessibility.
Mastering Nginx Log Analysis: 10 Essential CLI Commands for Developers
Stop guessing what's wrong with your server. Learn 10 practical command-line techniques to analyze Nginx access logs, find slow endpoints, block bad bots, and detect DDoS patterns — all without installing third-party tools.
Chrome 147: Widget Morphing, Smart Contrast, and Rust Under the Hood
Chrome 147 brings scoped View Transitions for individual elements, the native CSS contrast-color() function for automatic accessibility, and the long-awaited Event.pseudoTarget property for detecting clicks on pseudo-elements. Plus: border-shape, honest border-width computed values, and a Rust-based XML parser under the hood.
Git for Beginners: How I Stopped Breaking Into a Cold Sweat at the Word "Merge Conflict"
A plain-language intro to Git for new developers: what version control is, how to install it, and the commands you need to commit, branch, and collaborate without the jargon.