The Journey Back to CSS: Why Modern Animations Don't Need JavaScript

Once upon a web, we didn’t debate between Flexbox or Grid — we debated how many nested <table> tags were too many. Animations? Hope your users had Flash. Styling? Inline CSS was your best friend. It was messy, creative, and oddly charming — but also deeply limited. Then Everything Changed Let’s rewind to understand how we got here. Back in the early 2000s, CSS was… let’s be honest, pretty basic. We were still building layouts like this: ...

July 28, 2025 · 5 min · me

Adding the Three-Task Focus Rule (And Making It Feel Good)

This is the second post of Building a Minimalist Task Manager series part 1 - Setting Up the Bare-Bones Task Manager with HTML, CSS & JS part 3 - Making It Stick: Adding localStorage and Task Persistence part 4 - The Finishing Touches: Keyboard Shortcuts, Task Editing & Delightful UX Welcome back to our vanilla JavaScript task manager series! In the last post, we built a solid foundation with basic add/delete functionality. Today, we’re adding the star of the show: the three-task limit that gives our app its personality and purpose. ...

May 10, 2025 · 7 min · me

Setting Up the Bare-Bones Task Manager with HTML, CSS & JS

This is the first post of Building a Minimalist Task Manager series part 2 - Adding the Three-Task Focus Rule (And Making It Feel Good) part 3 - Making It Stick: Adding localStorage and Task Persistence part 4 - The Finishing Touches: Keyboard Shortcuts, Task Editing & Delightful UX Welcome to the first post in our Building a Minimalist Task Manager series! If you’re tired of reaching for React every time you want to build something interactive, or if you’re just starting your JavaScript journey and want to understand how web apps actually work under the hood, you’re in the right place. ...

May 3, 2025 · 5 min · me

Stop Blaming JavaScript for Your CSS Incompetence

Unpopular Opinion Alert: Your UI doesn’t suck because JavaScript is hard. It sucks because you never bothered to learn CSS properly. Picture this: You’re building a simple layout, and things aren’t aligning quite right. Instead of figuring out why your flexbox isn’t working, you reach for JavaScript. “I’ll just calculate the height dynamically,” you tell yourself. “I’ll use getBoundingClientRect() to position this element.” Sound familiar? Yeah, I thought so. Here’s the thing: Flexbox isn’t a yoga pose. Learn it. ...

July 1, 2024 · 8 min · me