react-window

Virtualized React components for rendering large lists and tabular data without the performance cost.

Library
npm
v2.3.3
17,208 stars
MIT License

Repository Health

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

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
86 /100 Excellent
Architecture 86
Code Quality 88
Innovation 85
Learning Curve 82

react-window is a lightweight React component library for efficiently rendering large lists and tabular data. Instead of mounting every row and cell in the DOM, it uses windowing (virtualization) to render only the items currently visible in the viewport, recycling elements as the user scrolls. This keeps memory usage flat and scrolling smooth even for datasets with tens of thousands of rows.

Built around a small set of composable primitives, List and Grid, plus imperative refs and hooks for measuring dynamic sizes, react-window powers demanding UIs including React DevTools and the Replay browser. It ships first-class TypeScript definitions and supports fixed, percentage, and function-based row and column sizing.

What You Get

  • A List component for vertically or horizontally windowed lists with fixed or dynamic row heights.
  • A Grid component for two-dimensional virtualization of tabular data with independent row and column sizing.
  • Imperative APIs (via useListRef/useGridRef) to scroll to a specific index or offset programmatically.
  • Hooks such as useDynamicRowHeight for measuring and caching variable-size rows automatically.
  • First-class TypeScript types, RTL support, and a getScrollbarSize helper for layout calculations.

Common Use Cases

  • Rendering long feeds, logs, or search results with thousands of rows in a React app.
  • Building data tables and spreadsheets where both rows and columns must be virtualized.
  • Displaying large tree views or chat histories without freezing the UI on scroll.
  • Powering developer tools and inspectors that stream large amounts of structured data.

Under The Hood

Architecture - The library is organized around a framework-agnostic core in lib/core/, where useVirtualizer is the central hook that tracks container size via a ResizeObserver, computes visible start/stop indices (getStartStopIndices), and caches item bounds (useCachedBounds, createCachedBounds) to derive per-item offsets. The public List and Grid components in lib/components/ compose this core, translating the resolved window into rendered rows and cells while useItemSize and useDynamicRowHeight handle fixed, percentage, and measured sizing.

Tech Stack - Written almost entirely in TypeScript (~97%), it declares React and react-dom 18 or 19 as peer dependencies and ships as dual ESM/CJS builds with bundled type definitions. The repo uses Vite for building the library and docs, Vitest with Testing Library for unit tests, Playwright for cross-framework integration tests (Next, Vike, Vite), and ESLint plus Prettier for linting and formatting.

Code Quality - The codebase is small, focused, and thoroughly tested: nearly every core module, hook, and utility has a co-located *.test.ts(x) file, and integration tests exercise real framework setups. Code is strictly typed, uses small single-purpose modules, and includes assertion helpers and shared test mocks (mockResizeObserver, mockScrollTo).

API Design - The public surface is deliberately minimal and ergonomic: two components (List, Grid) plus a handful of ref and sizing hooks, with row and cell renderers receiving typed RowComponentProps/CellComponentProps. Sizing accepts numbers, percentage strings, or functions, and imperative scrolling is exposed through refs, letting developers get started with little boilerplate while keeping advanced control available.

Used by 30 apps in this directory

TypeScript
56%
Other

agenta

AI Development · Developer Tools · Devops

4,788

The open-source LLMOps platform unifying prompt engineering, evaluation, and observability for teams building reliable LLM applications.

View details
91
Repo Health
77
Technical
67
Dependency
Built with
TypeScript 56%
Python 39%
Updated 5 days ago
TypeScript
72%
AGPL 3.0

APITable

Databases · Low Code Platforms

15,623

API-first collaborative spreadsheet-database platform that auto-generates REST APIs and lets teams build internal tools, CRMs, and dashboards without code.

View details
71
Repo Health
77
Technical
60
Dependency
Built with
TypeScript 72%
Java 22%
Updated 3 weeks ago
TypeScript
68%
Apache 2.0

Appsmith

Automation · Developer Tools · No Code Platforms

40,959

Open-source low-code platform to build admin panels, dashboards, and internal tools connected to any database or API.

View details
93
Repo Health
79
Technical
66
Dependency
Built with
TypeScript 68%
Java 21%
Updated 6 days ago
Python
66%
Other

AutoGPT

AI Assistants · Automation · Productivity

187,596

Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.

View details
93
Repo Health
78
Technical
66
Dependency
Built with
Python 66%
TypeScript 33%
Updated 4 days ago
JavaScript
100%
Other

Automatisch

Automation · No Code Platforms

13,979

Self-hosted, no-code workflow automation that keeps your data on your own servers—a privacy-first alternative to Zapier with 90+ integrations.

View details
49
Repo Health
78
Technical
62
Dependency
Built with
JavaScript 100%
Updated 7 months ago
Go
75%
AGPL 3.0

Coder

Code Editors · Developer Tools · Devops

16,729

Self-hosted cloud development environments and AI coding agents — defined in Terraform, connected via WireGuard, automatically shut down when idle.

View details
91
Repo Health
90
Technical
65
Dependency
Built with
Go 75%
TypeScript 23%
Updated 4 days ago
JavaScript
90%
Other

CodeSandbox

Code Editors · Developer Tools

13,650

Instantly ready browser-based IDE that runs full npm dependency resolution and transpilation entirely client-side, with no server needed.

View details
67
Repo Health
76
Technical
62
Dependency
Built with
JavaScript 90%
Updated 3 weeks ago
TypeScript
45%
Other

Convex Backend

Databases · Developer Tools

12,617

Open-source reactive database that lets developers build live-updating apps with pure TypeScript, strong consistency, and real-time subscriptions—no separate API layer required.

View details
87
Repo Health
82
Technical
68
Dependency
Built with
TypeScript 45%
Rust 43%
Updated 6 days ago
Go
49%
Other

Cosmos-Server

Authentication · Security

6,167

All-in-one self-hosted home server with SmartShield anti-DDoS, Nebula mesh VPN, automatic HTTPS, and a 250-app marketplace — all secured behind a unified auth layer.

View details
83
Repo Health
59
Technical
64
Dependency
Built with
Go 49%
JavaScript 48%
Updated 1 weeks 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