whatisgithub

What is flash-list?

shopify/flash-list — explained in plain English

Analysis updated 2026-06-22

7,074TypeScriptAudience · developerComplexity · 2/5Setup · easy

In one sentence

FlashList is a high-performance scrollable list component for React Native apps that eliminates blank cells during fast scrolling by recycling off-screen rows instead of destroying them.

Mindmap

mindmap
  root((flash-list))
    What it does
      Replaces FlatList
      Eliminates blank cells
      Recycles off-screen rows
    Features
      Masonry grid layout
      Auto size detection
      No native code
    Tech stack
      TypeScript
      React Native
      JavaScript
    Audience
      Mobile app developers
      React Native devs
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Replace FlatList in a React Native app to fix blank cells and janky scrolling during fast scroll

USE CASE 2

Build a masonry grid layout like Pinterest for a photo or content feed app on iOS and Android

USE CASE 3

Display long lists of items in a React Native app with automatic item size detection

USE CASE 4

Migrate an existing FlatList to FlashList with only one or two lines of code changed

What is it built with?

TypeScriptReact NativeJavaScript

How does it compare?

shopify/flash-listkulshekhar/ts-jestixartz/saas-boilerplate
Stars7,0747,0777,078
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyeasyeasymoderate
Complexity2/52/53/5
Audiencedeveloperdevelopervibe coder

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

So what is it?

FlashList is a list component for React Native, the framework developers use to build mobile apps that run on both iOS and Android from a single codebase. It was created by Shopify to replace the built-in FlatList component, which is the standard way to display long scrollable lists in React Native apps but has known performance problems. The main problem FlashList solves is blank cells. When you scroll quickly through a long list in a typical React Native app, the screen often shows empty white boxes momentarily while the app catches up. FlashList avoids this by recycling the row components that have scrolled off-screen rather than destroying and recreating them, keeping visible content ready at all times. Version 2 of FlashList, which this repository now reflects, was rewritten to work with React Native's new architecture. A notable change from version 1 is that no size estimates are needed: the component figures out item dimensions automatically. The new version is also JavaScript-only, meaning it has no native code dependencies that would require extra compilation steps. For developers already using FlatList, switching to FlashList is designed to take only a line or two of code: the API is intentionally close to what FlatList already provides. The library also supports more advanced layouts, including masonry grids similar to Pinterest where items can have different heights. Installation is done via yarn or npm. The repository includes a full example app in the fixture directory, and documentation is hosted at the project's website. Version 1 documentation remains accessible separately for anyone not yet on the new architecture.

Copy-paste prompts

Prompt 1
I have a React Native FlatList that shows blank cells when scrolling fast. Convert it to FlashList, here is my code: [paste code here].
Prompt 2
Using FlashList from Shopify, help me build a Pinterest-style masonry grid layout for a photo gallery in my React Native app.
Prompt 3
I am building a chat screen in React Native with thousands of messages. Show me how to implement it efficiently with FlashList including infinite scroll.
Prompt 4
My FlashList is showing blank cells even after migration. Here is my component code: [paste code]. What am I doing wrong?
Prompt 5
Show me how to implement pull-to-refresh and infinite scroll pagination together using FlashList in React Native.

Frequently asked questions

What is flash-list?

FlashList is a high-performance scrollable list component for React Native apps that eliminates blank cells during fast scrolling by recycling off-screen rows instead of destroying them.

What language is flash-list written in?

Mainly TypeScript. The stack also includes TypeScript, React Native, JavaScript.

How hard is flash-list to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is flash-list for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.