Kent C. Dodds Blog
https://kentcdodds.com/blog
The Kent C. Dodds Blogen-usKody the Koala40<![CDATA[Implementing Hybrid Semantic + Lexical Search]]><![CDATA[Semantic search alone wasn't good enough. Here's how I improved search on kentcdodds.com through three rounds of iteration with Cursor and GPT-5.4, each time learning something that the previous design missed.]]>2026-03-16
https://kentcdodds.com/blog/implementing-hybrid-semantic-lexical-search
https://kentcdodds.com/blog/implementing-hybrid-semantic-lexical-search<![CDATA[Simplifying Containers with Cloudflare Sandboxes]]><![CDATA[How I replaced a long-lived Cloudflare Container with a one-shot Cloudflare Sandbox, deleted most of the control-plane code, and let an agent do the heavy lifting in less than an hour of my own time.]]>2026-03-11
https://kentcdodds.com/blog/simplifying-containers-with-cloudflare-sandboxes
https://kentcdodds.com/blog/simplifying-containers-with-cloudflare-sandboxes<![CDATA[Migrating to Workspaces and Nx]]><![CDATA[The interesting part of moving kentcdodds.com to npm workspaces was not the file moves. It was everything the file moves broke.]]>2026-03-10
https://kentcdodds.com/blog/migrating-to-workspaces-and-nx
https://kentcdodds.com/blog/migrating-to-workspaces-and-nx<![CDATA[Offloading FFmpeg with Cloudflare]]><![CDATA[How I moved Call Kent podcast episode processing off my primary Fly.io app server and onto Cloudflare Queues and Containers: what broke, what I missed, and whether it was worth the complexity.]]>2026-03-09
https://kentcdodds.com/blog/offloading-ffmpeg-with-cloudflare
https://kentcdodds.com/blog/offloading-ffmpeg-with-cloudflare<![CDATA[Building Semantic Search on my Content]]><![CDATA[I've added some pretty cool AI-powered features to kentcdodds.com and I want to tell you all about it.]]>2026-02-24
https://kentcdodds.com/blog/building-semantic-search-on-my-content
https://kentcdodds.com/blog/building-semantic-search-on-my-content<![CDATA[Helping YOU ask ME questions with AI]]><![CDATA[Here's how I've made it easier for you to call into the Call Kent podcast without having to record yourself and also make yourself anonymous using AI.]]>2026-02-24
https://kentcdodds.com/blog/helping-you-ask-me-questions-with-ai
https://kentcdodds.com/blog/helping-you-ask-me-questions-with-ai<![CDATA[How I used Cursor to Migrate Frameworks]]><![CDATA[I upgraded kentcdodds.com from Remix v2 to React Router v7 in a day with over 17k lines of code changed. Here's how I did it.]]>2026-02-20
https://kentcdodds.com/blog/how-i-used-cursor-to-migrate-frameworks
https://kentcdodds.com/blog/how-i-used-cursor-to-migrate-frameworks<![CDATA[The Dow's Start on the Covenant Path]]><![CDATA[My experience sharing the gospel with Jeremiah and Beiyi Dow]]>2026-01-05
https://kentcdodds.com/blog/the-dows-start-on-the-covenant-path
https://kentcdodds.com/blog/the-dows-start-on-the-covenant-path<![CDATA[2025 in Review]]><![CDATA[Looking back over my 2025 and looking forward to my 2026]]>2025-12-31
https://kentcdodds.com/blog/2025-in-review
https://kentcdodds.com/blog/2025-in-review<![CDATA[The next chapter: EpicAI.pro]]><![CDATA[What I'm working on with AI education and why I think it's the future.]]>2025-04-10
https://kentcdodds.com/blog/the-next-chapter-epicai-pro
https://kentcdodds.com/blog/the-next-chapter-epicai-pro<![CDATA[AI is taking your job]]><![CDATA[AI is changing how hiring works, and that makes in person connections even more important.]]>2024-11-21
https://kentcdodds.com/blog/ai-is-taking-your-job
https://kentcdodds.com/blog/ai-is-taking-your-job<![CDATA[How I increased my visibility]]><![CDATA[Someone asked me this and here's my answer.]]>2024-10-29
https://kentcdodds.com/blog/how-i-increased-my-visibility
https://kentcdodds.com/blog/how-i-increased-my-visibility<![CDATA[2023 in Review]]><![CDATA[A review of what happened in the life of Kent C. Dodds in 2023]]>2023-12-20
https://kentcdodds.com/blog/2023-in-review
https://kentcdodds.com/blog/2023-in-review<![CDATA[Launching Epic Web]]><![CDATA[The story of how Epic Web came to be]]>2023-12-20
https://kentcdodds.com/blog/launching-epic-web
https://kentcdodds.com/blog/launching-epic-web<![CDATA[Stop Being a Junior]]><![CDATA[Some advise for people who still consider themselves junior developers]]>2023-05-30
https://kentcdodds.com/blog/stop-being-a-junior
https://kentcdodds.com/blog/stop-being-a-junior<![CDATA[RSC with Dan Abramov and Joe Savona Live Stream]]><![CDATA[I had a live streamed conversation with Joe Savona and Dan Abramov. Here's a summary of our discussion.]]>2023-03-14
https://kentcdodds.com/blog/rsc-with-dan-abramov-and-joe-savona-live-stream
https://kentcdodds.com/blog/rsc-with-dan-abramov-and-joe-savona-live-stream<![CDATA[Fixing a Memory Leak in a Production Node.js App]]><![CDATA[How I found and fixed a memory leak on kentcdodds.com]]>2023-01-12
https://kentcdodds.com/blog/fixing-a-memory-leak-in-a-production-node-js-app
https://kentcdodds.com/blog/fixing-a-memory-leak-in-a-production-node-js-app<![CDATA[2022 in Review]]><![CDATA[A review of what happened in the KCD world in 2022]]>2022-12-29
https://kentcdodds.com/blog/2022-in-review
https://kentcdodds.com/blog/2022-in-review<![CDATA[My Car Accident]]><![CDATA[I was involved in a very bad car accident in 2022. Here's the story.]]>2022-12-29
https://kentcdodds.com/blog/my-car-accident
https://kentcdodds.com/blog/my-car-accident<![CDATA[I Migrated from a Postgres Cluster to Distributed SQLite with LiteFS]]><![CDATA[Why and how I migrated from distributed postgres to distributed sqlite on kentcdodds.com]]>2022-11-21
https://kentcdodds.com/blog/i-migrated-from-a-postgres-cluster-to-distributed-sqlite-with-litefs
https://kentcdodds.com/blog/i-migrated-from-a-postgres-cluster-to-distributed-sqlite-with-litefs<![CDATA[I'm building EpicWeb.dev]]><![CDATA[I've struck out on my own again to focus on my most ambitious project yet.]]>2022-09-07
https://kentcdodds.com/blog/i-m-building-epicweb-dev
https://kentcdodds.com/blog/i-m-building-epicweb-dev<![CDATA[A review of my time at Remix]]><![CDATA[As I move on to my next adventure, I want to take this opportunity to review what I accomplished while at Remix.]]>2022-09-06
https://kentcdodds.com/blog/a-review-of-my-time-at-remix
https://kentcdodds.com/blog/a-review-of-my-time-at-remix<![CDATA[Remix: The Yang to React's Yin]]><![CDATA[Remix fills the missing piece that all React web applications need: The Network Chasm]]>2022-03-24
https://kentcdodds.com/blog/remix-the-yang-to-react-s-yin
https://kentcdodds.com/blog/remix-the-yang-to-react-s-yin<![CDATA[How I help you build better websites]]><![CDATA[I'm making a career move to more effectively help you make the web (and the world) better.]]>2021-11-15
https://kentcdodds.com/blog/how-i-help-you-build-better-websites
https://kentcdodds.com/blog/how-i-help-you-build-better-websites<![CDATA[Why I Love Remix]]><![CDATA[I've written tens of thousands of lines of code with Remix and I want to tell you why I love using this framework.]]>2021-11-13
https://kentcdodds.com/blog/why-i-love-remix
https://kentcdodds.com/blog/why-i-love-remix<![CDATA[The State Initializer Pattern]]><![CDATA[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.]]>2021-11-05
https://kentcdodds.com/blog/the-state-initializer-pattern
https://kentcdodds.com/blog/the-state-initializer-pattern<![CDATA[How to React âï¸]]><![CDATA[Let's see how learning React âï¸ in the right order can make it less overwhelming.]]>2021-11-03
https://kentcdodds.com/blog/how-to-react
https://kentcdodds.com/blog/how-to-react<![CDATA[Get a catch block error message with TypeScript]]><![CDATA[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.]]>2021-10-28
https://kentcdodds.com/blog/get-a-catch-block-error-message-with-typescript
https://kentcdodds.com/blog/get-a-catch-block-error-message-with-typescript<![CDATA[Building an awesome image loading experience]]><![CDATA[How Unsplash's blurred image loading works and why I did mine differently for a more excellent experience on my site.]]>2021-10-19
https://kentcdodds.com/blog/building-an-awesome-image-loading-experience
https://kentcdodds.com/blog/building-an-awesome-image-loading-experience<![CDATA[How Remix makes CSS clashes predictable]]><![CDATA[Remix has this beautifully simple feature for CSS that I want to tell you all about.]]>2021-10-13
https://kentcdodds.com/blog/how-remix-makes-css-clashes-predictable
https://kentcdodds.com/blog/how-remix-makes-css-clashes-predictable<![CDATA[How I built a modern website in 2021]]><![CDATA[I rewrote kentcdodds.com using the latest technologies and I want to talk about what I did.]]>2021-09-29
https://kentcdodds.com/blog/how-i-built-a-modern-website-in-2021
https://kentcdodds.com/blog/how-i-built-a-modern-website-in-2021<![CDATA[How to use React Context effectively]]><![CDATA[How to create and expose React Context providers and consumers]]>2021-06-05
https://kentcdodds.com/blog/how-to-use-react-context-effectively
https://kentcdodds.com/blog/how-to-use-react-context-effectively<![CDATA[Static vs Unit vs Integration vs E2E Testing for Frontend Apps]]><![CDATA[What these mean, why they matter, and why they don't]]>2021-06-03
https://kentcdodds.com/blog/static-vs-unit-vs-integration-vs-e2e-tests
https://kentcdodds.com/blog/static-vs-unit-vs-integration-vs-e2e-tests<![CDATA[The Testing Trophy and Testing Classifications]]><![CDATA[How to interpret the testing trophy for optimal clarity]]>2021-06-03
https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications
https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications<![CDATA[Array reduce vs chaining vs for loop]]><![CDATA[A comparison of different approaches to operating on an array]]>2021-05-24
https://kentcdodds.com/blog/array-reduce-vs-chaining-vs-for-loop
https://kentcdodds.com/blog/array-reduce-vs-chaining-vs-for-loop<![CDATA[Don't Solve Problems, Eliminate Them]]><![CDATA[How eliminating problems can drastically simplify your codebases and life]]>2021-05-11
https://kentcdodds.com/blog/don-t-solve-problems-eliminate-them
https://kentcdodds.com/blog/don-t-solve-problems-eliminate-them<![CDATA[Super Simple Start to Remix]]><![CDATA[The simplest distraction-free version of a remix app]]>2021-05-03
https://kentcdodds.com/blog/super-simple-start-to-remix
https://kentcdodds.com/blog/super-simple-start-to-remix<![CDATA[Super Simple Start to ESModules in Node.js]]><![CDATA[All supported versions of Node.js support ESModules now. Here's how to get started using them.]]>2021-04-08
https://kentcdodds.com/blog/super-simple-start-to-es-modules-in-node-js
https://kentcdodds.com/blog/super-simple-start-to-es-modules-in-node-js<![CDATA[JavaScript Pass By Value Function Parameters]]><![CDATA[How it works and how to work with it... and around it]]>2021-03-23
https://kentcdodds.com/blog/javascript-pass-by-value-function-parameters
https://kentcdodds.com/blog/javascript-pass-by-value-function-parameters<![CDATA[How to write a Constrained Identity Function (CIF) in TypeScript]]><![CDATA[A handy advanced TypeScript pattern to increase your productivity.]]>2021-03-09
https://kentcdodds.com/blog/how-to-write-a-constrained-identity-function-in-typescript
https://kentcdodds.com/blog/how-to-write-a-constrained-identity-function-in-typescript<![CDATA[How to optimize your context value]]><![CDATA[Why and how you can optimize your context provider's value to avoid performance issues]]>2021-03-08
https://kentcdodds.com/blog/how-to-optimize-your-context-value
https://kentcdodds.com/blog/how-to-optimize-your-context-value<![CDATA[How to write a React Component in TypeScript]]><![CDATA[There are plenty of ways to do it, here's how I recommend typing React Components]]>2021-03-04
https://kentcdodds.com/blog/how-to-write-a-react-component-in-typescript
https://kentcdodds.com/blog/how-to-write-a-react-component-in-typescript<![CDATA[TypeScript Function Syntaxes]]><![CDATA[The syntax for various functions and function types in TypeScript with simple examples.]]>2021-02-25
https://kentcdodds.com/blog/typescript-function-syntaxes
https://kentcdodds.com/blog/typescript-function-syntaxes<![CDATA[Listify a JavaScript Array]]><![CDATA[Make a human readable list from an array in JavaScript.]]>2021-02-18
https://kentcdodds.com/blog/listify-a-java-script-array
https://kentcdodds.com/blog/listify-a-java-script-array<![CDATA[Build vs Buy: Component Libraries edition]]><![CDATA[Some things to think about before you decide to create your own component library.]]>2021-02-04
https://kentcdodds.com/blog/build-vs-buy-component-libraries-edition
https://kentcdodds.com/blog/build-vs-buy-component-libraries-edition<![CDATA[Using fetch with TypeScript]]><![CDATA[How to make HTTP requests with fetch and TypeScript]]>2021-01-26
https://kentcdodds.com/blog/using-fetch-with-type-script
https://kentcdodds.com/blog/using-fetch-with-type-script<![CDATA[Wrapping React.useState with TypeScript]]><![CDATA[How to make a custom hook that wraps useState with TypeScript properly]]>2021-01-19
https://kentcdodds.com/blog/wrapping-react-use-state-with-type-script
https://kentcdodds.com/blog/wrapping-react-use-state-with-type-script<![CDATA[Define function overload types with TypeScript]]><![CDATA[Have your JS expressiveness and type it too.]]>2021-01-12
https://kentcdodds.com/blog/define-function-overload-types-with-type-script
https://kentcdodds.com/blog/define-function-overload-types-with-type-script<![CDATA[2020 in Review]]><![CDATA[An overview of what I accomplished in 2020 and a bit about my goals for 2021.]]>2021-01-04
https://kentcdodds.com/blog/2020-in-review
https://kentcdodds.com/blog/2020-in-review<![CDATA[Business and Engineering alignment]]><![CDATA[How to convince "the business folks" to let you do what you want.]]>2020-12-10
https://kentcdodds.com/blog/business-and-engineering-alignment
https://kentcdodds.com/blog/business-and-engineering-alignment<![CDATA[Hi, thanks for reaching out to me ð]]><![CDATA[How to get help from Kent]]>2020-12-02
https://kentcdodds.com/blog/hi-thanks-for-reaching-out-to-me
https://kentcdodds.com/blog/hi-thanks-for-reaching-out-to-me<![CDATA[useEffect vs useLayoutEffect]]><![CDATA[The simple rules for when to use each.]]>2020-12-01
https://kentcdodds.com/blog/useeffect-vs-uselayouteffect
https://kentcdodds.com/blog/useeffect-vs-uselayouteffect<![CDATA[Super simple start to Firebase functions]]><![CDATA[The simplest getting started guide for Firebase Cloud functions]]>2020-11-12
https://kentcdodds.com/blog/super-simple-start-to-firebase-functions
https://kentcdodds.com/blog/super-simple-start-to-firebase-functions<![CDATA[Super simple start to Netlify functions]]><![CDATA[Easily create server code without worrying about managing servers yourself]]>2020-11-11
https://kentcdodds.com/blog/super-simple-start-to-netlify-functions
https://kentcdodds.com/blog/super-simple-start-to-netlify-functions<![CDATA[Super Simple Start to css variables]]><![CDATA[How to get started using css variables]]>2020-10-28
https://kentcdodds.com/blog/super-simple-start-to-css-variables
https://kentcdodds.com/blog/super-simple-start-to-css-variables<![CDATA[Favor Progress Over Pride in Open Source]]><![CDATA[How I deprecated my most popular open source project in favor of a better library]]>2020-08-24
https://kentcdodds.com/blog/favor-progress-over-pride-in-open-source
https://kentcdodds.com/blog/favor-progress-over-pride-in-open-source<![CDATA[Testing Implementation Details]]><![CDATA[Testing implementation details is a recipe for disaster. Why is that? And what does it even mean?]]>2020-08-17
https://kentcdodds.com/blog/testing-implementation-details
https://kentcdodds.com/blog/testing-implementation-details<![CDATA[How getting into Open Source has been awesome for me]]><![CDATA[An anecdotal argument for contributing and using open source]]>2020-08-10
https://kentcdodds.com/blog/how-getting-into-open-source-has-been-awesome-for-me
https://kentcdodds.com/blog/how-getting-into-open-source-has-been-awesome-for-me<![CDATA[useState lazy initialization and function updates]]><![CDATA[When to pass a function to useState and setState]]>2020-08-03
https://kentcdodds.com/blog/use-state-lazy-initialization-and-function-updates
https://kentcdodds.com/blog/use-state-lazy-initialization-and-function-updates<![CDATA[Use ternaries rather than && in JSX]]><![CDATA[What problems can happen when you use && to conditionally render content in JSX]]>2020-07-27
https://kentcdodds.com/blog/use-ternaries-rather-than-and-and-in-jsx
https://kentcdodds.com/blog/use-ternaries-rather-than-and-and-in-jsx<![CDATA[Application State Management with React]]><![CDATA[How React is all you need to manage your application state]]>2020-07-21
https://kentcdodds.com/blog/application-state-management-with-react
https://kentcdodds.com/blog/application-state-management-with-react<![CDATA[Use react-error-boundary to handle errors in React]]><![CDATA[How to simplify your React apps by handling React errors effectively with react-error-boundary]]>2020-07-20
https://kentcdodds.com/blog/use-react-error-boundary-to-handle-errors-in-react
https://kentcdodds.com/blog/use-react-error-boundary-to-handle-errors-in-react<![CDATA[JavaScript to Know for React]]><![CDATA[What JavaScript features you should be familiar with when learning and using React]]>2020-07-15
https://kentcdodds.com/blog/javascript-to-know-for-react
https://kentcdodds.com/blog/javascript-to-know-for-react<![CDATA[How I structure Express apps]]><![CDATA[The build/dev tools and scripts I use for Node backends.]]>2020-07-13
https://kentcdodds.com/blog/how-i-structure-express-apps
https://kentcdodds.com/blog/how-i-structure-express-apps<![CDATA[What open source project should I contribute to?]]><![CDATA[My silver bullet answer to this frequently posed question, and how to get started]]>2020-07-06
https://kentcdodds.com/blog/what-open-source-project-should-i-contribute-to
https://kentcdodds.com/blog/what-open-source-project-should-i-contribute-to<![CDATA[When I follow TDD]]><![CDATA[Test-Driven Development doesn't always make sense, here's when it does for me.]]>2020-06-29
https://kentcdodds.com/blog/when-i-follow-tdd
https://kentcdodds.com/blog/when-i-follow-tdd<![CDATA[AHA Programming ð¡]]><![CDATA[The dangers of DRY, the web of WET, the awesomeness of AHA.]]>2020-06-22
https://kentcdodds.com/blog/aha-programming
https://kentcdodds.com/blog/aha-programming<![CDATA[How I Record Educational Videos]]><![CDATA[My process for making high value-to-minute content.]]>2020-06-22
https://kentcdodds.com/blog/how-i-record-educational-videos
https://kentcdodds.com/blog/how-i-record-educational-videos<![CDATA[Should I write a test or fix a bug?]]><![CDATA[How to prioritize tests relative to everything else.]]>2020-06-15
https://kentcdodds.com/blog/should-i-write-a-test-or-fix-a-bug
https://kentcdodds.com/blog/should-i-write-a-test-or-fix-a-bug<![CDATA[Stop mocking fetch]]><![CDATA[Why you shouldn't mock fetch or your API Client in your tests and what to do instead.]]>2020-06-03
https://kentcdodds.com/blog/stop-mocking-fetch
https://kentcdodds.com/blog/stop-mocking-fetch<![CDATA[Intentional Career Building]]><![CDATA[A challenge and ideas for you to do something to build your career.]]>2020-05-26
https://kentcdodds.com/blog/intentional-career-building
https://kentcdodds.com/blog/intentional-career-building<![CDATA[Improve test error messages of your abstractions]]><![CDATA[How to manipulate stack traces to get beautiful error messages with Jest and your test helper functions.]]>2020-05-18
https://kentcdodds.com/blog/improve-test-error-messages-of-your-abstractions
https://kentcdodds.com/blog/improve-test-error-messages-of-your-abstractions<![CDATA[Tracing user interactions with React]]><![CDATA[How to use the (EXPERIMENTAL) interactions tracing API in React.]]>2020-05-08
https://kentcdodds.com/blog/tracing-user-interactions-with-react
https://kentcdodds.com/blog/tracing-user-interactions-with-react<![CDATA[Eliminate an entire category of bugs with a few simple tools]]><![CDATA[How you can use a few simple static code analysis tools to avoid common programming bugs.]]>2020-05-07
https://kentcdodds.com/blog/eliminate-an-entire-category-of-bugs-with-a-few-simple-tools
https://kentcdodds.com/blog/eliminate-an-entire-category-of-bugs-with-a-few-simple-tools<![CDATA[Common mistakes with React Testing Library]]><![CDATA[Some mistakes I frequently see people making with React Testing Library.]]>2020-05-04
https://kentcdodds.com/blog/common-mistakes-with-react-testing-library
https://kentcdodds.com/blog/common-mistakes-with-react-testing-library<![CDATA[Super Simple Start to React]]><![CDATA[The most simple React setup imaginable]]>2020-04-24
https://kentcdodds.com/blog/super-simple-start-to-react
https://kentcdodds.com/blog/super-simple-start-to-react<![CDATA[Stop using client-side route redirects]]><![CDATA[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.]]>2020-04-13
https://kentcdodds.com/blog/stop-using-client-side-route-redirects
https://kentcdodds.com/blog/stop-using-client-side-route-redirects<![CDATA[The State Reducer Pattern with React Hooks]]><![CDATA[A pattern for you to use in custom hooks to enhance the power and flexibility of your hooks.]]>2020-04-06
https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks
https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks<![CDATA[Function forms]]><![CDATA[When I prefer to use function declarations instead of arrow functions]]>2020-04-05
https://kentcdodds.com/blog/function-forms
https://kentcdodds.com/blog/function-forms<![CDATA[Replace axios with a simple custom fetch wrapper]]><![CDATA[Axios can do a ton of stuff, but here's a simpler solution that can handle most use cases]]>2020-03-30
https://kentcdodds.com/blog/replace-axios-with-a-simple-custom-fetch-wrapper
https://kentcdodds.com/blog/replace-axios-with-a-simple-custom-fetch-wrapper<![CDATA[How to test custom React hooks]]><![CDATA[Get confidence your custom React hooks work properly with solid tests.]]>2020-03-22
https://kentcdodds.com/blog/how-to-test-custom-react-hooks
https://kentcdodds.com/blog/how-to-test-custom-react-hooks<![CDATA[React Production Performance Monitoring]]><![CDATA[How to set up performance monitoring for production React applications.]]>2020-03-16
https://kentcdodds.com/blog/react-production-performance-monitoring
https://kentcdodds.com/blog/react-production-performance-monitoring<![CDATA[Should I useState or useReducer?]]><![CDATA[Two built-in React hooks that handle state, which one should you use?]]>2020-03-09
https://kentcdodds.com/blog/should-i-usestate-or-usereducer
https://kentcdodds.com/blog/should-i-usestate-or-usereducer<![CDATA[Stop using isLoading booleans]]><![CDATA[Why using a status enum (or even better: a **state machine**) will help your app stay bug free]]>2020-03-02
https://kentcdodds.com/blog/stop-using-isloading-booleans
https://kentcdodds.com/blog/stop-using-isloading-booleans<![CDATA[Make Your Test Fail]]><![CDATA[If you're not careful you can write a test that's worse than having no tests at all]]>2020-02-24
https://kentcdodds.com/blog/make-your-test-fail
https://kentcdodds.com/blog/make-your-test-fail<![CDATA[Make your own DevTools]]><![CDATA[How creating DevTools specific for your own app can improve your productivity]]>2020-02-17
https://kentcdodds.com/blog/make-your-own-dev-tools
https://kentcdodds.com/blog/make-your-own-dev-tools<![CDATA[An Argument for Automation]]><![CDATA[Why it can be worth spending 1 hour automating a 10 second task]]>2020-02-10
https://kentcdodds.com/blog/automation
https://kentcdodds.com/blog/automation<![CDATA[Fix the "not wrapped in act(...)" warning]]><![CDATA[There are a few reasons you're getting this warning. Here's how you fix it.]]>2020-02-03
https://kentcdodds.com/blog/fix-the-not-wrapped-in-act-warning
https://kentcdodds.com/blog/fix-the-not-wrapped-in-act-warning<![CDATA[Super Simple Start to ESModules in the Browser]]><![CDATA[All major browsers support ESModules now. Here's how to get started using them.]]>2020-01-22
https://kentcdodds.com/blog/super-simple-start-to-es-modules-in-the-browser
https://kentcdodds.com/blog/super-simple-start-to-es-modules-in-the-browser<![CDATA[Implementing a simple state machine library in JavaScript]]><![CDATA[Let's write a state machine abstraction together to understand it better]]>2020-01-20
https://kentcdodds.com/blog/implementing-a-simple-state-machine-library-in-javascript
https://kentcdodds.com/blog/implementing-a-simple-state-machine-library-in-javascript<![CDATA[2010s Decade in Review]]><![CDATA[The 2010s are over, time to think back, then forward]]>2019-12-31
https://kentcdodds.com/blog/2010s-decade-in-review
https://kentcdodds.com/blog/2010s-decade-in-review<![CDATA[Why users care about how you write code]]><![CDATA[Your coding practices and technology choices impact user experience...]]>2019-12-23
https://kentcdodds.com/blog/why-users-care-about-how-you-write-code
https://kentcdodds.com/blog/why-users-care-about-how-you-write-code<![CDATA[Why I avoid nesting closures]]><![CDATA[A little tendency I have to reduce cognitive load for readers of my code.]]>2019-12-13
https://kentcdodds.com/blog/why-i-avoid-nesting-closures
https://kentcdodds.com/blog/why-i-avoid-nesting-closures<![CDATA[Don't call a React function component]]><![CDATA[The difference between React.createElement and calling a function component directly]]>2019-12-08
https://kentcdodds.com/blog/dont-call-a-react-function-component
https://kentcdodds.com/blog/dont-call-a-react-function-component<![CDATA[Why your team needs TestingJavaScript.com]]><![CDATA[A letter you can copy/paste and send to your boss.]]>2019-12-03
https://kentcdodds.com/blog/why-your-team-needs-testing-javascript-com
https://kentcdodds.com/blog/why-your-team-needs-testing-javascript-com<![CDATA[Inversion of Control]]><![CDATA[A simple principle that can drastically improve your reusable code]]>2019-11-18
https://kentcdodds.com/blog/inversion-of-control
https://kentcdodds.com/blog/inversion-of-control<![CDATA[Understanding React's key prop]]><![CDATA[The key prop is a mechanism for controlling component instances.]]>2019-11-11
https://kentcdodds.com/blog/understanding-reacts-key-prop
https://kentcdodds.com/blog/understanding-reacts-key-prop<![CDATA[How to Enable React Concurrent Mode]]><![CDATA[Concurrent Mode is an enormous improvement for user experience and developer experience. Here's how you enable it.]]>2019-11-04
https://kentcdodds.com/blog/how-to-enable-react-concurrent-mode
https://kentcdodds.com/blog/how-to-enable-react-concurrent-mode<![CDATA[How to add testing to an existing project]]><![CDATA[This is how you get started in testing your application]]>2019-10-28
https://kentcdodds.com/blog/how-to-add-testing-to-an-existing-project
https://kentcdodds.com/blog/how-to-add-testing-to-an-existing-project<![CDATA[Building the Open Source Community We Want]]><![CDATA[Let's be intentional about the open source community we want and work hard to build it.]]>2019-10-08
https://kentcdodds.com/blog/building-the-open-source-community-we-want
https://kentcdodds.com/blog/building-the-open-source-community-we-want<![CDATA[Making your UI tests resilient to change]]><![CDATA[User interface tests are famously finicky and prone to breakage. Let's talk about how to improve this.]]>2019-10-07
https://kentcdodds.com/blog/making-your-ui-tests-resilient-to-change
https://kentcdodds.com/blog/making-your-ui-tests-resilient-to-change<![CDATA[Speed up your App with Web Workers]]><![CDATA[How to get started using web workers for practical use cases]]>2019-10-04
https://kentcdodds.com/blog/speed-up-your-app-with-web-workers
https://kentcdodds.com/blog/speed-up-your-app-with-web-workers<![CDATA[Don't Sync State. Derive It!]]><![CDATA[How to avoid state synchronization bugs and complexity with derived state.]]>2019-09-30
https://kentcdodds.com/blog/dont-sync-state-derive-it
https://kentcdodds.com/blog/dont-sync-state-derive-it<![CDATA[State Colocation will make your React app faster]]><![CDATA[How state colocation makes your app not only more maintainable but also faster.]]>2019-09-23
https://kentcdodds.com/blog/state-colocation-will-make-your-react-app-faster
https://kentcdodds.com/blog/state-colocation-will-make-your-react-app-faster<![CDATA[Profile a React App for Performance]]><![CDATA[How to use the React DevTools and React's profiling build to properly profile a production app]]>2019-09-16
https://kentcdodds.com/blog/profile-a-react-app-for-performance
https://kentcdodds.com/blog/profile-a-react-app-for-performance<![CDATA[Fix the slow render before you fix the re-render]]><![CDATA[How to start optimizing your React app renders]]>2019-09-09
https://kentcdodds.com/blog/fix-the-slow-render-before-you-fix-the-re-render
https://kentcdodds.com/blog/fix-the-slow-render-before-you-fix-the-re-render<![CDATA[How to implement useState with useReducer]]><![CDATA[A fun exercise to help understand the differences and use cases of these two related hooks]]>2019-08-30
https://kentcdodds.com/blog/how-to-implement-usestate-with-usereducer
https://kentcdodds.com/blog/how-to-implement-usestate-with-usereducer<![CDATA[Write fewer, longer tests]]><![CDATA[Making tests too short often leads to poor testing practices and way more tests.]]>2019-08-26
https://kentcdodds.com/blog/write-fewer-longer-tests
https://kentcdodds.com/blog/write-fewer-longer-tests<![CDATA[How to get experience as a software engineer]]><![CDATA[There's no shortcut to experience, but there are things you can do to increase the impact of your time.]]>2019-08-12
https://kentcdodds.com/blog/how-to-get-experience-as-a-software-engineer
https://kentcdodds.com/blog/how-to-get-experience-as-a-software-engineer<![CDATA[5 Tips to Help You Avoid React Hooks Pitfalls]]><![CDATA[Let's explore some hook gotchas and how to avoid them.]]>2019-08-05
https://kentcdodds.com/blog/react-hooks-pitfalls
https://kentcdodds.com/blog/react-hooks-pitfalls<![CDATA[Avoid Nesting when you're Testing]]><![CDATA[Why using hooks like beforeEach as a mechanism for code reuse leads to unmaintainable tests and how to avoid it.]]>2019-07-29
https://kentcdodds.com/blog/avoid-nesting-when-youre-testing
https://kentcdodds.com/blog/avoid-nesting-when-youre-testing<![CDATA[When to break up a component into multiple components]]><![CDATA[At what point does it make sense to break a single component into multiple components?]]>2019-07-19
https://kentcdodds.com/blog/when-to-break-up-a-component-into-multiple-components
https://kentcdodds.com/blog/when-to-break-up-a-component-into-multiple-components<![CDATA[Write tests. Not too many. Mostly integration.]]>< [tweeted](https://x.com/rauchg/status/807626710350839808) this a while back. Let's take a dive into what it means.]]>2019-07-13
https://kentcdodds.com/blog/write-tests
https://kentcdodds.com/blog/write-tests<![CDATA[React Fundamentals: Props vs State]]><![CDATA[What's the difference between props and state in React?]]>2019-07-08
https://kentcdodds.com/blog/props-vs-state
https://kentcdodds.com/blog/props-vs-state<![CDATA[How I Teach]]><![CDATA[How I apply the science of learning to help students retain what I teach them, and how I learn.]]>2019-07-01
https://kentcdodds.com/blog/how-i-teach
https://kentcdodds.com/blog/how-i-teach<![CDATA[One simple trick to optimize React re-renders]]><![CDATA[Without using React.memo, PureComponent, or shouldComponentUpdate]]>2019-06-24
https://kentcdodds.com/blog/optimize-react-re-renders
https://kentcdodds.com/blog/optimize-react-re-renders<![CDATA[Colocation]]><![CDATA[Maintainability through colocation]]>2019-06-17
https://kentcdodds.com/blog/colocation
https://kentcdodds.com/blog/colocation<![CDATA[When to useMemo and useCallback]]><![CDATA[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.]]>2019-06-04
https://kentcdodds.com/blog/usememo-and-usecallback
https://kentcdodds.com/blog/usememo-and-usecallback<![CDATA[Avoid the Test User]]><![CDATA[How your UI code has only two users, but the wrong tests can add a third]]>2019-05-24
https://kentcdodds.com/blog/avoid-the-test-user
https://kentcdodds.com/blog/avoid-the-test-user<![CDATA[Authentication in React Applications]]><![CDATA[How to handle user authentication in modern React Applications with context and hooks]]>2019-05-20
https://kentcdodds.com/blog/authentication-in-react-applications
https://kentcdodds.com/blog/authentication-in-react-applications<![CDATA[How to know what to test]]><![CDATA[Practical advice to help you determine what to test.]]>2019-04-13
https://kentcdodds.com/blog/how-to-know-what-to-test
https://kentcdodds.com/blog/how-to-know-what-to-test<![CDATA[AHA Testing ð¡]]><![CDATA[How to apply the "Avoid Hasty Abstraction" principle to your test code.]]>2019-04-07
https://kentcdodds.com/blog/aha-testing
https://kentcdodds.com/blog/aha-testing<![CDATA[How to get started with programming]]><![CDATA[So you want to get into programming? Here's how you get started.]]>2019-03-06
https://kentcdodds.com/blog/how-to-get-started-with-programming
https://kentcdodds.com/blog/how-to-get-started-with-programming<![CDATA[How to Enable React Strict Mode]]><![CDATA[What it is and how to add it to your app.]]>2019-03-04
https://kentcdodds.com/blog/react-strict-mode
https://kentcdodds.com/blog/react-strict-mode<![CDATA[Goodbye Medium]]><![CDATA[I've migrated from Medium to kentcdodds.com/blog... Here's why]]>2019-02-25
https://kentcdodds.com/blog/goodbye-medium
https://kentcdodds.com/blog/goodbye-medium<![CDATA[React Hooks: Compound Components]]><![CDATA[How do compound components change with React hooks?]]>2019-02-18
https://kentcdodds.com/blog/compound-components-with-react-hooks
https://kentcdodds.com/blog/compound-components-with-react-hooks<![CDATA[ð¨ Big Announcement: I'm a full-time educator! ð¨âð«]]><![CDATA[After years of teaching on the side, I've decided to take the plunge and go full-time as an educator!]]>2019-02-17
https://kentcdodds.com/blog/full-time-educator
https://kentcdodds.com/blog/full-time-educator<![CDATA[Please stop building inaccessible forms (and how to fix them)]]><![CDATA[I regularly find inaccessible forms. In this post we'll check out some common accessibility problems and fix them.]]>2019-02-04
https://kentcdodds.com/blog/please-stop-building-inaccessible-forms-and-how-to-fix-them
https://kentcdodds.com/blog/please-stop-building-inaccessible-forms-and-how-to-fix-them<![CDATA[2018 in Review]]><![CDATA[An overview of what I've accomplished in 2018 and a bit about my goals for 2019.]]>2019-01-14
https://kentcdodds.com/blog/2018-in-review
https://kentcdodds.com/blog/2018-in-review<![CDATA[React Hooks: Array Destructuring Fundamentals]]><![CDATA[React's upcoming useState hook relies on array destructuring, let's dive in and see how that feature works.]]>2018-12-31
https://kentcdodds.com/blog/react-hooks-array-destructuring-fundamentals
https://kentcdodds.com/blog/react-hooks-array-destructuring-fundamentals<![CDATA[React Hooks: What's going to happen to my tests?]]><![CDATA[How can we prepare our tests for React's new hooks feature?]]>2018-12-24
https://kentcdodds.com/blog/react-hooks-whats-going-to-happen-to-my-tests
https://kentcdodds.com/blog/react-hooks-whats-going-to-happen-to-my-tests<![CDATA[React Hooks: What's going to happen to react context?]]><![CDATA[With the cool new stuff coming to React (Hooks/Suspense), what's going to happen to the context api?]]>2018-12-17
https://kentcdodds.com/blog/react-hooks-whats-going-to-happen-to-react-context
https://kentcdodds.com/blog/react-hooks-whats-going-to-happen-to-react-context<![CDATA[React Hooks: What's going to happen to render props?]]><![CDATA[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?]]>2018-12-10
https://kentcdodds.com/blog/react-hooks-whats-going-to-happen-to-render-props
https://kentcdodds.com/blog/react-hooks-whats-going-to-happen-to-render-props<![CDATA[How Gratitude can make you a better developer]]><![CDATA[What does gratitude have to do with software development?]]>2018-12-03
https://kentcdodds.com/blog/how-gratitude-can-make-you-a-better-developer
https://kentcdodds.com/blog/how-gratitude-can-make-you-a-better-developer<![CDATA[Introducing a new course: Simplify React Apps with React Hooks and Suspense]]><![CDATA[Learn about the massive improvements coming to function components in React via a fresh new course showing you how to refactor an existing...]]>2018-12-03
https://kentcdodds.com/blog/introducing-a-new-course-simplify-react-apps-with-react-hooks-and-suspense
https://kentcdodds.com/blog/introducing-a-new-course-simplify-react-apps-with-react-hooks-and-suspense<![CDATA[Common Testing Mistakes]]><![CDATA[Today let's talk about some common mistakes that people make when testing JavaScript applications.]]>2018-11-12
https://kentcdodds.com/blog/common-testing-mistakes
https://kentcdodds.com/blog/common-testing-mistakes<![CDATA[UI Testing Myths]]><![CDATA[Some common myths around testing and what the reality is...]]>2018-11-08
https://kentcdodds.com/blog/ui-testing-myths
https://kentcdodds.com/blog/ui-testing-myths<![CDATA[The Merits of Mocking]]><![CDATA[What are you doing when you mock something, and when is it worth the cost?]]>2018-11-05
https://kentcdodds.com/blog/the-merits-of-mocking
https://kentcdodds.com/blog/the-merits-of-mocking<![CDATA[The time I messed up]]><![CDATA[That time I went too far with Test Driven Development and forgot a very important step]]>2018-10-22
https://kentcdodds.com/blog/the-time-i-messed-up
https://kentcdodds.com/blog/the-time-i-messed-up<![CDATA[React is an implementation detail]]><![CDATA[...yep, you read that right. Most of the course actually has nothing to do with React specifically.]]>2018-10-20
https://kentcdodds.com/blog/react-is-an-implementation-detail
https://kentcdodds.com/blog/react-is-an-implementation-detail<![CDATA[Why you've been bad about testing]]><![CDATA[Some common struggles people have with testing, and things you can do to improve.]]>2018-10-15
https://kentcdodds.com/blog/why-youve-been-bad-about-testing
https://kentcdodds.com/blog/why-youve-been-bad-about-testing<![CDATA[Demystifying Testing]]><![CDATA[How to get from aimlessly testing or not testing at all to really understanding how and what to test.]]>2018-10-11
https://kentcdodds.com/blog/demystifying-testing
https://kentcdodds.com/blog/demystifying-testing<![CDATA[Confidently Shipping Code]]><![CDATA[Why I care about testing]]>2018-10-08
https://kentcdodds.com/blog/confidently-shipping-code
https://kentcdodds.com/blog/confidently-shipping-code<![CDATA[React/JSX as a server-side templating language]]><![CDATA[Using React function components to render your website's skeleton index.html]]>2018-10-01
https://kentcdodds.com/blog/react-jsx-as-a-server-side-templating-language
https://kentcdodds.com/blog/react-jsx-as-a-server-side-templating-language<![CDATA[How I am so productive]]><![CDATA[People regularly ask me how I get so much done. Here's my secret...]]>2018-09-24
https://kentcdodds.com/blog/how-i-am-so-productive
https://kentcdodds.com/blog/how-i-am-so-productive<![CDATA[Getting Noticed and Widening Your Reach]]><![CDATA[Some things you can do to gain a wider audience and get your stuff noticed]]>2018-09-17
https://kentcdodds.com/blog/getting-noticed-and-widening-your-reach
https://kentcdodds.com/blog/getting-noticed-and-widening-your-reach<![CDATA[Make Impossible States Impossible]]><![CDATA[A simple trick to simplify your application and component state]]>2018-09-10
https://kentcdodds.com/blog/make-impossible-states-impossible
https://kentcdodds.com/blog/make-impossible-states-impossible<![CDATA[How to make the most out of conferences]]><![CDATA[Some specific things you can do as a conference attendee]]>2018-09-03
https://kentcdodds.com/blog/how-to-make-the-most-out-of-conferences
https://kentcdodds.com/blog/how-to-make-the-most-out-of-conferences<![CDATA[Why and How I started public speaking]]><![CDATA[Some stories and some advice from an international speaker and trainer]]>2018-08-27
https://kentcdodds.com/blog/why-and-how-i-started-public-speaking
https://kentcdodds.com/blog/why-and-how-i-started-public-speaking<![CDATA[mdx-deck: slide decks powered by markdown and react]]><![CDATA[Why it's awesome, what it is, how it works, and how to use mdx-deck.]]>2018-08-20
https://kentcdodds.com/blog/mdx-deck-slide-decks-powered-by-markdown-and-react
https://kentcdodds.com/blog/mdx-deck-slide-decks-powered-by-markdown-and-react<![CDATA[unpkg: An open source CDN for npm]]><![CDATA[Let's learn how unpkg the service and the open source project can improve performance for your company's apps.]]>2018-08-13
https://kentcdodds.com/blog/unpkg-an-open-source-cdn-for-npm
https://kentcdodds.com/blog/unpkg-an-open-source-cdn-for-npm<![CDATA[Polyfill as needed with polyfill-service]]><![CDATA[How to maximize the performance of loading polyfills for your application users.]]>2018-08-06
https://kentcdodds.com/blog/polyfill-as-needed-with-polyfill-service
https://kentcdodds.com/blog/polyfill-as-needed-with-polyfill-service<![CDATA[What is a polyfill]]><![CDATA[The difference between a polyfill and a code transform.]]>2018-07-30
https://kentcdodds.com/blog/what-is-a-polyfill
https://kentcdodds.com/blog/what-is-a-polyfill<![CDATA[Why I Never Use Shallow Rendering]]><![CDATA[Tests should help me be confident that my application is working and there are better ways to do that than shallow rendering.]]>2018-07-23
https://kentcdodds.com/blog/why-i-never-use-shallow-rendering
https://kentcdodds.com/blog/why-i-never-use-shallow-rendering<![CDATA[What is JSX?]]><![CDATA[You may use it every day, but have you seen what happens after Babel compiles it?]]>2018-07-09
https://kentcdodds.com/blog/what-is-jsx
https://kentcdodds.com/blog/what-is-jsx<![CDATA[Test Isolation with React]]><![CDATA[Why your tests should be completely isolated from one another and how to do that.]]>2018-07-02
https://kentcdodds.com/blog/test-isolation-with-react
https://kentcdodds.com/blog/test-isolation-with-react<![CDATA[JavaScript default parameters]]><![CDATA[The expressive power of expressions in default values for parameters]]>2018-06-25
https://kentcdodds.com/blog/javascript-default-parameters
https://kentcdodds.com/blog/javascript-default-parameters<![CDATA[Dealing with FOMO]]><![CDATA[What is "Fear Of Missing Out" and how to deal with this natural unhealthy tendency.]]>2018-06-18
https://kentcdodds.com/blog/dealing-with-fomo
https://kentcdodds.com/blog/dealing-with-fomo<![CDATA[ð downshift 2.0.0 released ð]]><![CDATA[Even better accessibility, React Native and ReasonReact support, even simpler API, improved docs, new examples site, Flow and TypeScript...]]>2018-06-15
https://kentcdodds.com/blog/downshift-2-0-0-released
https://kentcdodds.com/blog/downshift-2-0-0-released<![CDATA[When to use Control Props or State Reducers]]><![CDATA[Comparing two similar patterns that enable many of the same use cases.]]>2018-06-11
https://kentcdodds.com/blog/control-props-vs-state-reducers
https://kentcdodds.com/blog/control-props-vs-state-reducers<![CDATA[Write your own code transform for fun and profit]]><![CDATA[How to write your own code macro with babel-plugin-macros ð£]]>2018-06-04
https://kentcdodds.com/blog/write-your-own-code-transform
https://kentcdodds.com/blog/write-your-own-code-transform<![CDATA[ð¯ UPDATED: Advanced React Component Patterns âï¸]]><![CDATA[Now featuring the latest React APIs (like context) and entirely new patterns (like state reducer props).]]>2018-06-01
https://kentcdodds.com/blog/updated-advanced-react-component-patterns
https://kentcdodds.com/blog/updated-advanced-react-component-patterns<![CDATA[React DevTools]]><![CDATA[A quick demo of the browser extension you should definitely be using.]]>2018-05-28
https://kentcdodds.com/blog/react-devtools
https://kentcdodds.com/blog/react-devtools<![CDATA[Prop Drilling]]><![CDATA[What it is, why it's good, why it's bad, and how to avoid common problems with it]]>2018-05-21
https://kentcdodds.com/blog/prop-drilling
https://kentcdodds.com/blog/prop-drilling<![CDATA[How I learn an Open Source Codebase]]><![CDATA[What I do to learn and understand an open source project to which I want to contribute.]]>2018-05-14
https://kentcdodds.com/blog/how-i-learn-an-open-source-codebase
https://kentcdodds.com/blog/how-i-learn-an-open-source-codebase<![CDATA[Mixing Component Patterns]]><![CDATA[Let's make a component that supports Render Props, Component Injection, Compound Components, the Provider Pattern, and Higher Order...]]>2018-05-07
https://kentcdodds.com/blog/mixing-component-patterns
https://kentcdodds.com/blog/mixing-component-patterns<![CDATA[Pure Modules]]><![CDATA[How you write your ES Modules impacts the performance and maintainability of your code.]]>2018-04-30
https://kentcdodds.com/blog/pure-modules
https://kentcdodds.com/blog/pure-modules<![CDATA[Migrating to React's New Context API]]><![CDATA[Let's compare the before/after of React's new context API.]]>2018-04-23
https://kentcdodds.com/blog/migrating-to-reacts-new-context-api
https://kentcdodds.com/blog/migrating-to-reacts-new-context-api<![CDATA[Compose Render Props]]><![CDATA[One of the reasons I'm so excited about render props]]>2018-04-09
https://kentcdodds.com/blog/compose-render-props
https://kentcdodds.com/blog/compose-render-props<![CDATA[Introducing the react-testing-library ð]]><![CDATA[A simpler replacement for enzyme that encourages good testing practices.]]>2018-04-02
https://kentcdodds.com/blog/introducing-the-react-testing-library
https://kentcdodds.com/blog/introducing-the-react-testing-library<![CDATA[When to NOT use Render Props]]><![CDATA[Let's back up from the hype and think critically about the render props pattern]]>2018-03-26
https://kentcdodds.com/blog/when-to-not-use-render-props
https://kentcdodds.com/blog/when-to-not-use-render-props<![CDATA[But really, what is a JavaScript mock?]]><![CDATA[Let's take a step back and understand what mocks are and how to use them to facilitate testing in JavaScript.]]>2018-03-19
https://kentcdodds.com/blog/but-really-what-is-a-javascript-mock
https://kentcdodds.com/blog/but-really-what-is-a-javascript-mock<![CDATA[Increase your marketability]]><![CDATA[Some tips of things that I've done that have helped me get where I want to be in the industry.]]>2018-03-12
https://kentcdodds.com/blog/increase-your-marketability
https://kentcdodds.com/blog/increase-your-marketability<![CDATA[Solidifying what you learn]]><![CDATA[Teaching is nature's way of letting you know how sloppy your understanding is.]]>2018-03-05
https://kentcdodds.com/blog/solidifying-what-you-learn
https://kentcdodds.com/blog/solidifying-what-you-learn<![CDATA[The state reducer pattern âï¸ ð]]><![CDATA[A new pattern has been implemented in downshift and it's awesome. Use the state reducer pattern to make your components more useful.]]>2018-02-19
https://kentcdodds.com/blog/the-state-reducer-pattern
https://kentcdodds.com/blog/the-state-reducer-pattern<![CDATA[Answers to common questions about render props]]><![CDATA[Because there's a ton of hype, and a bunch of questions âï¸]]>2018-02-12
https://kentcdodds.com/blog/answers-to-common-questions-about-render-props
https://kentcdodds.com/blog/answers-to-common-questions-about-render-props<![CDATA[React's âï¸ new Context API]]><![CDATA[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!]]>2018-02-05
https://kentcdodds.com/blog/reacts-new-context-api
https://kentcdodds.com/blog/reacts-new-context-api<![CDATA[Concerning toolkits ð ð¦]]><![CDATA[The merits and use cases of consolidating tools into one "zero config" toolkit.]]>2018-01-29
https://kentcdodds.com/blog/concerning-toolkits
https://kentcdodds.com/blog/concerning-toolkits<![CDATA[Spelunking in node_modules ð·]]><![CDATA[Deep dive into Jest, React, and jsdom: A story about how I go about finding and fixing bugs in my dependencies.]]>2018-01-22
https://kentcdodds.com/blog/spelunking-in-node-modules
https://kentcdodds.com/blog/spelunking-in-node-modules<![CDATA[Building Production Apps 100% in the browser]]><![CDATA[How I built & deployed 2 production apps without downloading any source code.]]>2018-01-15
https://kentcdodds.com/blog/building-production-apps-100-in-the-browser
https://kentcdodds.com/blog/building-production-apps-100-in-the-browser<![CDATA[Testing âï¸ components using render props]]><![CDATA[Let's look at how we can write tests for React components that use render props!]]>2018-01-08
https://kentcdodds.com/blog/testing-components-using-render-props
https://kentcdodds.com/blog/testing-components-using-render-props<![CDATA[But really, what is a JavaScript test?]]><![CDATA[Let's take a step back and understand automated testing of JavaScript from square one.]]>2018-01-01
https://kentcdodds.com/blog/but-really-what-is-a-javascript-test
https://kentcdodds.com/blog/but-really-what-is-a-javascript-test<![CDATA[Merry Christmas!]]><![CDATA[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...]]>2017-12-25
https://kentcdodds.com/blog/merry-christmas
https://kentcdodds.com/blog/merry-christmas<![CDATA[The Beginner's Guide to ReactJS]]><![CDATA[The course is free forever on egghead.io! Let's talk about how it teaches even developers experienced with React âï¸]]>2017-12-18
https://kentcdodds.com/blog/the-beginners-guide-to-reactjs
https://kentcdodds.com/blog/the-beginners-guide-to-reactjs<![CDATA[Giving good demos]]><![CDATA[I gave a pretty good demo and here are some things I did that might help you give good demos too.]]>2017-12-11
https://kentcdodds.com/blog/giving-good-demos
https://kentcdodds.com/blog/giving-good-demos<![CDATA[Advanced React Component Patterns]]><![CDATA[An overview of some of the patterns covered in my recently released egghead.io course (free until Friday).]]>2017-12-05
https://kentcdodds.com/blog/advanced-react-component-patterns
https://kentcdodds.com/blog/advanced-react-component-patterns<![CDATA[Learn React Fundamentals ð and Advanced Patterns âï¸ ð]]><![CDATA[Two and a half hours of new beginner (free) and advanced React material are now available egghead.io!]]>2017-12-04
https://kentcdodds.com/blog/learn-react-fundamentals-and-advanced-patterns
https://kentcdodds.com/blog/learn-react-fundamentals-and-advanced-patterns<![CDATA[Becoming an Open Source Project Maintainer]]><![CDATA[Some tips and tricks that have worked for me.]]>2017-11-20
https://kentcdodds.com/blog/becoming-an-open-source-project-maintainer
https://kentcdodds.com/blog/becoming-an-open-source-project-maintainer<![CDATA[Rendering a function with React]]><![CDATA[How I tricked React into rendering a function (not call it... render it)]]>2017-11-13
https://kentcdodds.com/blog/rendering-a-function-with-react
https://kentcdodds.com/blog/rendering-a-function-with-react<![CDATA[Improving the usability of your modules]]><![CDATA[How to make your modules more generically useful and easier to test.]]>2017-11-06
https://kentcdodds.com/blog/improving-the-usability-of-your-modules
https://kentcdodds.com/blog/improving-the-usability-of-your-modules<![CDATA[Effective Snapshot Testing]]><![CDATA[Snapshot testing can be useless, or super useful. Your choice. Let's talk about how to make them useful.]]>2017-10-30
https://kentcdodds.com/blog/effective-snapshot-testing
https://kentcdodds.com/blog/effective-snapshot-testing<![CDATA[Make maintainable workarounds with codegen ð¥]]><![CDATA[Sometimes you need to workaround issues in other libraries. These workarounds can often lead to messy code. codegen is a tool that helps...]]>2017-10-09
https://kentcdodds.com/blog/make-maintainable-workarounds-with-codegen
https://kentcdodds.com/blog/make-maintainable-workarounds-with-codegen<![CDATA[How to give rendering control to users with prop getters]]><![CDATA[Render props are awesome, put it together with prop getters and you have an awesome combination to give users of your React components...]]>2017-10-02
https://kentcdodds.com/blog/how-to-give-rendering-control-to-users-with-prop-getters
https://kentcdodds.com/blog/how-to-give-rendering-control-to-users-with-prop-getters<![CDATA[Tools without config ð ð¦]]><![CDATA[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!]]>2017-09-26
https://kentcdodds.com/blog/tools-without-config
https://kentcdodds.com/blog/tools-without-config<![CDATA[Introducing downshift ð for React âï¸]]><![CDATA[downshift ð is the primitive you need to build simple, flexible, WAI-ARIA compliant React...]]>2017-08-23
https://kentcdodds.com/blog/introducing-downshift-for-react
https://kentcdodds.com/blog/introducing-downshift-for-react<![CDATA[How writing custom Babel & ESLint plugins can increase productivity & improve user experience]]><![CDATA[And it's way more approachable than you think...]]>2017-07-17
https://kentcdodds.com/blog/how-writing-custom-babel-and-eslint-plugins-can-increase-productivity-and-improve-user-experience
https://kentcdodds.com/blog/how-writing-custom-babel-and-eslint-plugins-can-increase-productivity-and-improve-user-experience<![CDATA[Classes, Complexity, and Functional Programming]]><![CDATA[When I use classes, when I don't, what I do instead, and why]]>2017-06-06
https://kentcdodds.com/blog/classes-complexity-and-functional-programming
https://kentcdodds.com/blog/classes-complexity-and-functional-programming<![CDATA[Introducing glamorous ð]]><![CDATA[A styled-components ð and jsxstyle inspired solution for styling âï¸ React Components from PayPal]]>2017-04-04
https://kentcdodds.com/blog/introducing-glamorous
https://kentcdodds.com/blog/introducing-glamorous<![CDATA[Tips for making a CLI-based tool with node]]><![CDATA[I got this question on my AMA and decided to turn the answer into a formal blogpost.]]>2016-11-18
https://kentcdodds.com/blog/tips-for-making-a-cli-based-tool-with-node
https://kentcdodds.com/blog/tips-for-making-a-cli-based-tool-with-node<![CDATA[Migrating to Jest]]><![CDATA[on the P2P team at PayPal]]>2016-11-14
https://kentcdodds.com/blog/migrating-to-jest
https://kentcdodds.com/blog/migrating-to-jest<![CDATA[ð Sunsetting JavaScript Air ð]]><![CDATA[for now... ð]]>2016-10-28
https://kentcdodds.com/blog/sunsetting-javascript-air
https://kentcdodds.com/blog/sunsetting-javascript-air<![CDATA[Kent OOO (Out Of the Office)]]><![CDATA[Why this week's episode of JavaScript Air is canceled and where I'm going...]]>2016-05-31
https://kentcdodds.com/blog/kent-ooo-out-of-the-office
https://kentcdodds.com/blog/kent-ooo-out-of-the-office<![CDATA[Introducing: How to Contribute to Open Source]]><![CDATA[My free, first-timer friendly egghead.io series all about how to contribute to open source projects on GitHub.]]>2016-02-08
https://kentcdodds.com/blog/introducing-how-to-contribute-to-open-source
https://kentcdodds.com/blog/introducing-how-to-contribute-to-open-source<![CDATA[Misunderstanding ES6 Modules, Upgrading Babel, Tears, and a Solution]]><![CDATA[On October 29th, 2015, Sebastian McKenzie, James Kyle, and the rest of the Babel team dropped a huge major release for frontend developers...]]>2015-12-23
https://kentcdodds.com/blog/misunderstanding-es6-modules-upgrading-babel-tears-and-a-solution
https://kentcdodds.com/blog/misunderstanding-es6-modules-upgrading-babel-tears-and-a-solution<![CDATA[Semicolons in JavaScript: A preference]]><![CDATA[An argument for why use of semicolons in JavaScript source is a preference]]>2015-11-16
https://kentcdodds.com/blog/semicolons-in-javascript-a-preference
https://kentcdodds.com/blog/semicolons-in-javascript-a-preference<![CDATA[Please, don't commit commented out code]]><![CDATA[Some solid reasons you should delete code that is not used]]>2015-10-27
https://kentcdodds.com/blog/please-dont-commit-commented-out-code
https://kentcdodds.com/blog/please-dont-commit-commented-out-code<![CDATA[Open Source Stamina]]><![CDATA[You contribute best to something you use regularly.]]>2015-10-22
https://kentcdodds.com/blog/open-source-stamina
https://kentcdodds.com/blog/open-source-stamina<![CDATA[Why I don't commit generated files to master]]><![CDATA[for libraries...]]>2015-10-05
https://kentcdodds.com/blog/why-i-dont-commit-generated-files-to-master
https://kentcdodds.com/blog/why-i-dont-commit-generated-files-to-master<![CDATA[How to Write a JavaScript Library]]><![CDATA[There are so many reasons to open source your code. But knowing how to do it can be a real challenge.]]>2015-09-08
https://kentcdodds.com/blog/how-to-write-a-javascript-library
https://kentcdodds.com/blog/how-to-write-a-javascript-library<![CDATA[First Timers Only]]><![CDATA[A suggestion to Open Source project maintainers...]]>2015-08-04
https://kentcdodds.com/blog/first-timers-only
https://kentcdodds.com/blog/first-timers-only<![CDATA[Newspaper Code Structure]]><![CDATA[Your code should read like a newspaper article. Important stuff at the top, details at the bottom. I have a particular convention for my...]]>2015-05-18
https://kentcdodds.com/blog/newspaper-code-structure
https://kentcdodds.com/blog/newspaper-code-structure