// the find
software-mansion/react-native-reanimated
React Native's Animated library reimplemented
A widely-used animation library for React Native that runs animation logic on the UI thread instead of the JS thread, so gestures and transitions stay smooth even when JS is busy. Now split into two packages — Reanimated (animations) and Worklets (the underlying multithreading runtime) — and as of v4 it only targets React Native's New Architecture. Good fit for anyone building gesture-heavy UI (swipeable cards, bottom sheets, custom transitions) who's already on New Architecture.
Worklets let you write JS that actually executes on the UI thread, so animations don't stutter when the JS thread is blocked by data fetching or re-renders — this is the whole reason the library exists and it delivers on it. CI is unusually thorough for a JS ecosystem project: nightly builds across Android/iOS/macOS/tvOS/Windows, sanitizer runs, TypeScript compatibility checks against multiple RN versions, and an Expo DevClient build check. It's the de facto dependency underneath gesture-handler, bottom-sheet, and most RN navigation transition libraries, so it's battle-tested at scale. v4 adds a CSS-style animation API, which is a genuinely useful on-ramp for anyone coming from web.
v4 and current Worklets dropped old-architecture support entirely, so teams on apps that haven't migrated are stuck pinned to 3.x, which is effectively frozen. Splitting Reanimated and Worklets into two separately-versioned packages adds a compatibility matrix you now have to track yourself — the repo even has a dedicated CI job just to check they don't drift apart. Debugging across the JS/UI thread boundary is still rough: a worklet crash on the UI thread often surfaces as a native-side stack trace with little connection back to your JS source. And oddly for a library this many production apps depend on, the README now has paid ad banners embedded at the top, which is a strange thing to ship in your project's front door.