// the find
TanStack/table
🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table
TanStack Table is a headless, framework-agnostic table/datagrid library with adapters for React, Vue, Solid, Svelte, Angular, Lit, and Preact. It handles sorting, filtering, pagination, grouping, and row selection while leaving all rendering to you. It's the go-to choice when you need a fully custom-styled table with real feature depth and don't want to fight an opinionated component.
- Genuinely framework-agnostic core: the same feature logic runs across 7 framework adapters, and the TypeScript types are well-designed enough that column definitions carry your row data type through to cell renderers without casting.
- Feature set is production-grade: multi-sort, column pinning, row pinning, faceted filtering, grouping with aggregation, and column resizing all work out of the box and compose cleanly rather than fighting each other.
- Bundle size is kept honest (~14kb minzipped for react-table) given everything it does, and it plays nicely with TanStack Virtual for windowed rendering of large datasets.
- The custom-features plugin API lets you bolt on your own state and methods in a type-safe way, which is rare for libraries of this complexity.
- V8-to-V9 is another breaking migration with significant API surface changes (useReactTable → useTable, row model factories moved, column helper API shifted), and TanStack has a pattern of doing this every few major versions — worth weighing before committing to it in a long-lived codebase.
- Headless means you write every pixel of markup yourself. For teams without a design system already in place, the initial setup cost is high and the examples, while plentiful, can feel like a firehose with no opinionated starting point.
- Server-side pagination/sorting/filtering requires you to wire up all the manual state yourself; the library provides the plumbing but zero guidance on data-fetching integration, so teams new to the pattern routinely get it wrong and end up with stale state bugs.
- Angular and Lit adapters are still marked alpha in the docs, so if you're not on React/Vue/Solid you're taking on stability risk that isn't clearly surfaced in the README.