TanStack

TanStack

fresh

A powerful engine for building Data Grids.

TanStack Table is a headless engine for sorting, pagination, filtering, faceting, grouping, aggregation, row expansion, row and cell selection, cell spanning, row and column pinning, column ordering, visibility, resizing, and more.

issue workbench

Search projects and owners

8 rows · 0 selected

Router docsactive98
Query cachereview94
Table filtersshipped91
Virtual listsactive88

page 1 / 2

1.1Btotal downloads22,182,034weekly downloads28,338GitHub stars

Headless by design

Build exactly the table you want with 100% control.

Having 100% control of your code matters more than ever. TanStack Table supplies state and typed APIs without prescribing a single element or style. Use its built-in client-side processing or bring rows processed by your server, then render with any component library or design system, including your own.

Already using one of these popular component libraries?

Check out our official component library examples.

Fine-grained state

Efficient, fine-grained or slicable state updates.

Every registered state slice is backed by TanStack Store, whose fine-grained reactivity is built on alien-signals. Read selected state from table.state, create local subscription islands with table.Subscribe, or hand ownership to an external writable atom when the rest of the app needs it.

Performance architecture

Built for performance and scalability in every aspect.

Features are fully tree-shakable for minimal bundle size. Table logic shares memory-efficient prototypes and uses memoization for fast, low-overhead updates. Need more scale? Offload processing to the server and supply your own rows.

Composition and tooling

Build one table or build your product's table system.

TanStack Table exposes its own architecture as a public toolkit. Extend it with typed features, package shared conventions into reusable table hooks and options, and inspect live instances with dedicated Devtools.

Custom features

tableFeatures({ densityFeature })

Add state, options, and APIs through the same extension system used by built-in features.

Reusable tables

createTableHook({ features, ... })

Share typed features, options, column helpers, and registered components across a product.

Devtools

useTanStackTableDevtools(table)

Inspect table state and derived data in supported framework integrations instead of logging internals.

Read the original on tanstack.com ↗