← projects

Large Data Grid

A proof of concept that renders 20,000+ rows without pagination — Excel-like scrolling with search, filters, sorting and export.

problem

Regular UI tables render every row into the DOM. Load 10k–50k rows and the browser slows to a crawl or crashes — a real problem for dashboards, admin panels and BI tools.

solution

Virtualized rendering: all rows load in one API call, but only the ~40 visible rows exist in the DOM at any time. TanStack Table models the data; TanStack Virtual handles scrolling.

stack

Next.js · React · TanStack Table · TanStack Virtual · MUI · Node.js

challenges

  • Keeping scroll smooth while filtering and sorting 20k+ rows
  • Global search and per-column filters on a virtualized list
  • Exporting the visible data to Excel

learnings

  • How virtualization keeps DOM size constant regardless of data size
  • Separating the data model from rendering