Kent C. Dodds Blog
https://kentcdodds.com/blog
Join 643.83k people who have read Kent's 201 articles on JavaScript, TypeScript, React, Testing, Career, and more.
フィード
Stop Being a Junior
Kent C. Dodds Blog
Some advise for people who still consider themselves junior developers
2年前
RSC with Dan Abramov and Joe Savona Live Stream
Kent C. Dodds Blog
I had a live streamed conversation with Joe Savona and Dan Abramov. Here's a summary of our discussion.
2年前
Fixing a Memory Leak in a Production Node.js App
Kent C. Dodds Blog
How I found and fixed a memory leak on kentcdodds.com
2年前
My Car Accident
Kent C. Dodds Blog
I was involved in a very bad car accident in 2022. Here's the story.
2年前
I Migrated from a Postgres Cluster to Distributed SQLite with LiteFS
Kent C. Dodds Blog
Why and how I migrated from distributed postgres to distributed sqlite on kentcdodds.com
2年前
I'm building EpicWeb.dev
Kent C. Dodds Blog
I've struck out on my own again to focus on my most ambitious project yet.
2年前
A review of my time at Remix
Kent C. Dodds Blog
As I move on to my next adventure, I want to take this opportunity to review what I accomplished while at Remix.
2年前
Remix: The Yang to React's Yin
Kent C. Dodds Blog
Remix fills the missing piece that all React web applications need: The Network Chasm
3年前
How I help you build better websites
Kent C. Dodds Blog
I'm making a career move to more effectively help you make the web (and the world) better.
3年前
Why I Love Remix
Kent C. Dodds Blog
I've written tens of thousands of lines of code with Remix and I want to tell you why I love using this framework.
3年前
The State Initializer Pattern
Kent C. Dodds Blog
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.
3年前
How to React ⚛️
Kent C. Dodds Blog
Let's see how learning React ⚛️ in the right order can make it less overwhelming.
3年前
Get a catch block error message with TypeScript
Kent C. Dodds Blog
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.
3年前
Building an awesome image loading experience
Kent C. Dodds Blog
How Unsplash's blurred image loading works and why I did mine differently for a more excellent experience on my site.
3年前
How Remix makes CSS clashes predictable
Kent C. Dodds Blog
Remix has this beautifully simple feature for CSS that I want to tell you all about.
3年前
Introducing the new kentcdodds.com
Kent C. Dodds Blog
This site just experienced a huge rewrite and I want to show you around a bit.
3年前
How I built a modern website in 2021
Kent C. Dodds Blog
I rewrote kentcdodds.com using the latest technologies and I want to talk about what I did.
3年前
How to use React Context effectively
Kent C. Dodds Blog
How to create and expose React Context providers and consumers
3年前
Static vs Unit vs Integration vs E2E Testing for Frontend Apps
Kent C. Dodds Blog
What these mean, why they matter, and why they don't
3年前
The Testing Trophy and Testing Classifications
Kent C. Dodds Blog
How to interpret the testing trophy for optimal clarity
3年前
Array reduce vs chaining vs for loop
Kent C. Dodds Blog
A comparison of different approaches to operating on an array
4年前
Don't Solve Problems, Eliminate Them
Kent C. Dodds Blog
How eliminating problems can drastically simplify your codebases and life
4年前
Super Simple Start to Remix
Kent C. Dodds Blog
The simplest distraction-free version of a remix app
4年前
Super Simple Start to ESModules in Node.js
Kent C. Dodds Blog
All supported versions of Node.js support ESModules now. Here's how to get started using them.
4年前
JavaScript Pass By Value Function Parameters
Kent C. Dodds Blog
How it works and how to work with it... and around it
4年前
How to write a Constrained Identity Function (CIF) in TypeScript
Kent C. Dodds Blog
A handy advanced TypeScript pattern to increase your productivity.
4年前
How to optimize your context value
Kent C. Dodds Blog
Why and how you can optimize your context provider's value to avoid performance issues
4年前
How to write a React Component in TypeScript
Kent C. Dodds Blog
There are plenty of ways to do it, here's how I recommend typing React Components
4年前
TypeScript Function Syntaxes
Kent C. Dodds Blog
The syntax for various functions and function types in TypeScript with simple examples.
4年前
Listify a JavaScript Array
Kent C. Dodds Blog
Make a human readable list from an array in JavaScript.
4年前
Build vs Buy: Component Libraries edition
Kent C. Dodds Blog
Some things to think about before you decide to create your own component library.
4年前
Wrapping React.useState with TypeScript
Kent C. Dodds Blog
How to make a custom hook that wraps useState with TypeScript properly
4年前
Define function overload types with TypeScript
Kent C. Dodds Blog
Have your JS expressiveness and type it too.
4年前
2020 in Review
Kent C. Dodds Blog
An overview of what I accomplished in 2020 and a bit about my goals for 2021.
4年前
Business and Engineering alignment
Kent C. Dodds Blog
How to convince "the business folks" to let you do what you want.
4年前
Super simple start to Firebase functions
Kent C. Dodds Blog
The simplest getting started guide for Firebase Cloud functions
4年前
Super simple start to Netlify functions
Kent C. Dodds Blog
Easily create server code without worrying about managing servers yourself
4年前
Favor Progress Over Pride in Open Source
Kent C. Dodds Blog
How I deprecated my most popular open source project in favor of a better library
4年前
Testing Implementation Details
Kent C. Dodds Blog
Testing implementation details is a recipe for disaster. Why is that? And what does it even mean?
4年前
How getting into Open Source has been awesome for me
Kent C. Dodds Blog
An anecdotal argument for contributing and using open source
4年前
useState lazy initialization and function updates
Kent C. Dodds Blog
When to pass a function to useState and setState
4年前
Use ternaries rather than && in JSX
Kent C. Dodds Blog
What problems can happen when you use && to conditionally render content in JSX
4年前
Application State Management with React
Kent C. Dodds Blog
How React is all you need to manage your application state
4年前
Use react-error-boundary to handle errors in React
Kent C. Dodds Blog
How to simplify your React apps by handling React errors effectively with react-error-boundary
4年前
JavaScript to Know for React
Kent C. Dodds Blog
What JavaScript features you should be familiar with when learning and using React
4年前
How I structure Express apps
Kent C. Dodds Blog
The build/dev tools and scripts I use for Node backends.
4年前
What open source project should I contribute to?
Kent C. Dodds Blog
My silver bullet answer to this frequently posed question, and how to get started
4年前
When I follow TDD
Kent C. Dodds Blog
Test-Driven Development doesn't always make sense, here's when it does for me.
4年前
How I Record Educational Videos
Kent C. Dodds Blog
My process for making high value-to-minute content.
4年前
Should I write a test or fix a bug?
Kent C. Dodds Blog
How to prioritize tests relative to everything else.
4年前
Stop mocking fetch
Kent C. Dodds Blog
Why you shouldn't mock fetch or your API Client in your tests and what to do instead.
4年前
Intentional Career Building
Kent C. Dodds Blog
A challenge and ideas for you to do something to build your career.
5年前
Improve test error messages of your abstractions
Kent C. Dodds Blog
How to manipulate stack traces to get beautiful error messages with Jest and your test helper functions.
5年前
Tracing user interactions with React
Kent C. Dodds Blog
How to use the (EXPERIMENTAL) interactions tracing API in React.
5年前
Eliminate an entire category of bugs with a few simple tools
Kent C. Dodds Blog
How you can use a few simple static code analysis tools to avoid common programming bugs.
5年前
Common mistakes with React Testing Library
Kent C. Dodds Blog
Some mistakes I frequently see people making with React Testing Library.
5年前
Stop using client-side route redirects
Kent C. Dodds Blog
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.
5年前
The State Reducer Pattern with React Hooks
Kent C. Dodds Blog
A pattern for you to use in custom hooks to enhance the power and flexibility of your hooks.
5年前
Function forms
Kent C. Dodds Blog
When I prefer to use function declarations instead of arrow functions
5年前
Replace axios with a simple custom fetch wrapper
Kent C. Dodds Blog
Axios can do a ton of stuff, but here's a simpler solution that can handle most use cases
5年前
How to test custom React hooks
Kent C. Dodds Blog
Get confidence your custom React hooks work properly with solid tests.
5年前
React Production Performance Monitoring
Kent C. Dodds Blog
How to set up performance monitoring for production React applications.
5年前
Should I useState or useReducer?
Kent C. Dodds Blog
Two built-in React hooks that handle state, which one should you use?
5年前
Stop using isLoading booleans
Kent C. Dodds Blog
Why using a status enum (or even better: a **state machine**) will help your app stay bug free
5年前
Make Your Test Fail
Kent C. Dodds Blog
If you're not careful you can write a test that's worse than having no tests at all
5年前
Make your own DevTools
Kent C. Dodds Blog
How creating DevTools specific for your own app can improve your productivity
5年前
An Argument for Automation
Kent C. Dodds Blog
Why it can be worth spending 1 hour automating a 10 second task
5年前
Fix the "not wrapped in act(...)" warning
Kent C. Dodds Blog
There are a few reasons you're getting this warning. Here's how you fix it.
5年前
Super Simple Start to ESModules in the Browser
Kent C. Dodds Blog
All major browsers support ESModules now. Here's how to get started using them.
5年前
Implementing a simple state machine library in JavaScript
Kent C. Dodds Blog
Let's write a state machine abstraction together to understand it better
5年前
Why users care about how you write code
Kent C. Dodds Blog
Your coding practices and technology choices impact user experience...
5年前
Why I avoid nesting closures
Kent C. Dodds Blog
A little tendency I have to reduce cognitive load for readers of my code.
5年前
Don't call a React function component
Kent C. Dodds Blog
The difference between React.createElement and calling a function component directly
5年前
Why your team needs TestingJavaScript.com
Kent C. Dodds Blog
A letter you can copy/paste and send to your boss.
5年前
Inversion of Control
Kent C. Dodds Blog
A simple principle that can drastically improve your reusable code
5年前
Understanding React's key prop
Kent C. Dodds Blog
The key prop is a mechanism for controlling component instances.
5年前
How to Enable React Concurrent Mode
Kent C. Dodds Blog
Concurrent Mode is an enormous improvement for user experience and developer experience. Here's how you enable it.
5年前
How to add testing to an existing project
Kent C. Dodds Blog
This is how you get started in testing your application
5年前
Building the Open Source Community We Want
Kent C. Dodds Blog
Let's be intentional about the open source community we want and work hard to build it.
5年前
Making your UI tests resilient to change
Kent C. Dodds Blog
User interface tests are famously finicky and prone to breakage. Let's talk about how to improve this.
5年前
Speed up your App with Web Workers
Kent C. Dodds Blog
How to get started using web workers for practical use cases
5年前
Don't Sync State. Derive It!
Kent C. Dodds Blog
How to avoid state synchronization bugs and complexity with derived state.
5年前
State Colocation will make your React app faster
Kent C. Dodds Blog
How state colocation makes your app not only more maintainable but also faster.
5年前
Profile a React App for Performance
Kent C. Dodds Blog
How to use the React DevTools and React's profiling build to properly profile a production app
5年前
Fix the slow render before you fix the re-render
Kent C. Dodds Blog
How to start optimizing your React app renders
5年前
How to implement useState with useReducer
Kent C. Dodds Blog
A fun exercise to help understand the differences and use cases of these two related hooks
5年前
Write fewer, longer tests
Kent C. Dodds Blog
Making tests too short often leads to poor testing practices and way more tests.
5年前
How to get experience as a software engineer
Kent C. Dodds Blog
There's no shortcut to experience, but there are things you can do to increase the impact of your time.
5年前
5 Tips to Help You Avoid React Hooks Pitfalls
Kent C. Dodds Blog
Let's explore some hook gotchas and how to avoid them.
5年前
Avoid Nesting when you're Testing
Kent C. Dodds Blog
Why using hooks like beforeEach as a mechanism for code reuse leads to unmaintainable tests and how to avoid it.
5年前
When to break up a component into multiple components
Kent C. Dodds Blog
At what point does it make sense to break a single component into multiple components?
5年前
Write tests. Not too many. Mostly integration.
Kent C. Dodds Blog
[Guillermo Rauch](https://twitter.com/rauchg) [tweeted](https://twitter.com/rauchg/status/807626710350839808) this a while back. Let's take a dive into what it means.
5年前
React Fundamentals: Props vs State
Kent C. Dodds Blog
What's the difference between props and state in React?
5年前
How I Teach
Kent C. Dodds Blog
How I apply the science of learning to help students retain what I teach them, and how I learn.
5年前
One simple trick to optimize React re-renders
Kent C. Dodds Blog
Without using React.memo, PureComponent, or shouldComponentUpdate
5年前
When to useMemo and useCallback
Kent C. Dodds Blog
Performance optimizations ALWAYS come with a cost but do NOT always come with a benefit. Let's talk about the costs and benefits of useMemo and useCallback.
5年前
Avoid the Test User
Kent C. Dodds Blog
How your UI code has only two users, but the wrong tests can add a third
6年前
Authentication in React Applications
Kent C. Dodds Blog
How to handle user authentication in modern React Applications with context and hooks
6年前
AHA Testing 💡
Kent C. Dodds Blog
How to apply the "Avoid Hasty Abstraction" principle to your test code.
6年前
How to get started with programming
Kent C. Dodds Blog
So you want to get into programming? Here's how you get started.
6年前
React Hooks: Compound Components
Kent C. Dodds Blog
How do compound components change with React hooks?
6年前
🚨 Big Announcement: I'm a full-time educator! 👨🏫
Kent C. Dodds Blog
After years of teaching on the side, I've decided to take the plunge and go full-time as an educator!
6年前
Please stop building inaccessible forms (and how to fix them)
Kent C. Dodds Blog
I regularly find inaccessible forms. In this post we'll check out some common accessibility problems and fix them.
6年前
2018 in Review
Kent C. Dodds Blog
An overview of what I've accomplished in 2018 and a bit about my goals for 2019.
6年前
React Hooks: Array Destructuring Fundamentals
Kent C. Dodds Blog
React's upcoming useState hook relies on array destructuring, let's dive in and see how that feature works.
6年前
React Hooks: What's going to happen to my tests?
Kent C. Dodds Blog
How can we prepare our tests for React's new hooks feature?
6年前
React Hooks: What's going to happen to react context?
Kent C. Dodds Blog
With the cool new stuff coming to React (Hooks/Suspense), what's going to happen to the context api?
6年前
React Hooks: What's going to happen to render props?
Kent C. Dodds Blog
What am I going to do with all these render props components now that react hooks solve the code reuse problem better than render props ever did?
6年前
How Gratitude can make you a better developer
Kent C. Dodds Blog
What does gratitude have to do with software development?
6年前
Introducing a new course: Simplify React Apps with React Hooks and Suspense
Kent C. Dodds Blog
Learn about the massive improvements coming to function components in React via a fresh new course showing you how to refactor an existing...
6年前
Common Testing Mistakes
Kent C. Dodds Blog
Today let's talk about some common mistakes that people make when testing JavaScript applications.
6年前
The Merits of Mocking
Kent C. Dodds Blog
What are you doing when you mock something, and when is it worth the cost?
6年前
The time I messed up
Kent C. Dodds Blog
That time I went too far with Test Driven Development and forgot a very important step
6年前
React is an implementation detail
Kent C. Dodds Blog
...yep, you read that right. Most of the course actually has nothing to do with React specifically.
6年前
Why you've been bad about testing
Kent C. Dodds Blog
Some common struggles people have with testing, and things you can do to improve.
6年前
Demystifying Testing
Kent C. Dodds Blog
How to get from aimlessly testing or not testing at all to really understanding how and what to test.
6年前
React/JSX as a server-side templating language
Kent C. Dodds Blog
Using React function components to render your website's skeleton index.html
6年前
How I am so productive
Kent C. Dodds Blog
People regularly ask me how I get so much done. Here's my secret...
6年前
Getting Noticed and Widening Your Reach
Kent C. Dodds Blog
Some things you can do to gain a wider audience and get your stuff noticed
6年前
Make Impossible States Impossible
Kent C. Dodds Blog
A simple trick to simplify your application and component state
6年前
How to make the most out of conferences
Kent C. Dodds Blog
Some specific things you can do as a conference attendee
6年前
Why and How I started public speaking
Kent C. Dodds Blog
Some stories and some advice from an international speaker and trainer
6年前
mdx-deck: slide decks powered by markdown and react
Kent C. Dodds Blog
Why it's awesome, what it is, how it works, and how to use mdx-deck.
6年前
unpkg: An open source CDN for npm
Kent C. Dodds Blog
Let's learn how unpkg the service and the open source project can improve performance for your company's apps.
6年前
Polyfill as needed with polyfill-service
Kent C. Dodds Blog
How to maximize the performance of loading polyfills for your application users.
6年前
Why I Never Use Shallow Rendering
Kent C. Dodds Blog
Tests should help me be confident that my application is working and there are better ways to do that than shallow rendering.
6年前
What is JSX?
Kent C. Dodds Blog
You may use it every day, but have you seen what happens after Babel compiles it?
6年前
Test Isolation with React
Kent C. Dodds Blog
Why your tests should be completely isolated from one another and how to do that.
6年前
JavaScript default parameters
Kent C. Dodds Blog
The expressive power of expressions in default values for parameters
6年前
Dealing with FOMO
Kent C. Dodds Blog
What is "Fear Of Missing Out" and how to deal with this natural unhealthy tendency.
6年前
🏎 downshift 2.0.0 released 🎉
Kent C. Dodds Blog
Even better accessibility, React Native and ReasonReact support, even simpler API, improved docs, new examples site, Flow and TypeScript...
6年前
When to use Control Props or State Reducers
Kent C. Dodds Blog
Comparing two similar patterns that enable many of the same use cases.
6年前
Write your own code transform for fun and profit
Kent C. Dodds Blog
How to write your own code macro with babel-plugin-macros 🎣
6年前
💯 UPDATED: Advanced React Component Patterns ⚛️
Kent C. Dodds Blog
Now featuring the latest React APIs (like context) and entirely new patterns (like state reducer props).
6年前
React DevTools
Kent C. Dodds Blog
A quick demo of the browser extension you should definitely be using.
7年前
Prop Drilling
Kent C. Dodds Blog
What it is, why it's good, why it's bad, and how to avoid common problems with it
7年前
How I learn an Open Source Codebase
Kent C. Dodds Blog
What I do to learn and understand an open source project to which I want to contribute.
7年前
Mixing Component Patterns
Kent C. Dodds Blog
Let's make a component that supports Render Props, Component Injection, Compound Components, the Provider Pattern, and Higher Order...
7年前
Pure Modules
Kent C. Dodds Blog
How you write your ES Modules impacts the performance and maintainability of your code.
7年前
Migrating to React's New Context API
Kent C. Dodds Blog
Let's compare the before/after of React's new context API.
7年前
Introducing the react-testing-library 🐐
Kent C. Dodds Blog
A simpler replacement for enzyme that encourages good testing practices.
7年前
When to NOT use Render Props
Kent C. Dodds Blog
Let's back up from the hype and think critically about the render props pattern
7年前
But really, what is a JavaScript mock?
Kent C. Dodds Blog
Let's take a step back and understand what mocks are and how to use them to facilitate testing in JavaScript.
7年前
Increase your marketability
Kent C. Dodds Blog
Some tips of things that I've done that have helped me get where I want to be in the industry.
7年前
Solidifying what you learn
Kent C. Dodds Blog
Teaching is nature's way of letting you know how sloppy your understanding is.
7年前
The state reducer pattern ⚛️ 🏎
Kent C. Dodds Blog
A new pattern has been implemented in downshift and it's awesome. Use the state reducer pattern to make your components more useful.
7年前
Answers to common questions about render props
Kent C. Dodds Blog
Because there's a ton of hype, and a bunch of questions ⚛️
7年前
React's ⚛️ new Context API
Kent C. Dodds Blog
It's way more ergonomic, it's no longer "experimental," and it's now a first-class API! OH, AND IT USES A RENDER PROP!
7年前
Concerning toolkits 🛠 📦
Kent C. Dodds Blog
The merits and use cases of consolidating tools into one "zero config" toolkit.
7年前
Spelunking in node_modules 👷
Kent C. Dodds Blog
Deep dive into Jest, React, and jsdom: A story about how I go about finding and fixing bugs in my dependencies.
7年前
Building Production Apps 100% in the browser
Kent C. Dodds Blog
How I built & deployed 2 production apps without downloading any source code.
7年前
Testing ⚛️ components using render props
Kent C. Dodds Blog
Let's look at how we can write tests for React components that use render props!
7年前
But really, what is a JavaScript test?
Kent C. Dodds Blog
Let's take a step back and understand automated testing of JavaScript from square one.
7年前
Merry Christmas!
Kent C. Dodds Blog
As I write this, it's Christmas Eve. My kids have fallen asleep and I've wrapped up the last few presents I've made or purchased for them...
7年前
The Beginner's Guide to ReactJS
Kent C. Dodds Blog
The course is free forever on egghead.io! Let's talk about how it teaches even developers experienced with React ⚛️
7年前
Giving good demos
Kent C. Dodds Blog
I gave a pretty good demo and here are some things I did that might help you give good demos too.
7年前
Advanced React Component Patterns
Kent C. Dodds Blog
An overview of some of the patterns covered in my recently released egghead.io course (free until Friday).
7年前
Learn React Fundamentals 🆓 and Advanced Patterns ⚛️ 🎁
Kent C. Dodds Blog
Two and a half hours of new beginner (free) and advanced React material are now available egghead.io!
7年前
Becoming an Open Source Project Maintainer
Kent C. Dodds Blog
Some tips and tricks that have worked for me.
7年前
Rendering a function with React
Kent C. Dodds Blog
How I tricked React into rendering a function (not call it... render it)
7年前
Improving the usability of your modules
Kent C. Dodds Blog
How to make your modules more generically useful and easier to test.
7年前
Effective Snapshot Testing
Kent C. Dodds Blog
Snapshot testing can be useless, or super useful. Your choice. Let's talk about how to make them useful.
7年前
Make maintainable workarounds with codegen 💥
Kent C. Dodds Blog
Sometimes you need to workaround issues in other libraries. These workarounds can often lead to messy code. codegen is a tool that helps...
7年前
How to give rendering control to users with prop getters
Kent C. Dodds Blog
Render props are awesome, put it together with prop getters and you have an awesome combination to give users of your React components...
7年前
Tools without config 🛠📦
Kent C. Dodds Blog
TL;DR/Spoiler alert: I'm working on a tool at PayPal called paypal-scripts and a personal one called kcd-scripts. You should try it too!
7年前
Introducing downshift 🏎 for React ⚛️
Kent C. Dodds Blog
downshift 🏎 is the primitive you need to build simple, flexible, WAI-ARIA compliant React...
7年前
How writing custom Babel & ESLint plugins can increase productivity & improve user experience
Kent C. Dodds Blog
And it's way more approachable than you think...
7年前
Classes, Complexity, and Functional Programming
Kent C. Dodds Blog
When I use classes, when I don't, what I do instead, and why
7年前
Introducing glamorous 💄
Kent C. Dodds Blog
A styled-components 💅 and jsxstyle inspired solution for styling ⚛️ React Components from PayPal
8年前
Tips for making a CLI-based tool with node
Kent C. Dodds Blog
I got this question on my AMA and decided to turn the answer into a formal blogpost.
8年前
Kent OOO (Out Of the Office)
Kent C. Dodds Blog
Why this week's episode of JavaScript Air is canceled and where I'm going...
9年前
Introducing: How to Contribute to Open Source
Kent C. Dodds Blog
My free, first-timer friendly egghead.io series all about how to contribute to open source projects on GitHub.
9年前
Misunderstanding ES6 Modules, Upgrading Babel, Tears, and a Solution
Kent C. Dodds Blog
On October 29th, 2015, Sebastian McKenzie, James Kyle, and the rest of the Babel team dropped a huge major release for frontend developers...
9年前
Semicolons in JavaScript: A preference
Kent C. Dodds Blog
An argument for why use of semicolons in JavaScript source is a preference
9年前
Please, don't commit commented out code
Kent C. Dodds Blog
Some solid reasons you should delete code that is not used
9年前
How to Write a JavaScript Library
Kent C. Dodds Blog
There are so many reasons to open source your code. But knowing how to do it can be a real challenge.
9年前
Newspaper Code Structure
Kent C. Dodds Blog
Your code should read like a newspaper article. Important stuff at the top, details at the bottom. I have a particular convention for my...
10年前