Everything you care about in one place

Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.

Get Feeder

tkdodo.eu

TkDodo's blog

Get the latest updates from TkDodo's blog directly as they happen.

Follow now 98 followers

Latest posts

Last updated 6 days ago

Reliable Query Prefetching with TanStack Router

6 days ago

Prefetching in route loaders is great, but comes at a cost: We...

TanStack Router and Query

3 months ago

TanStack Router has a built-in cache, so why would we need TanStack...

The Vertical Codebase

4 months ago

Let's take a look at why the common, horizontal code structure is...

Test IDs are an a11y smell

5 months ago

Users don't use data-testid, so why do your tests?Keep reading.

Creating Query Abstractions

6 months ago

Building reusable abstractions on top of libraries that rely on type inference...

Building Type-Safe Compound Components

8 months ago

Compound Components are great, but should be type-safe. No, this isn't about...

2025 in Review

8 months ago

A retrospective on what has happened for me in 2025

Designing Design Systems

9 months ago

I want to write more about what makes a good design system...

Omit for Discriminated Unions in TypeScript

9 months ago

Why TypeScript’s built-in Omit breaks discriminated unions, and how a distributive version...

Tooltip Components Should Not Exist

9 months ago

A look at why tooltip components are often the wrong abstraction in...

Context Inheritance in TanStack Router

11 months ago

An overview of how TanStack Router automatically shares and infers path params...

Deriving Client State from Server State

12 months ago

How to use derived state in React to keep client state and...