tanstack_table

Build sortable, filterable, paginated React tables with TanStack Table v8.

1|Updated Mar 11, 2026
One-click install
npx skills add https://github.com/antonyfmunoz/OS --skill tanstack-table-antonyfmunoz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tanstack_table
Source: https://github.com/antonyfmunoz/OS/tree/main/skills/tools/tanstack_table
Command: npx skills add https://github.com/antonyfmunoz/OS --skill tanstack-table-antonyfmunoz

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill prevents EOS SaaS teams from reinventing fragile table logic by providing a robust, state-driven way to implement sorting, filtering, pagination, and row selection without UI glitches or re-render loops.

Core Features & Use Cases

  • Headless table state engine (@tanstack/react-table v8): centralizes row-model pipelines (core, sorted, filtered, paginated) so the UI only renders state outputs.
  • EOS SaaS integration pattern: wires TanStack Query server-driven pagination/sorting/filtering into controlled table state (manualPagination/manualSorting/manualFiltering) with stable memoization.
  • Production-grade correctness & performance: supports faceted filters, stable row selection via getRowId, expanding rows, and row virtualization using @tanstack/react-virtual for large datasets.
  • Bug prevention: detects common failure modes like unstable data/columns references, wrong accessorKey vs accessorFn usage, missing matching row models for enabled state, and incorrect flexRender usage.

Quick Start

Use the tanstack_table skill to implement a typed Leads table with server-driven pagination/sorting/filtering and virtualized rows, ensuring stable column definitions and getRowId-based row selection.

Frequently Asked Questions about tanstack_table

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement server-driven pagination and sorting with React Table v8?

Server-driven pagination and sorting in React Table v8 use manualPagination, manualSorting, and manualFiltering flags to control table state. You wire TanStack Query fetching logic into controlled state, ensuring stable memoization to prevent UI glitches and re-render loops.

Why does my TanStack Table row selection lose state when data refreshes?

TanStack Table row selection loses state during data refreshes without stable row identifiers. You must define getRowId in the table state configuration to map rows to stable IDs, preventing selection loss and ensuring consistent behavior across server-driven pagination updates.

Can I virtualize large datasets using @tanstack/react-table?

Yes, you can virtualize large datasets with @tanstack/react-table by integrating @tanstack/react-virtual. This combination renders only visible rows, maintaining high performance for large lists while using the headless table state engine to manage core, sorted, and filtered row models.

What is the best way to apply faceted filters in a React data table?

Faceted filters in a React data table are applied using the getFilteredRowModel pipeline from TanStack Table v8. You configure column definitions with specific filter functions, enabling multi-dimensional filtering that outputs precise row subsets without causing UI glitches.

How do I prevent re-render loops in TanStack Table with server-driven state?

Prevent re-render loops in TanStack Table by stabilizing data and column references using useMemo. Ensure correct accessorKey versus accessorFn usage and match enabled row models like getSortedRowModel to avoid unstable references that trigger continuous rendering cycles.