React Virtualized

React components for efficiently rendering large, scrollable lists and tabular data.

Library
npm
v10.0.0
27,067 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
72 /100 Good
Development Activity 68
Maintenance 44
Community 76
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
73 /100 Good
Architecture 78
Code Quality 68
Innovation 65
Learning Curve 80

React Virtualized is a collection of React components for windowed rendering of large lists, grids, tables, and masonry layouts. Instead of mounting a DOM node for every row or cell in a dataset, it measures the viewport and renders only the items currently visible (plus a configurable overscan buffer), keeping scroll performance smooth even with tens of thousands of rows.

The library ships a low-level Grid primitive that handles size/position calculation and cell recycling, and builds List, Table, Masonry, Collection, and MultiGrid on top of it as purpose-built wrappers, alongside helpers like AutoSizer, CellMeasurer, InfiniteLoader, and ScrollSync for common layout and data-loading needs.

What You Get

  • A Grid primitive that computes visible cell ranges from scroll offset and container size, rendering only those cells
  • Higher-level List, Table, Masonry, Collection, and MultiGrid components built on top of Grid for common layout shapes
  • AutoSizer to measure a parent container and feed width/height into a virtualized component
  • CellMeasurer and CellMeasurerCache for dynamic, cached measurement of variable-sized rows/cells
  • InfiniteLoader for triggering incremental data loads as the user scrolls near the end of a list
  • ScrollSync for coordinating scroll position across multiple Grid instances (e.g. frozen headers/columns)

Common Use Cases

  • Rendering large tabular datasets (spreadsheets, admin tables, log viewers) without paginating
  • Infinite-scrolling feeds or lists backed by paginated APIs
  • Virtualized file/folder trees or chat message lists with thousands of entries
  • Masonry-style image or card grids with variable item heights

Under The Hood

Architecture: The core primitive is Grid (source/Grid/Grid.js, ~1,700 lines), which manages a ScalingCellSizeAndPositionManager to compute which cells fall within the current scroll viewport and delegates actual DOM output to defaultCellRangeRenderer, rendering only that visible range plus a configurable overscan buffer (defaultOverscanIndicesGetter). List, Table, Masonry, Collection, and MultiGrid are all thin adapters over Grid that translate list/table/masonry semantics into Grid’s row/column cell-rendering API, so the virtualization logic is written once and shared. AutoSizer measures its parent container to feed Grid its width/height, CellMeasurerCache provides dynamic per-cell size measurement and caching for variable-height rows via Grid’s CellSizeGetter callback, and ScrollSync coordinates scroll offsets across multiple Grid instances (used internally by MultiGrid for frozen headers/columns).

Tech Stack: Source is Flow-typed (/** @flow */ headers) rather than TypeScript, built with Babel to CommonJS and ES module output plus a Rollup UMD bundle, and styled via a single styles.css processed with PostCSS/autoprefixer. Runtime dependencies are minimal: clsx for class composition, dom-helpers for scrollbar-size detection, prop-types for runtime validation, and react-lifecycles-compat to polyfill getDerivedStateFromProps for older React versions. peerDependencies span React/React DOM ^16.3.0 through ^19.0.0, so a legacy, class-component-based library has been kept compatible with the newest React majors.

Code Quality: 27 colocated *.jest.js test files cover the core Grid logic and utility functions (overscan index calculation, multi-column sort, Column prop handling, etc.). Components use a dual validation layer of Flow types plus runtime PropTypes, and a handful of modules (CellMeasurerCache, CellMeasurer, WindowScroller, defaultCellRangeRenderer) emit console.error/invariant-style warnings for common misuse. The project is organized one directory per component with colocated docs, examples, and tests, a consistent pattern across all ~14 top-level components — but GitHub activity signals mark it inactive (0 commits/month recently, last commit January 2025), so it is effectively feature-frozen rather than under active development.

API Design: Components are available as named exports (import {List, Table} from 'react-virtualized') or as deep imports (react-virtualized/dist/commonjs/List) for bundle-size-conscious consumers, with a documented webpack-alias trick for shorter deep-import paths. Table’s presentational styles require a separate import 'react-virtualized/styles.css', a rough edge relative to fully self-contained components. Grid’s own prop surface is dense (40+ props) and benefits from reading docs/Grid.md rather than being self-evident from prop names alone, though that mental model transfers cleanly to List/Table/Masonry once learned. Notably, the README candidly points newcomers toward the maintainer’s own lighter-weight successor, react-window, as an alternative for new projects.

Used by 14 apps in this directory

Python
58%
Apache 2.0

MLflow

AI Development · Monitoring

28,512

The open source AI engineering platform for debugging, evaluating, monitoring, and optimizing production LLMs and agents at scale.

View details
96
Repo Health
86
Technical
67
Dependency
Built with
Python 58%
TypeScript 35%
Updated 5 days ago
Clojure
73%
MPL 2.0

Penpot

Design Tools

61,563

Open-source design platform with GPU-accelerated canvas, native design tokens, and MCP-powered AI workflows for teams that ship fast.

View details
91
Repo Health
83
Technical
72
Dependency
Built with
Clojure 73%
Updated 6 days ago
Python
45%
Other

Redash

Analytics · Data Engineering

28,849

Redash lets anyone connect to 35+ SQL and NoSQL data sources, write a query in the browser, and turn the result into a shared dashboard — no separate BI suite required.

View details
91
Repo Health
74
Technical
61
Dependency
Built with
Python 45%
JavaScript 29%
TypeScript 19%
Updated 1 weeks ago
TypeScript
96%
Other

superglue

AI Agents · Data Engineering · Developer Tools

2,066

superglue is an AI-agent-driven integration engine that turns plain-English descriptions of enterprise systems into production-grade API tools, ERP/CRM connectors, and data pipelines — self-hosted or cloud, Y Combinator-backed (W25).

View details
42
Repo Health
79
Technical
67
Dependency
Built with
TypeScript 96%
Updated 2 months ago
TypeScript
87%
Other

Webiny JS

Blogging · CMS · Ecommerce

8,047

Open-source, self-hosted CMS on AWS serverless — a TypeScript framework you extend with code, not a product you configure through a UI.

View details
90
Repo Health
86
Technical
61
Dependency
Built with
TypeScript 87%
JavaScript 12%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers