react-window

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

Library
npm
v2.5.0
17,199 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
82 /100 Excellent
Development Activity 88
Maintenance 80
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
95%
Other

LLM Gateway

AI Development · Devops

1,704

One API endpoint for 25+ LLM providers — route, track costs, enforce compliance, and switch models without changing your code.

View details
86
Repo Health
80
Technical
67
Dependency
Built with
TypeScript 95%
Updated 6 days ago
TypeScript
51%
Other

Mattermost

Collaboration · Devops · Team Chat

39,418

Open core, self-hosted team collaboration with chat, AI agents, voice calling, and deep DevOps integrations — all under your control.

View details
96
Repo Health
87
Technical
65
Dependency
Built with
TypeScript 51%
Go 40%
Updated 5 days ago
TypeScript
95%
MIT

melty

AI Code Assistants · Code Editors · Developer Tools

5,462

The AI code editor where every chat message is a git commit you can revert, branch, or squash

View details
35
Repo Health
75
Technical
67
Dependency
Built with
TypeScript 95%
Updated 1 years ago
TypeScript
98%
Other

Outline

Collaboration · Knowledge Management

41,045

A fast, real-time collaborative knowledge base for growing teams built on React, Node.js, and ProseMirror.

View details
91
Repo Health
87
Technical
68
Dependency
Built with
TypeScript 98%
Updated 5 days ago
TypeScript
90%
MIT

Plasmic

CMS · Design Tools · Low Code Platforms

7,125

The open-source visual builder that lets teams design React apps and websites with drag-and-drop while integrating seamlessly with your codebase.

View details
81
Repo Health
78
Technical
64
Dependency
Built with
TypeScript 90%
Updated 6 days ago
Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

40,397

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 5 days ago
TypeScript
91%
MIT

SerpBear

Analytics · Marketing

2,128

Self-hosted keyword rank tracker with Google Search Console integration, multi-provider SERP scraping, and a built-in REST API.

View details
48
Repo Health
67
Technical
68
Dependency
Built with
TypeScript 91%
Updated 5 months ago
TypeScript
89%
Other

strapi

CMS

73,368

Open-source headless CMS that auto-generates REST and GraphQL APIs from your content models, with a fully customizable admin panel you control.

View details
93
Repo Health
84
Technical
63
Dependency
Built with
TypeScript 89%
JavaScript 11%
Updated 6 days 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

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