Kent C. Dodds Blog
The next chapter: EpicAI.pro
AI is taking your job
How I increased my visibility
2023 in Review
Launching Epic Web
Stop Being a Junior
RSC with Dan Abramov and Joe Savona Live Stream
Fixing a Memory Leak in a Production Node.js App
2022 in Review
My Car Accident
I Migrated from a Postgres Cluster to Distributed SQLite with LiteFS
I'm building EpicWeb.dev
A review of my time at Remix
Remix: The Yang to React's Yin
How I help you build better websites
Why I Love Remix
The State Initializer Pattern
How to React ⚛️
Get a catch block error message with TypeScript
Building an awesome image loading experience
How Remix makes CSS clashes predictable
Introducing the new kentcdodds.com
How I built a modern website in 2021
How to use React Context effectively
Static vs Unit vs Integration vs E2E Testing for Frontend Apps
The Testing Trophy and Testing Classifications
Array reduce vs chaining vs for loop
Don't Solve Problems, Eliminate Them
Super Simple Start to Remix
Super Simple Start to ESModules in Node.js
JavaScript Pass By Value Function Parameters
How to write a Constrained Identity Function (CIF) in TypeScript
How to optimize your context value
How to write a React Component in TypeScript
TypeScript Function Syntaxes
Listify a JavaScript Array
Build vs Buy: Component Libraries edition
Using fetch with TypeScript
Wrapping React.useState with TypeScript
Define function overload types with TypeScript
2020 in Review
Business and Engineering alignment
Hi, thanks for reaching out to me 👋
useEffect vs useLayoutEffect
Super simple start to Firebase functions
Super simple start to Netlify functions
Super Simple Start to css variables
Favor Progress Over Pride in Open Source
Testing Implementation Details
How getting into Open Source has been awesome for me
useState lazy initialization and function updates
Use ternaries rather than && in JSX
Application State Management with React
Use react-error-boundary to handle errors in React
JavaScript to Know for React
How I structure Express apps
What open source project should I contribute to?
When I follow TDD
AHA Programming 💡
How I Record Educational Videos
Should I write a test or fix a bug?
Stop mocking fetch
Intentional Career Building
Improve test error messages of your abstractions
Tracing user interactions with React
Eliminate an entire category of bugs with a few simple tools
Common mistakes with React Testing Library
Super Simple Start to React
Stop using client-side route redirects
The State Reducer Pattern with React Hooks
Function forms
Replace axios with a simple custom fetch wrapper
How to test custom React hooks
React Production Performance Monitoring
Should I useState or useReducer?
Stop using isLoading booleans
Make Your Test Fail
Make your own DevTools
An Argument for Automation
Fix the "not wrapped in act(...)" warning
Super Simple Start to ESModules in the Browser
Implementing a simple state machine library in JavaScript
2010s Decade in Review
Why users care about how you write code
Why I avoid nesting closures
Don't call a React function component
Why your team needs TestingJavaScript.com
Inversion of Control
Understanding React's key prop
How to Enable React Concurrent Mode
How to add testing to an existing project
Building the Open Source Community We Want
Making your UI tests resilient to change
Speed up your App with Web Workers
Don't Sync State. Derive It!
State Colocation will make your React app faster
Profile a React App for Performance
Fix the slow render before you fix the re-render
How to implement useState with useReducer
Write fewer, longer tests
How to get experience as a software engineer
5 Tips to Help You Avoid React Hooks Pitfalls
Avoid Nesting when you're Testing
When to break up a component into multiple components
Write tests. Not too many. Mostly integration.
React Fundamentals: Props vs State
How I Teach
One simple trick to optimize React re-renders
Colocation
When to useMemo and useCallback
Avoid the Test User
Authentication in React Applications
How to know what to test
AHA Testing 💡
How to get started with programming
How to Enable React Strict Mode
Goodbye Medium
React Hooks: Compound Components
🚨 Big Announcement: I'm a full-time educator! 👨🏫
Please stop building inaccessible forms (and how to fix them)
2018 in Review
React Hooks: Array Destructuring Fundamentals
React Hooks: What's going to happen to my tests?
React Hooks: What's going to happen to react context?
React Hooks: What's going to happen to render props?
How Gratitude can make you a better developer
Introducing a new course: Simplify React Apps with React Hooks and Suspense
Common Testing Mistakes
UI Testing Myths
The Merits of Mocking
The time I messed up
React is an implementation detail
Why you've been bad about testing
Demystifying Testing
Confidently Shipping Code
React/JSX as a server-side templating language
How I am so productive
Getting Noticed and Widening Your Reach
Make Impossible States Impossible
How to make the most out of conferences
Why and How I started public speaking
mdx-deck: slide decks powered by markdown and react
unpkg: An open source CDN for npm
Polyfill as needed with polyfill-service
What is a polyfill
Why I Never Use Shallow Rendering
What is JSX?
Test Isolation with React
JavaScript default parameters
Dealing with FOMO
🏎 downshift 2.0.0 released 🎉
When to use Control Props or State Reducers
Write your own code transform for fun and profit
💯 UPDATED: Advanced React Component Patterns ⚛️
React DevTools
Prop Drilling
How I learn an Open Source Codebase
Mixing Component Patterns
Pure Modules
Migrating to React's New Context API
Compose Render Props
Introducing the react-testing-library 🐐
When to NOT use Render Props
But really, what is a JavaScript mock?
Increase your marketability
Solidifying what you learn
The state reducer pattern ⚛️ 🏎
Answers to common questions about render props
React's ⚛️ new Context API
Concerning toolkits 🛠 📦
Spelunking in node_modules 👷
Building Production Apps 100% in the browser
Testing ⚛️ components using render props
But really, what is a JavaScript test?
Merry Christmas!
The Beginner's Guide to ReactJS
Giving good demos
Advanced React Component Patterns
Learn React Fundamentals 🆓 and Advanced Patterns ⚛️ 🎁
Becoming an Open Source Project Maintainer
Rendering a function with React
Improving the usability of your modules
Effective Snapshot Testing
Make maintainable workarounds with codegen 💥
How to give rendering control to users with prop getters
Tools without config 🛠📦
Introducing downshift 🏎 for React ⚛️
How writing custom Babel & ESLint plugins can increase productivity & improve user experience
Classes, Complexity, and Functional Programming
Introducing glamorous 💄
Tips for making a CLI-based tool with node
Migrating to Jest
🌆 Sunsetting JavaScript Air 🌆
Kent OOO (Out Of the Office)
Introducing: How to Contribute to Open Source
Misunderstanding ES6 Modules, Upgrading Babel, Tears, and a Solution
Semicolons in JavaScript: A preference
Please, don't commit commented out code
Open Source Stamina
Why I don't commit generated files to master
How to Write a JavaScript Library
First Timers Only
Newspaper Code Structure