TanStack Table V9 is now in beta, bringing a rewritten state management system built on TanStack Store (borrowed from TanStack Form), granular re-render control via state selectors, full tree-shakability with opt-in feature registration, reduced memory usage through shared prototypes, a first-class custom feature extension system, createTableHook for reusable table setups, and a new devtools integration. A full V8 to V9 migration guide is available, and the old V8-style API remains supported via stockFeatures during migration.
Questions this post answers
What's new in TanStack Table V9 compared to V8?
TanStack Table V9, released in beta, replaces V8's internal state handling with TanStack Store atoms, enabling granular state selectors so only relevant parts of the UI re-render. It adds fully opt-in tree-shakable features via tableFeatures, reduced memory usage through shared prototypes, a custom feature extension system, createTableHook for reusable table setups, and a new @tanstack/react-table-devtools integration. Track table library upgrades like this on daily.dev before committing to a major version bump.
How do I migrate from TanStack Table V8 to V9?
A dedicated V8 to V9 migration guide covers the changes, and the old V8-style state management syntax (useState plus onPaginationChange) still works in V9 for backward compatibility. For a quick migration without adopting the new opt-in feature model, stockFeatures gives you the same 'everything included' behavior as V8, though it forfeits V9's tree-shaking benefits. Developers planning framework migrations follow release and migration guides like this via daily.dev.
How does TanStack Table V9 make tables tree-shakable?
Table V9 makes the entire feature API surface opt-in rather than bundled by default. Features like sorting or pagination are registered explicitly through tableFeatures alongside their row models (e.g. rowSortingFeature, createSortedRowModel), so unregistered features contribute no code or TypeScript API surface, unlike V8 where all feature types and code were pulled in together. Engineers weighing bundle-size tradeoffs in table libraries can follow updates like this on daily.dev.