This site runs best with JavaScript enabled.
Looking for something specific? Search for a blogpost here.

Understanding React's key prop

Play around with this form: Specifically, try changing the subject, then switch the topic and notice that the value in the input field doesn't change to a more sensible subject. Even if you type something like "My company needs training" and then changing the topic from "Training" to "Question" it…

Read →

How to Enable React Concurrent Mode

React's new Concurrent Mode has just been published in the experimental release channel . It's the result of years of research and that shows. If you'd like to learn more about why it's so cool, definitely watch Dan Abramov's talk at JSIceland . And people have started playing around with it and…

Read →

How to add testing to an existing project

We've all been there. You're working on an app that was "just a prototype" and was "definitely not going to get shipped this way." Or maybe you didn't have time to prototype it, and you certainly didn't have time to write tests for it. Or perhaps you join a team that's just never tested their code…

Read →

Building the Open Source Community We Want

I've been participating in the creation of open source software since 2012. My first pull request was to fix a typo I saw in a comment of the Java Playframework. It wasn't much, but being my first ever contribution, it was new, exciting, and even a little stressful. And on the same day a…

Read →

Making your UI tests resilient to change

Current Available Translations: Traditional Chinese You're a developer and you want to avoid shipping a broken login experience, so you're writing some tests to make sure you don't. Let's get a quick look at an example of such a form : Now, if we were to test this form, we'd want to fill in the…

Read →

Speed up your App with Web Workers

I remember when I started learning about threads in Java. My college professor pulled up iTunes, hit play on a song and said: "if it weren't for threads, I wouldn't be able to click any of these buttons at the same time iTunes is playing this music." JavaScript is single-threaded. This means that…

Read →

Don't Sync State. Derive It!

In my Learn React Hooks workshop material, we have an exercise where we build a tic-tac-toe game using React's useState hook (based on the official React tutorial). Here's the finished version of that exercise: https://codesandbox.io/s/github/kentcdodds/learn-react-hooks/tree/master/?fontsize=1…

Read →