
Description
Anyone who has built an admin list page knows the dilemma: an off-the-shelf table component has every feature but fights you on styling the moment the design changes, while writing your own tangles sorting, filtering, grouping, aggregation and row selection into state nobody dares touch. TanStack Table's answer is to ship no UI at all. It owns the state and logic, never touches the DOM or styles, and you render its computed results with whatever design system you like.
The core is framework-agnostic with official bindings for React, Vue, Svelte, Solid, Angular, Lit, Preact and Alpine, so switching frameworks does not mean rewriting table logic. Large datasets pair with TanStack Virtual for virtualization, and server-side pagination, sorting and filtering were designed in from the start. With about 28,000 GitHub stars, it is the default choice for data tables on the front end.
Headless: State, APIs and computed results only; markup and styles are entirely yours, so it fits any component library or design system.
Full table features: Sorting, filtering, faceting, grouping, aggregation, pagination, row expansion, row and cell selection and cell spanning.
Column control: Pinning, ordering, visibility and resizing with ready-made state.
Many frameworks: One core with adapters for React, Vue, Svelte, Solid, Angular, Lit, Preact, Alpine and more.
Server-side data: Switch pagination, sorting and filtering to manual mode and let the backend do the work.
Large data: Combine with TanStack Virtual to scroll tens of thousands of rows smoothly.
Type safe: Written in TypeScript with typed column definitions and data.
The core is framework-agnostic with official bindings for React, Vue, Svelte, Solid, Angular, Lit, Preact and Alpine, so switching frameworks does not mean rewriting table logic. Large datasets pair with TanStack Virtual for virtualization, and server-side pagination, sorting and filtering were designed in from the start. With about 28,000 GitHub stars, it is the default choice for data tables on the front end.
Features
Headless: State, APIs and computed results only; markup and styles are entirely yours, so it fits any component library or design system.
Full table features: Sorting, filtering, faceting, grouping, aggregation, pagination, row expansion, row and cell selection and cell spanning.
Column control: Pinning, ordering, visibility and resizing with ready-made state.
Many frameworks: One core with adapters for React, Vue, Svelte, Solid, Angular, Lit, Preact, Alpine and more.
Server-side data: Switch pagination, sorting and filtering to manual mode and let the backend do the work.
Large data: Combine with TanStack Virtual to scroll tens of thousands of rows smoothly.
Type safe: Written in TypeScript with typed column definitions and data.

