React Virtuoso

The most powerful virtual list component for React — render huge lists, grids, tables, and chat feeds effortlessly.

Library
npm
v4.18.19
6,474 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
90 /100 Excellent
Development Activity 96
Maintenance 100
Community 64
Maturity 60
Momentum 40

Technical Analysis

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

React Virtuoso is a family of React components for virtualized rendering of large scrollable datasets. It renders only the items currently in the viewport, keeping the DOM small and scrolling smooth even with hundreds of thousands of rows. Unlike most virtualization libraries, it handles variable and dynamically-changing item sizes automatically — no manual measurement or hard-coded heights required.

The package ships flat lists (Virtuoso), grouped lists with sticky headers (GroupedVirtuoso), responsive grids (VirtuosoGrid), and virtualized HTML tables (TableVirtuoso), plus first-class support for endless scrolling, pinned items, and scroll-to-index. It has zero runtime dependencies and works with React 16 through 19.

What You Get

  • Four components covering the common cases: Virtuoso (flat lists), GroupedVirtuoso (sticky group headers), VirtuosoGrid (responsive grids), and TableVirtuoso (HTML tables)
  • Automatic variable-size handling with ResizeObserver — no manual measurement or fixed row heights
  • Endless scrolling with startReached/endReached callbacks, press-to-load-more, and scroll-position retention when prepending items
  • Imperative controls for scroll-to-index, initial top-most item, and pinned header/footer items
  • Full TypeScript types and SSR support, with zero runtime dependencies

Common Use Cases

  • Infinite-scroll feeds and timelines that load more data as the user reaches the end
  • Chat and messaging interfaces where new messages arrive and older history is loaded on scroll
  • Large data tables and grids that must stay responsive with tens of thousands of rows
  • Image galleries and product listings rendered in responsive virtualized grids

Under The Hood

Architecture - The library is built on an internal reactive dataflow engine (src/urx and src/react-urx) in which each concern — sizing, scrolling, grouping, initial index, window scrolling — is expressed as a self-contained “system” of input/output streams wired together in a dependency graph (see the many *System.ts files such as listSystem.ts, sizeSystem.ts, and scrollToIndexSystem.ts). The React components (Virtuoso.tsx, VirtuosoGrid.tsx, TableVirtuoso.tsx) are thin shells that bind props to these systems and render the computed visible range. Item offsets and size ranges are stored in a balanced AA-tree (src/AATree.ts) so lookups and range queries stay logarithmic even with hundreds of thousands of rows.

Tech Stack - Written almost entirely in TypeScript (~98% of the codebase). It builds with Vite, tests with Vitest and Playwright for end-to-end scenarios, and lints/formats with oxlint and oxfmt. It carries zero runtime dependencies and declares React and React-DOM (16–19) as peer dependencies, shipping both ESM and CJS bundles with type declarations. The repo is a pnpm workspace monorepo that also houses sibling packages (message-list, masonry, gurx, data-table).

Code Quality - The package is well tested: over a dozen unit test files under test/ cover the sizing, grid, grouped-list, and scroll-to-index systems and SSR, alongside Playwright e2e suites in e2e/. Types are strict and the reactive systems are documented with extensive doc comments. Concerns are cleanly separated into single-responsibility system modules, which keeps the otherwise complex virtualization logic navigable.

API Design - The public surface is deliberately small and ergonomic: pass totalCount and an itemContent render callback and the component handles the rest, with sensible variants for grouped, grid, and table layouts. Naming is consistent (GroupedVirtuoso, VirtuosoGrid, TableVirtuoso), imperative needs are exposed through a ref handle, and the extensive documentation site at virtuoso.dev provides live examples for nearly every feature, keeping the getting-started boilerplate to a few lines.

Used by 26 apps in this directory

Go
62%
Apache 2.0

Harness Open Source

Code Editors · Developer Tools · Devops

38,684

A unified open source DevOps platform combining Git hosting, CI/CD pipelines, cloud development environments, and artifact registries in a single self-hosted system.

View details
90
Repo Health
79
Technical
64
Dependency
Built with
Go 62%
TypeScript 33%
Updated yesterday
TypeScript
71%
Other

highlight.io

Analytics · Developer Tools · Monitoring

9,384

Open-source full-stack monitoring that unifies session replay, error tracking, logging, and distributed tracing so you can stop context-switching between tools.

View details
76
Repo Health
78
Technical
65
Dependency
Built with
TypeScript 71%
Go 16%
Updated yesterday
TypeScript
100%
Apache 2.0

ILLA Builder

Design Tools · Developer Tools · Low Code Platforms

12,333

Open-source low-code platform for building internal tools with drag-and-drop UI, reactive data bindings, and real-time collaboration.

View details
55
Repo Health
71
Technical
63
Dependency
Built with
TypeScript 100%
Updated 5 months ago
TypeScript
98%
Other

LobeHub

AI Assistants · Automation · Productivity

83,455

Your Chief Agent Operator — build, schedule, and collaborate with an entire AI team in one self-hostable workspace.

View details
92
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 98%
Updated today
Clojure
71%
AGPL 3.0

Logseq

Knowledge Management · Note Taking

45,349

A privacy-first, open-source knowledge graph platform combining Markdown, Org-mode, bidirectional linking, and local-first storage for building your second brain.

View details
92
Repo Health
82
Technical
65
Dependency
Built with
Clojure 71%
OCaml 12%
Updated yesterday
TypeScript
44%
Other

Magic

AI Agents · Automation · Low Code Platforms

5,055

Magic is an enterprise-grade open-source AI agent platform combining a generalist AI agent, workflow engine, IM, and collaborative office system for running an AI-powered digital workforce.

View details
68
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 44%
PHP 32%
Updated 2 months ago
Python
62%
Apache 2.0

marimo

Data Engineering · Developer Tools

23,309

A reactive Python notebook that eliminates hidden state, runs reproducibly, and deploys as a web app or script — stored as pure Python, built for the AI era.

View details
90
Repo Health
91
Technical
65
Dependency
Built with
Python 62%
TypeScript 37%
Updated today
Go
56%
Other

Multica

AI Assistants · AI Development

53,682

Turn coding agents into real teammates — assign issues, track progress, and compound reusable skills across a vendor-neutral, self-hosted platform.

View details
87
Repo Health
83
Technical
67
Dependency
Built with
Go 56%
TypeScript 38%
Updated today
Go
95%
Other

NetBird

Security

30,175

Replace your VPN with a zero-trust WireGuard overlay network that auto-connects devices, enforces SSO and posture checks, and deploys in under 5 minutes.

View details
92
Repo Health
82
Technical
66
Dependency
Built with
Go 95%
Updated today

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