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 94 followers

Latest posts

Last updated 8 days ago

Creating Query Abstractions

8 days ago

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

Building Type-Safe Compound Components

2 months ago

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

2025 in Review

2 months ago

A retrospective on what has happened for me in 2025

Designing Design Systems

3 months ago

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

Omit for Discriminated Unions in TypeScript

3 months ago

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

Tooltip Components Should Not Exist

4 months ago

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

Context Inheritance in TanStack Router

5 months ago

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

Deriving Client State from Server State

6 months ago

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

React Query Selectors, Supercharged

7 months ago

How to get the most out of select, sprinkled with some TypeScript...

The Useless useCallback

7 months ago

Why most memoization is downright useless...

The Beauty of TanStack Router

9 months ago

Yes, it's type-safe, but there's so much more to love about TanStack...

Concurrent Optimistic Updates in React Query

10 months ago

How to build optimistic UI that is resilient to race conditions, even...