All blogs / JavaScript / TypeScript
Kent C. Dodds Blog
Join 767.28k people who have read Kent's 214 articles on JavaScript, TypeScript, React, Testing, Career, and more.
JavaScript / TypeScriptTesting / QAFrontend / CSS / browsers
- Posts
- 214 from 18 May 2015 to 24 Sep 2026
- Posting
- monthly (11 in the last year)
- Kind
- personal blog
- Feed
- https://kentcdodds.com/blog/rss.xml
2026 10
- You Own the Outcome: Product Engineering in the Age of AI
- Introducing Kody: Your Personal Software Factory
- Implementing Hybrid Semantic + Lexical Search
- Simplifying Containers with Cloudflare Sandboxes
- Migrating to Workspaces and Nx
- Offloading FFmpeg with Cloudflare
- Building Semantic Search on my Content
- Helping YOU ask ME questions with AI
- How I used Cursor to Migrate Frameworks
- The Dow's Start on the Covenant Path
2025 2
2024 2
2023 5
2022 6
2021 27
- 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
2020 41
- 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
2019 39
- 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
2018 53
- 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?
2017 16
- 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 💄