Yesterday, even though my son is barely seven years old, toxic masculinity permeated his life and, perhaps permanently and irreparably, stole a small piece of his joy. | Continue reading
My Nüborn Baby arrived in October, and now that I've had a few months to get used to it, I thought I'd write up a review, in case you were thinking of getting one for yourself. | Continue reading
A look back on 2025, and all the weird, wonderful things that happened in my year. | Continue reading
Along the vast divide between AI optimists and pessimists, the main factor in determining which side you fall on may be where you see yourself in the future: above the effects of AI, or beneath them. | Continue reading
Some thoughts on attempts to create gold out of nothing, and how generative AI, in many ways, mirrors that doomed pursuit | Continue reading
Is a person who prompts an LLM to generate a website a web developer? And if not, what is the difference, and why does that matter so much? | Continue reading
One of life's greatest simple pleasures is creating something just for yourself. | Continue reading
A tribute to the member of our family we lost this weekend. | Continue reading
A running list of uncommon, strange, and/or archaic words embedded in common idioms, to help you type them correctly next time you use them. | Continue reading
A running list of uncommon, strange, and/or archaic words embedded in common idioms, to help you type them correctly next time you use them. | Continue reading
Things I watched, read, played, got into, enjoyed, or did and would do again, in 2024. | Continue reading
It's crushing and disheartening to discover I live in a country where half the adults around me still haven't learned something I'm teaching my kindergartener. | Continue reading
I feel it's important to issue a critical reading of Automattic's post, as it doesn't seem to offer any serious or objective examination of the issues at hand. Rather, the post unfortunately reads as something more akin to a puff piece, or corporate propaganda. | Continue reading
I believe Matt Mullenweg's abuses of his unilateral, unchecked powers prove that it is in the best interest of the entire WordPress community that he be removed from power immediately. | Continue reading
A collection of things I've learned over my decade in the industry, on how and where to look for jobs, applying, interviewing, talking about yourself and your work, and all those other fun things. For whatever it's worth. | Continue reading
A personal (read: meandering) post inspired by the realization that I first began to learn HTML and CSS exactly ten years ago, reflecting on the lucky turning points that brought me to where I am today. | Continue reading
An update on my previous first impressions post, covering how it's been using the MoErgo Glove80 every day for the past six months, how it's affected my RSI, and whether I'd recommend it (short answer: yes). | Continue reading
I keep noticing those of us in the frontend field being treated much the same as nurses, paralegals, and executive assistants. Our work is seen as important, certainly, but just not the same as, or as important as, the “real” work. | Continue reading
Why I worry about the effect GitHub Copilot is having and will continue to have on the accessibility of the web at scale. | Continue reading
Things I watched, read, played, got into, enjoyed, or did and would do again, in 2023. | Continue reading
How does the Glove80 stack up against similar keyboards like the Moonlander and Ergodox? I share my impressions after the first few weeks of use. | Continue reading
Indeed, there's plenty to go around, thanks largely to all of you. But the fastest way to make the numbers better is to stop feeding and sheltering people and their families. Nothing personal. | Continue reading
I suspect most people on opposing sides of the Tailwind debate actually complete agree on Tailwind itself. I don’t think we disagree on atomic CSS, or utility classes; I think our contention comes from the valuations we made long before we ever chose our tools. Where one of us se … | Continue reading
I don’t think most people using React on a regular basis realize quite how much it’s fallen behind. Following on from Josh’s earlier post where he said “React isn’t great at anything except being popular”, here are the details. Every decision React’s made since its inception c … | Continue reading
After a year or so of using Raycast, I'm switching back to Alfred. This is what prompted me to make that decision, and why I may or may not stick with it. | Continue reading
Transitions, easing, and routing are all baked into SvelteKit. This makes utilizing page transition effects in SvelteKit sites and apps as easy as adding just a few lines of code. | Continue reading
Creating high-quality, polished web animations is both a science and an art. This post covers the best things I've learned over the last decade of crafting web UIs. | Continue reading
The easing curve can make or break any animation on the web. Let's look at the science of CSS cubic-bezier curves, and the art of using them to make the best web animations possible. | Continue reading
My thoughts, experience, and advice after using the Moonlander as my main keyboard for both personal and work projects for a full month | Continue reading
Many developers seem to believe there's no difference between px and other CSS units. Let's dispel that myth, for the sake of better accessibility. | Continue reading
I'm 42 years old today. This is a personal post about where I am now, what's going on in my head, and 42 things I've learned (or at least, think I've learned). | Continue reading
Matcalfe’s Law in action: Companies keep choosing React because they know there’s a massive pool of candidates who know it; candidates keep learning React because they know companies are hiring for it. It’s a self-sustaining cycle. But the problem is: React isn’t great at an … | Continue reading
SvelteKit introduced breaking changes to its routing and data loading in August 2022. Learn how to convert from the old way of doing things to the new. | Continue reading
Updating Quina to version 2.0 filled my head with new ideas that I just couldn't walk away from. Eventually, those ideas took the shape of a whole new word game, named Hondo. | Continue reading
Toggle buttons might be the biggest missing native HTML element. This post will help you code them right, for all users, in any (or no) framework. | Continue reading
Debugging iOS Safari is a challenge (and possibly expensive) when you don't have access to an iPhone. Here are a few options to get around that problem. | Continue reading
How to use CSS grid to make a responsive, adaptable bar chart with no math or external library required! | Continue reading
Learn the fundamentals of SvelteKit by building a statically generated blog from scratch, with Markdown support, Sass, an API, and an RSS feed. | Continue reading
The web world is full of tradeoffs. Going from a CMS to a static site keeps things simple—but that simplicity comes with costs. Luckily, giving up comments on your blog doesn't have to be one of them. | Continue reading
Svelte is a new style of framework for building sites and apps. Let's dive into what makes it different, why it's so enjoyable, and how it's able to ship such tiny, fast apps. | Continue reading
I've been a fan of Svelte for years, but never had the opportunity to use it on a serious project before. So when I found myself looking for a new platform for this site as SvelteKit entered open beta, it seemed like perfect timing. | Continue reading
WordPress was potentially the most impactful and empowering technology I've yet encountered. It transformed my career path and enabled me to do anything I wanted at every point in my journey. So why leave it now? | Continue reading
The story of building Quina, a word game Progressive Web App built with Nuxt, and launched on the Google Play Store. | Continue reading
Block Lab is a WordPress plugin that simplifies the process of creating custom blocks to use in the block editor, AKA Gutenberg, the new content editor in WordPress 5.0. This post explains how to use it, even if you only know basic HTML. | Continue reading
A lengthy write-up diving into what headless means, its advantages and disadvantages, some of the techniques and gotchas involved, and, finally, the new design of this site specifically. | Continue reading
…Lately, I’ve been wondering whether I can actually continue supporting Instagram and the company behind it, however passively or at whatever seemingly insignificant scale. And while I was zeroing in on this answer anyway, the events of the last couple of weeks have clearly cemen … | Continue reading
Enjoy all the convenience of easy local WordPress development with Local, plus build tools with CodeKit, without any of the tricky command line setup. | Continue reading
Working with arrays of objects in JavaScript can be difficult. This post covers how to ensure all object keys (IDs) are unique, and how to find non-unique values. | Continue reading