Untitled Post
This post is... indescribable
Feed
Latest entries from Kent C. Dodds Blog.
This post is... indescribable
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 tha...
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 h...
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...
I've added some pretty cool AI-powered features to kentcdodds.com and I want to tell you all about it.
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.
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.
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.
AI is changing how hiring works, and that makes in person connections even more important.
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.
Let's see how learning React ⚛️ in the right order can make it less overwhelming.
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.
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.
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.
Make a human readable list from an array in JavaScript.
Some things to think about before you decide to create your own component library.
How to make HTTP requests with fetch and TypeScript
How to make a custom hook that wraps useState with TypeScript properly
Have your JS expressiveness and type it too.
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
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
What problems can happen when you use && to conditionally render content in JSX
How React is all you need to manage your application state
How to simplify your React apps by handling React errors effectively with react-error-boundary
What JavaScript features you should be familiar with when learning and using React
The build/dev tools and scripts I use for Node backends.
My silver bullet answer to this frequently posed question, and how to get started
Test-Driven Development doesn't always make sense, here's when it does for me.
The dangers of DRY, the web of WET, the awesomeness of AHA.
My process for making high value-to-minute content.
How to prioritize tests relative to everything else.
Why you shouldn't mock fetch or your API Client in your tests and what to do instead.
A challenge and ideas for you to do something to build your career.
How to manipulate stack traces to get beautiful error messages with Jest and your test helper functions.
How to use the (EXPERIMENTAL) interactions tracing API in React.
How you can use a few simple static code analysis tools to avoid common programming bugs.
Some mistakes I frequently see people making with React Testing Library.
The most simple React setup imaginable
Why you should stop using client-side route redirects (like the `from` prop on React Router's Redirect component) and what you should do instead.
A pattern for you to use in custom hooks to enhance the power and flexibility of your hooks.
When I prefer to use function declarations instead of arrow functions
Axios can do a ton of stuff, but here's a simpler solution that can handle most use cases
Get confidence your custom React hooks work properly with solid tests.
How to set up performance monitoring for production React applications.
Two built-in React hooks that handle state, which one should you use?
Why using a status enum (or even better: a **state machine**) will help your app stay bug free
If you're not careful you can write a test that's worse than having no tests at all
How creating DevTools specific for your own app can improve your productivity
Why it can be worth spending 1 hour automating a 10 second task
There are a few reasons you're getting this warning. Here's how you fix it.
All major browsers support ESModules now. Here's how to get started using them.
Let's write a state machine abstraction together to understand it better
The 2010s are over, time to think back, then forward
Your coding practices and technology choices impact user experience...
A little tendency I have to reduce cognitive load for readers of my code.
The difference between React.createElement and calling a function component directly
A letter you can copy/paste and send to your boss.
A simple principle that can drastically improve your reusable code
The key prop is a mechanism for controlling component instances.
Concurrent Mode is an enormous improvement for user experience and developer experience. Here's how you enable it.