---
title: "FlashList v2: A ground-up rewrite for React Native's New Architecture"
description: "FlashList v2 is a ground-up rewrite of the React Native list component, aimed at removing v1’s dependence on item-size estimates, native layout corrections, and imprecise scrolling. Built for React Native’s New Architecture, it uses synchronous layout measurements to correct positions before paint and eliminates the need for native code. Its algorithm combines progressive rendering, predictions updated by item type, and rapid corrections, while adaptive rendering responds to scroll velocity, direction, and device performance. The new scrolling system progressively refines target positions for precise scrollToIndex operations, and horizontal lists can contain resizable items and coordinate with parent lists. The release also adds scroll-position maintenance, improved masonry support, recycle-pool controls, helper hooks, and better web support; benchmarks report up to 50% less blank area while scrolling than v1 on the new architecture."
---

# FlashList v2: A ground-up rewrite for React Native's New Architecture

[Shopify](https://yomu.fyi/company/shopify) · 2023-10-18 · Jul 31, 2025

**Type:** Announcement

## Summary

FlashList v2 is a ground-up rewrite of the React Native list component, aimed at removing v1’s dependence on item-size estimates, native layout corrections, and imprecise scrolling. Built for React Native’s New Architecture, it uses synchronous layout measurements to correct positions before paint and eliminates the need for native code. Its algorithm combines progressive rendering, predictions updated by item type, and rapid corrections, while adaptive rendering responds to scroll velocity, direction, and device performance. The new scrolling system progressively refines target positions for precise scrollToIndex operations, and horizontal lists can contain resizable items and coordinate with parent lists. The release also adds scroll-position maintenance, improved masonry support, recycle-pool controls, helper hooks, and better web support; benchmarks report up to 50% less blank area while scrolling than v1 on the new architecture.

## Context

FlashList v1 required developers to provide item-size estimates, used native modules to correct layout issues caused by inaccurate estimates, and could produce imprecise scrolling or scroll-position maintenance. Horizontal lists could not change item heights after initial mount. The rewrite was motivated by React Native’s New Architecture and its synchronous layout measurements.

## Approach / What changed

FlashList v2 computes item layouts and absolute positions, progressively renders visible content, predicts unmeasured item sizes by view type, and corrects inaccurate predictions inside useLayoutEffect before the next paint. It uses adaptive rendering based on scroll velocity, direction, and actual render times, and progressively refines scroll targets as neighboring items are measured. The implementation removes native code and adds coordinated nested horizontal lists, scroll-position maintenance, masonry options, recycle-pool controls, and helper hooks.

## Takeaways

- Synchronous layout measurements in React Native’s New Architecture let FlashList correct positions inside useLayoutEffect before paint, removing the native modules used by v1 for layout corrections.
- The v2 scrolling algorithm calculates a target from the layout map, measures neighboring items, and continuously refines the position before initiating the scroll to target the requested item precisely.
- FlashList v2’s adaptive render window considers scroll velocity, direction, and device render times; benchmarks report up to 50% reduced blank area while scrolling compared with v1 on the new architecture.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Developer Experience](https://yomu.fyi/topic/developer-experience), [Performance](https://yomu.fyi/topic/performance), [Scalability](https://yomu.fyi/topic/scalability)

- Source: [Shopify](https://shopify.engineering/flashlist-v2)
- Source URL: https://shopify.engineering/flashlist-v2
- Ingested by Yomu: 2026-08-30T13:19:20.880Z

[Read original post](https://shopify.engineering/flashlist-v2)
