The Vertical Codebase π
Let's take a look at why the common, horizontal code structure is not ideal, where it breaks down, and what we can do about it. [...]
a collection of dev rss feeds - blogroll
Posts
Let's take a look at why the common, horizontal code structure is not ideal, where it breaks down, and what we can do about it. [...]
Users don't use data-testid, so why do your tests? [...]
Building reusable abstractions on top of libraries that rely on type inference can be deceptively difficult, which is why we need better ways to build [...]
Compound Components are great, but should be type-safe. No, this isn't about the children prop ... [...]
A retrospective on what has happened for me in 2025 [...]
I want to write more about what makes a good design system. This is the unstructured list of principles I think matter. [...]
Why TypeScriptβs built-in Omit breaks discriminated unions, and how a distributive version preserves them. [...]
A look at why tooltip components are often the wrong abstraction in design systems, leading to accessibility issues, misuse, and inconsistent user exp [...]
An overview of how TanStack Router automatically shares and infers path params, search params, and context between nested routes in a type-safe way. [...]
How to use derived state in React to keep client state and server data aligned without manual sync or effects. [...]
How to get the most out of select, sprinkled with some TypeScript tips. [...]
Why most memoization is downright useless... [...]
Yes, it's type-safe, but there's so much more to love about TanStack Router. [...]
How to build optimistic UI that is resilient to race conditions, even when multiple mutations update the same entity concurrently. [...]
A brief story of how I got into Open Source [...]
A retrospective on what has happened for me in 2024 [...]
In this talk, maintainer Dominik will explore the other sideβthe less favorable aspects of React Query and situations where it may not be the best fit [...]
Reflecting on useCallback, how the Compiler changed my thinking about it, and what React 19 has in store for Ref Callbacks... [...]
A brief reflection on the platform and how I plan to continue with it... [...]
In this talk, React Query maintainer Dominik will walk us through some of the API design choices that were made in React Query to get to that DX. You' [...]
Component composition is one of the best parts of React, and I think we should take more time to break our components into manageable parts before lit [...]
A serious bug report about infinite queries led me to question it's architecture, but it all turned out fine in the end ... [...]
There's a new state manager in the game, and it ticks all my boxes ... [...]
Why you probably shouldn't be adding index.ts files everywhere [...]
React 19 is a very promising release - but there's something not quite right yet with suspense... [...]
Even though there is nothing built into React Query, it doesn't need a lot of code to implement automatic query invalidation in user-land thanks to th [...]
Zustand stores a global and don't need React Context - but sometimes, it makes sense to combine them regardless. [...]
Avoiding hydration mismatches can usually be done in two ways - suppressing the warning or spawning an effect. But is there a third option ... ? [...]
v5 brought a new, powerful API, especially if you're using React Query with TypeScript... [...]
A retrospective on what has happened for me in 2023 [...]
Let's take a look at why you'd want a library like React Query, even if you don't need all the extra features it provides... [...]
Exploring why React.memo shouldn't be your first choice for performance optimizations [...]
is string[] really better than Array? Of course not! [...]
Can it make sense to combine React Query with React Context ? Yes, sometimes ... [...]
In this talk, we will learn how a different mindset can help us understand React Query and work with it efficiently. [...]
React Query is a great library, but like any tool, you should choose it for the right problem [...]
Why good API design matters, even if it means breaking existing APIs in the face of resistance. [...]
An outline of the questions I try to ask myself before adding new features [...]
Finishing my train of thought about why React is here to stay (for now). [...]
About the difference between "having types" and "being type-safe"... [...]
A retrospective on what has happened for me in 2022 [...]
Taking a look under the hood of React Query [...]
Let's dive into some tips for working with Zustand - one of my favourite client state management libraries in React. [...]
Why not every refactoring is worth doing... [...]
With suspense for data fetching on the horizon, it is now more important than ever to make sure your cache is seeded properly to avoid fetch waterfall [...]
Refs can provide a way to sidestep dependency arrays without violating any rules, and the proposed useEvent hook might make working with functions and [...]
React Query and React Router are a match made in heaven. [...]
Interacting with DOM nodes doesn't necessarily need useEffect [...]
Answering the most frequently asked React Query questions [...]
Let's demystify what stale closures are in combination with react hooks with the help of the analogy of taking a photo ... [...]
Forms tend to blur the line between server and client state, so let's see how that plays together with React Query. [...]
Getting huge refactorings going is not an easy task, but urgency can help here. [...]
There is a subtle difference between optional fields and required, but potentially undefined ones. [...]
A glimpse at what v4 will bring for offline queries [...]
Finding the right spot for doing a refactoring can be tricky [...]
A blogpost series about patterns that have helped me succeed with refactorings [...]
A retrospective on what has happened for me in 2021 [...]
Any is not among my favourite TypeScript types, but it is the one you will inevitably encounter. Let's see what makes it so dangerous. [...]
Use what React Query provides for optimal type safety [...]
Learn all about the concept of performing side effects on the server with React Query. [...]
To useState or useReducer, that is the question... [...]
After covering the sunshine cases of data fetching, it's time to look at situations where things don't go as planned and "Something went wrong..." [...]
Everything you need to know to make React Query your single source of truth state manager for your async state [...]
Learn about the different possibilities to avoid loading spinners in React Query. [...]
A deep dive into async functions and how they are different from promise chaining [...]
Learn how to structure React Query Keys effectively as your App grows [...]
A step-by-step guide on how to make real-time notifications work with react-query [...]
Combine two of the most powerful tools for React Apps to produce great user experience, developer experience and type safety. [...]
Asking the right questions is a form of art that needs to be mastered. [...]
Let's take a look at how to efficiently test custom useQuery hooks and components using them. [...]
How the wrong status check order can negatively impact user experience [...]
An advanced guide to minimize component re-renderings when using React Query [...]
Why you shouldn't rely on useMemo for guaranteed referential stability but prefer useState instead [...]
Learn the possibilities to perform the quite common and important task of transforming your data with react-query [...]
Innocent looking boolean parameters, or flags, are often the reason for hard to maintain legacy code. Resist the urge of adding them! [...]
5 things everyone needs to know about useState [...]
useEffect hooks can be hard to reason about, but I have 5 principles that can help to manage them [...]
How we migrated over 100k lines of code from Flow to TypeScript. A Journey. [...]
Naming is hard. Naming is subjective. Yet there are some things we can objectively do when it comes to finding proper names. [...]
Let me share with you the experiences I have made lately with React Query. Fetching data in React has never been this delightful... [...]
Every software will eventually become a nightmare to maintain, unless we actively do something about it. [...]
Part deux of the useState pitfalls series is here, showing patterns to help solve the common use-case of initializing state with a prop. [...]
const assertions are a criminally underused TypeScript feature - learn all about them here, now [...]
Accessing objects and arrays has never been safe in TypeScript, but this is about to change ... [...]
If you know me, you know I'm no fan of Array.reduce. I'll explain why in detail in this post. [...]
Gradually migrating from JS to TS is not without difficulties - here are some tricks to smoothen the interoperability [...]
Why you should never delete package-lock.json and how npm can solve the conflicts for you [...]
The first part of the useState pitfalls series is all about avoiding state altogether. Lots of things might not even be state after all... [...]
Keep reading. [...]