FlashList

High-performance drop-in replacement for React Native's FlatList with view recycling

Library
npm
v2.3.2
7,179stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
79/100Good
Development Activity68
Maintenance72
Community80
Maturity56
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
85/100Excellent
Architecture87
Code Quality85
Innovation84
Learning Curve82

FlashList is Shopify’s high-performance list component for React Native, built as a near drop-in replacement for FlatList that eliminates the blank-cell flicker and janky scrolling common with large or complex lists. Version 2 was rebuilt from the ground up as a JS-only solution targeting React Native’s New Architecture, using view recycling to reuse component instances instead of destroying and recreating them, and removing the need for the size estimates that FlashList v1 previously required.

Used extensively within Shopify’s own commerce apps and widely adopted across the React Native community, FlashList focuses on making ‘fast scrolling’ achievable by simply swapping the component name — matching FlatList’s familiar props API while delivering meaningfully better frame rates and memory efficiency for feed-like, product-list, and infinite-scroll UIs.

What You Get

  • A FlashList component with a FlatList-compatible props API for near-zero migration effort
  • View recycling that reuses rendered components instead of destroying/recreating them during scroll
  • No size-estimation requirement in v2 — item sizing is handled automatically
  • Support for multiple item view types (heterogeneous lists) with strong scroll performance
  • Full TypeScript type definitions and React Native New Architecture support

Common Use Cases

  • Rendering large product catalogs or shopping feeds without scroll stutter
  • Building infinite-scroll social/news feeds that mix multiple content types (posts, ads, headers)
  • Replacing an existing FlatList that shows blank cells or drops frames on lower-end devices
  • Chat and messaging UIs needing smooth, high-frequency list updates

Under The Hood

Architecture: FlashList v2’s public component (src/FlashList.ts) is a thin re-export of RecyclerView, the actual implementation living under src/recyclerview/. RecyclerViewManager.ts tracks which items are currently mounted and maps scroll position to visible item ranges, RenderStackManager.ts and ViewHolderCollection.tsx/ViewHolder.tsx implement the recycling pool that reuses mounted component instances across scroll positions instead of destroying and remounting them, LayoutCommitObserver.tsx coordinates layout measurement commits, and layout-managers/ houses the sizing strategies that let v2 avoid requiring size estimates. A native/ directory bridges to platform-specific measurement/scroll APIs needed to hook into React Native’s New Architecture (Fabric).

Tech Stack: TypeScript throughout, built against React Native’s New Architecture exclusively in v2 (the README explicitly states v2 will not run on the old architecture), with a fixture/react-native app and Ruby/CocoaPods tooling (Gemfile) for iOS native test fixtures, plus a Jest-based test setup and a documentation website built separately under website/.

Code Quality: Tests live alongside implementation files in __tests__ directories throughout src/, and a dedicated benchmark/ folder under src/ suggests performance regressions are tracked deliberately rather than only functionally tested — appropriate given the library’s entire value proposition is scroll-performance. TypeScript strictness (tsconfig.json, tsc -b build step) and ESLint (lint/lint:fix scripts) are enforced in CI, and the CHANGELOG/RELEASE.md show a disciplined, frequent release process (100 releases recorded).

API Design: The defining design decision is API compatibility with FlatList — matching prop names and behavior closely enough that many teams migrate by only renaming the component — while v2 goes further by removing the estimatedItemSize prop that v1 required, eliminating a common source of misconfiguration and tuning pain. This ‘looks familiar, works better’ positioning keeps the learning curve low for React Native developers who already know FlatList.

Used by 10 apps in this directory

TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

32,102

Free, open-source Cowork desktop app that unifies Claude Code, Codex, Gemini CLI, and 20+ AI agents into a single platform with multi-agent teams, 24/7 cron automation, and zero-config built-in agent.

View details
88
Repo Health
76
Technical
66
Dependency
Built with
TypeScript95%
Updated today
TypeScript
55%
Other

Cap

Team Chat · Video Conferencing

20,986

Open source Loom alternative with GPU-accelerated recording, instant share links, AI summaries, and full self-hosting via Docker Compose.

View details
89
Repo Health
81
Technical
65
Dependency
Built with
TypeScript55%
Rust40%
Updated yesterday
TypeScript
99%
AGPL 3.0

Karakeep

Bookmarks Archiving

28,454

Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.

View details
88
Repo Health
76
Technical
67
Dependency
Built with
TypeScript99%
Updated 3 days ago
Python
60%
MIT

LibrePhotos

File Storage

8,044

Self-hosted photo library with AI-powered face recognition, semantic search, and automatic event albums — no cloud required.

View details
82
Repo Health
78
Technical
67
Dependency
Built with
Python60%
TypeScript37%
Updated 3 days ago
TypeScript
53%
MIT

MentraOS

Developer Tools · AI Development

2,314

The open source operating system and SDK that lets developers build one app and run it across smart glasses from Even Realities, Vuzix, Mentra Live, and more.

View details
92
Repo Health
77
Technical
67
Dependency
Built with
TypeScript53%
Java19%
Updated today
Go
54%
Other

Multica

AI Assistants · AI Development

46,769

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

View details
86
Repo Health
83
Technical
70
Dependency
Built with
Go54%
TypeScript41%
Updated today
Python
66%
Other

Onyx

AI Assistants · AI Agents · Knowledge Management

31,658

Self-hostable AI platform with agentic RAG, 50+ connectors, deep research, code execution, and support for every major LLM provider.

View details
92
Repo Health
83
Technical
72
Dependency
Built with
Python66%
TypeScript28%
Updated today
Python
67%
Apache 2.0

Polar

Ecommerce · Developer Tools · Invoicing Finance

10,199

Open source payments infrastructure that turns software into a business — subscriptions, usage-based billing, digital products, and merchant-of-record compliance in one platform.

View details
90
Repo Health
82
Technical
71
Dependency
Built with
Python67%
TypeScript26%
Updated today
Rust
77%
AGPL 3.0

Spacedrive

File Storage · Collaboration

38,790

One file manager for all your devices and clouds — powered by a Virtual Distributed File System built in Rust.

View details
60
Repo Health
84
Technical
65
Dependency
Built with
Rust77%
TypeScript20%
Updated 3 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

Search