The Curious Engineer

All blogs / JavaScript / TypeScript

Kent C. Dodds Blog

kentcdodds.com/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

  1. You Own the Outcome: Product Engineering in the Age of AI
  2. Introducing Kody: Your Personal Software Factory
  3. Implementing Hybrid Semantic + Lexical Search
  4. Simplifying Containers with Cloudflare Sandboxes
  5. Migrating to Workspaces and Nx
  6. Offloading FFmpeg with Cloudflare
  7. Building Semantic Search on my Content
  8. Helping YOU ask ME questions with AI
  9. How I used Cursor to Migrate Frameworks
  10. The Dow's Start on the Covenant Path

2025 2

  1. 2025 in Review
  2. The next chapter: EpicAI.pro

2024 2

  1. AI is taking your job
  2. How I increased my visibility

2023 5

  1. 2023 in Review
  2. Launching Epic Web
  3. Stop Being a Junior
  4. RSC with Dan Abramov and Joe Savona Live Stream
  5. Fixing a Memory Leak in a Production Node.js App

2022 6

  1. 2022 in Review
  2. My Car Accident
  3. I Migrated from a Postgres Cluster to Distributed SQLite with LiteFS
  4. I'm building EpicWeb.dev
  5. A review of my time at Remix
  6. Remix: The Yang to React's Yin

2021 27

  1. How I help you build better websites
  2. Why I Love Remix
  3. The State Initializer Pattern
  4. How to React ⚛️
  5. Get a catch block error message with TypeScript
  6. Building an awesome image loading experience
  7. How Remix makes CSS clashes predictable
  8. Introducing the new kentcdodds.com
  9. How I built a modern website in 2021
  10. How to use React Context effectively
  11. Static vs Unit vs Integration vs E2E Testing for Frontend Apps
  12. The Testing Trophy and Testing Classifications
  13. Array reduce vs chaining vs for loop
  14. Don't Solve Problems, Eliminate Them
  15. Super Simple Start to Remix
  16. Super Simple Start to ESModules in Node.js
  17. JavaScript Pass By Value Function Parameters
  18. How to write a Constrained Identity Function (CIF) in TypeScript
  19. How to optimize your context value
  20. How to write a React Component in TypeScript
  21. TypeScript Function Syntaxes
  22. Listify a JavaScript Array
  23. Build vs Buy: Component Libraries edition
  24. Using fetch with TypeScript
  25. Wrapping React.useState with TypeScript
  26. Define function overload types with TypeScript
  27. 2020 in Review

2020 41

  1. Business and Engineering alignment
  2. Hi, thanks for reaching out to me 👋
  3. useEffect vs useLayoutEffect
  4. Super simple start to Firebase functions
  5. Super simple start to Netlify functions
  6. Super Simple Start to css variables
  7. Favor Progress Over Pride in Open Source
  8. Testing Implementation Details
  9. How getting into Open Source has been awesome for me
  10. useState lazy initialization and function updates
  11. Use ternaries rather than && in JSX
  12. Application State Management with React
  13. Use react-error-boundary to handle errors in React
  14. JavaScript to Know for React
  15. How I structure Express apps
  16. What open source project should I contribute to?
  17. When I follow TDD
  18. AHA Programming 💡
  19. How I Record Educational Videos
  20. Should I write a test or fix a bug?
  21. Stop mocking fetch
  22. Intentional Career Building
  23. Improve test error messages of your abstractions
  24. Tracing user interactions with React
  25. Eliminate an entire category of bugs with a few simple tools
  26. Common mistakes with React Testing Library
  27. Super Simple Start to React
  28. Stop using client-side route redirects
  29. The State Reducer Pattern with React Hooks
  30. Function forms
  31. Replace axios with a simple custom fetch wrapper
  32. How to test custom React hooks
  33. React Production Performance Monitoring
  34. Should I useState or useReducer?
  35. Stop using isLoading booleans
  36. Make Your Test Fail
  37. Make your own DevTools
  38. An Argument for Automation
  39. Fix the "not wrapped in act(...)" warning
  40. Super Simple Start to ESModules in the Browser
  41. Implementing a simple state machine library in JavaScript

2019 39

  1. 2010s Decade in Review
  2. Why users care about how you write code
  3. Why I avoid nesting closures
  4. Don't call a React function component
  5. Why your team needs TestingJavaScript.com
  6. Inversion of Control
  7. Understanding React's key prop
  8. How to Enable React Concurrent Mode
  9. How to add testing to an existing project
  10. Building the Open Source Community We Want
  11. Making your UI tests resilient to change
  12. Speed up your App with Web Workers
  13. Don't Sync State. Derive It!
  14. State Colocation will make your React app faster
  15. Profile a React App for Performance
  16. Fix the slow render before you fix the re-render
  17. How to implement useState with useReducer
  18. Write fewer, longer tests
  19. How to get experience as a software engineer
  20. 5 Tips to Help You Avoid React Hooks Pitfalls
  21. Avoid Nesting when you're Testing
  22. When to break up a component into multiple components
  23. Write tests. Not too many. Mostly integration.
  24. React Fundamentals: Props vs State
  25. How I Teach
  26. One simple trick to optimize React re-renders
  27. Colocation
  28. When to useMemo and useCallback
  29. Avoid the Test User
  30. Authentication in React Applications
  31. How to know what to test
  32. AHA Testing 💡
  33. How to get started with programming
  34. How to Enable React Strict Mode
  35. Goodbye Medium
  36. React Hooks: Compound Components
  37. 🚨 Big Announcement: I'm a full-time educator! 👨‍🏫
  38. Please stop building inaccessible forms (and how to fix them)
  39. 2018 in Review

2018 53

  1. React Hooks: Array Destructuring Fundamentals
  2. React Hooks: What's going to happen to my tests?
  3. React Hooks: What's going to happen to react context?
  4. React Hooks: What's going to happen to render props?
  5. How Gratitude can make you a better developer
  6. Introducing a new course: Simplify React Apps with React Hooks and Suspense
  7. Common Testing Mistakes
  8. UI Testing Myths
  9. The Merits of Mocking
  10. The time I messed up
  11. React is an implementation detail
  12. Why you've been bad about testing
  13. Demystifying Testing
  14. Confidently Shipping Code
  15. React/JSX as a server-side templating language
  16. How I am so productive
  17. Getting Noticed and Widening Your Reach
  18. Make Impossible States Impossible
  19. How to make the most out of conferences
  20. Why and How I started public speaking
  21. mdx-deck: slide decks powered by markdown and react
  22. unpkg: An open source CDN for npm
  23. Polyfill as needed with polyfill-service
  24. What is a polyfill
  25. Why I Never Use Shallow Rendering
  26. What is JSX?
  27. Test Isolation with React
  28. JavaScript default parameters
  29. Dealing with FOMO
  30. 🏎 downshift 2.0.0 released 🎉
  31. When to use Control Props or State Reducers
  32. Write your own code transform for fun and profit
  33. 💯 UPDATED: Advanced React Component Patterns ⚛️
  34. React DevTools
  35. Prop Drilling
  36. How I learn an Open Source Codebase
  37. Mixing Component Patterns
  38. Pure Modules
  39. Migrating to React's New Context API
  40. Compose Render Props
  41. Introducing the react-testing-library 🐐
  42. When to NOT use Render Props
  43. But really, what is a JavaScript mock?
  44. Increase your marketability
  45. Solidifying what you learn
  46. The state reducer pattern ⚛️ 🏎
  47. Answers to common questions about render props
  48. React's ⚛️ new Context API
  49. Concerning toolkits 🛠 📦
  50. Spelunking in node_modules 👷
  51. Building Production Apps 100% in the browser
  52. Testing ⚛️ components using render props
  53. But really, what is a JavaScript test?

2017 16

  1. Merry Christmas!
  2. The Beginner's Guide to ReactJS
  3. Giving good demos
  4. Advanced React Component Patterns
  5. Learn React Fundamentals 🆓 and Advanced Patterns ⚛️ 🎁
  6. Becoming an Open Source Project Maintainer
  7. Rendering a function with React
  8. Improving the usability of your modules
  9. Effective Snapshot Testing
  10. Make maintainable workarounds with codegen 💥
  11. How to give rendering control to users with prop getters
  12. Tools without config 🛠📦
  13. Introducing downshift 🏎 for React ⚛️
  14. How writing custom Babel & ESLint plugins can increase productivity & improve user experience
  15. Classes, Complexity, and Functional Programming
  16. Introducing glamorous 💄

2016 5

  1. Tips for making a CLI-based tool with node
  2. Migrating to Jest
  3. 🌆 Sunsetting JavaScript Air 🌆
  4. Kent OOO (Out Of the Office)
  5. Introducing: How to Contribute to Open Source

2015 8

  1. Misunderstanding ES6 Modules, Upgrading Babel, Tears, and a Solution
  2. Semicolons in JavaScript: A preference
  3. Please, don't commit commented out code
  4. Open Source Stamina
  5. Why I don't commit generated files to master
  6. How to Write a JavaScript Library
  7. First Timers Only
  8. Newspaper Code Structure