Framework Upgrade

Migrate React 18 to React 19 Automatically

Upload your project and get production-ready migrated code in minutes.

What changes between React 18 and React 19?

  • forwardRef is no longer needed; ref is passed as a regular prop to function components
  • New use() hook for reading resources (promises and context) during render
  • useActionState replaces useFormState for form action management
  • React.createContext no longer returns a Provider component; use Context directly as JSX
  • propTypes and defaultProps on function components are ignored at runtime
  • String refs and legacy Context (contextTypes, getChildContext) are removed entirely
  • useRef now requires an argument; useRef() with no args is a type error
  • Concurrent features like useDeferredValue get an initialValue parameter

How Nivo migrates React 18 to React 19

01

Connect your project

Paste a GitHub URL or upload a ZIP file of your React 18 project.

02

Nivo detects your React 18 project

The engine scans your codebase to identify React 18 patterns, APIs, and configuration that need updating.

03

AI applies all React 19 migration transforms

Hybrid AST + AI engine applies deterministic transforms for configuration and dependencies, and AI-powered transforms for complex code changes. Every change gets a confidence score.

04

Download migrated codebase + review report

Get a ZIP with your fully migrated code, a complete migration report, and a checklist of items flagged for manual review.

Frequently Asked Questions

What are the biggest breaking changes in React 19?

The removal of forwardRef (ref is now a regular prop), the replacement of useFormState with useActionState, and the removal of string refs and legacy Context APIs. Additionally, propTypes are no longer checked at runtime, and useRef requires an explicit argument.

Is it safe to migrate a large React 18 app to React 19?

Yes. Nivo scans your entire codebase for every deprecated pattern—forwardRef wrappers, string refs, legacy Context usage, and propTypes—and transforms them in a single pass. Each change produces a reviewable diff.

How does Nivo handle forwardRef removal?

Nivo unwraps every forwardRef call, moves the ref parameter into the component's regular props, and updates the corresponding TypeScript types. It also handles cases where forwardRef is combined with memo or other higher-order components.

Do third-party libraries need to support React 19?

Most well-maintained libraries already support React 19. Nivo checks your package.json dependencies against a compatibility database and flags any libraries that have known React 19 issues.

How long does a React 18 to 19 migration typically take?

Most projects complete in under 10 minutes. The time depends on how extensively your codebase uses forwardRef, string refs, and legacy Context. Nivo processes all files in parallel for speed.

Can I use React 19 features incrementally?

Yes. After migration, new features like the use() hook, Actions, and the improved ref-as-prop pattern are available immediately. You can adopt them incrementally without changing existing working code.

Start your React 18 to React 19 migration

Free tier available — no credit card required