
Semantic search alone wasn't good enough. Here's how I improved search on kentcdodds.com through three rounds of iteration with Cursor and GPT-5.4, each time learning something that the previous design missed.
KC
Kent C. Dodds·March 16, 2026AI & ML 
How I replaced a long-lived Cloudflare Container with a one-shot Cloudflare Sandbox, deleted most of the control-plane code, and let an agent do the heavy lifting in less than an hour of my own time.
KC
Kent C. Dodds·March 11, 2026Systems 
The interesting part of moving kentcdodds.com to npm workspaces was not the file moves. It was everything the file moves broke.

How I moved Call Kent podcast episode processing off my primary Fly.io app server and onto Cloudflare Queues and Containers: what broke, what I missed, and whether it was worth the complexity.

I've added some pretty cool AI-powered features to kentcdodds.com and I want to tell you all about it.
KC
Kent C. Dodds·February 24, 2026AI & ML 
Here's how I've made it easier for you to call into the Call Kent podcast without having to record yourself and also make yourself anonymous using AI.
KC
Kent C. Dodds·February 24, 2026AI & ML 
I upgraded kentcdodds.com from Remix v2 to React Router v7 in a day with over 17k lines of code changed. Here's how I did it.
KC
Kent C. Dodds·February 20, 2026Frontend 
My experience sharing the gospel with Jeremiah and Beiyi Dow

Looking back over my 2025 and looking forward to my 2026

What I'm working on with AI education and why I think it's the future.
KC
Kent C. Dodds·April 10, 2025AI & ML 
AI is changing how hiring works, and that makes in person connections even more important.
KC
Kent C. Dodds·November 21, 2024AI & ML 
Someone asked me this and here's my answer.

A review of what happened in the life of Kent C. Dodds in 2023

The story of how Epic Web came to be

Some advise for people who still consider themselves junior developers

I had a live streamed conversation with Joe Savona and Dan Abramov. Here's a summary of our discussion.

How I found and fixed a memory leak on kentcdodds.com

A review of what happened in the KCD world in 2022

I was involved in a very bad car accident in 2022. Here's the story.

Why and how I migrated from distributed postgres to distributed sqlite on kentcdodds.com

I've struck out on my own again to focus on my most ambitious project yet.

As I move on to my next adventure, I want to take this opportunity to review what I accomplished while at Remix.

Remix fills the missing piece that all React web applications need: The Network Chasm

I'm making a career move to more effectively help you make the web (and the world) better.

I've written tens of thousands of lines of code with Remix and I want to tell you why I love using this framework.

A simple pattern used in libraries like downshift and ReachUI to enable component/hook users to initialize your state and even reset it to that initial value.
KC
Kent C. Dodds·November 5, 2021Frontend 
Let's see how learning React ⚛️ in the right order can make it less overwhelming.
KC
Kent C. Dodds·November 3, 2021Frontend 
TypeScript forces you to acknowledge you can't know what was thrown making getting the error message a pain. Here's how you can manage it.
KC
Kent C. Dodds·October 28, 2021Frontend 
How Unsplash's blurred image loading works and why I did mine differently for a more excellent experience on my site.

Remix has this beautifully simple feature for CSS that I want to tell you all about.
KC
Kent C. Dodds·October 13, 2021Frontend 
This site just experienced a huge rewrite and I want to show you around a bit.

I rewrote kentcdodds.com using the latest technologies and I want to talk about what I did.

How to create and expose React Context providers and consumers

What these mean, why they matter, and why they don't

How to interpret the testing trophy for optimal clarity

A comparison of different approaches to operating on an array

How eliminating problems can drastically simplify your codebases and life

The simplest distraction-free version of a remix app

All supported versions of Node.js support ESModules now. Here's how to get started using them.

How it works and how to work with it... and around it

A handy advanced TypeScript pattern to increase your productivity.

Why and how you can optimize your context provider's value to avoid performance issues

There are plenty of ways to do it, here's how I recommend typing React Components

The syntax for various functions and function types in TypeScript with simple examples.
KC
Kent C. Dodds·February 25, 2021Frontend 
Make a human readable list from an array in JavaScript.
KC
Kent C. Dodds·February 18, 2021Frontend 
Some things to think about before you decide to create your own component library.
KC
Kent C. Dodds·February 4, 2021Frontend 
How to make HTTP requests with fetch and TypeScript
KC
Kent C. Dodds·January 26, 2021Frontend 
How to make a custom hook that wraps useState with TypeScript properly
KC
Kent C. Dodds·January 19, 2021Frontend 
Have your JS expressiveness and type it too.
KC
Kent C. Dodds·January 12, 2021Frontend 
An overview of what I accomplished in 2020 and a bit about my goals for 2021.

How to convince "the business folks" to let you do what you want.

How to get help from Kent

The simple rules for when to use each.

The simplest getting started guide for Firebase Cloud functions

Easily create server code without worrying about managing servers yourself

How to get started using css variables
KC
Kent C. Dodds·October 28, 2020Frontend 
How I deprecated my most popular open source project in favor of a better library

Testing implementation details is a recipe for disaster. Why is that? And what does it even mean?

An anecdotal argument for contributing and using open source

When to pass a function to useState and setState