Move your React Native app to SwiftUI and Compose with your own coding agent.
The Migration Pack gives your agent the skills, reviewers and scripts to do it one checkpoint at a time. Each checkpoint keeps your app's design and is checked against the app your users already have.
From $149, one-time payment. Installs in Claude Code, Cursor and Codex.


- Plan acceptedhash 9d69eecb
- Spec checkedagainst the RN app
- Tests passSwiftUI and Compose
- Parity1.44%, under 2%
- Events match19 of 19, in order
- Approved2 reviewers, 1 human
- Checkpoint done
- Bluesky screens ported
- 78 of 78
- screenshots over the parity gate
- 0 of 35
- native tests, iOS and Android
- 2,802
The parts a converter misses
Any coding agent can write a SwiftUI or Compose screen. Your users notice the rest. The Pack makes each of these a checked step.
Users stay signed in
Sessions and stored data move from SecureStore, AsyncStorage or MMKV to native storage, so the update does not log anyone out.
Push notifications keep working
Push tokens and notification handling carry over to the native app.
Analytics events match
The events the native app sends are diffed against the React Native app before a checkpoint closes.
Visual parity is measured
Screenshots of both builds are captured in the same state and diffed, not compared by eye.
The cutover is planned
Same bundle ID, phased rollout, OTA retirement and a rollback plan.
Every checkpoint passes five gates.
A checkpoint is one screen or one module, small enough to review in minutes. It cannot close until each gate passes, and the next one cannot start until it closes.
- 1
Plan accepted
The checkpoint belongs to a plan a human accepted, and the plan's hash still matches.
plan-checkpoints
- 2
Spec checked
The screen spec is reviewed against the running React Native app, not only its source.
spec-screen
- 3
Tests pass
The SwiftUI and Compose screens build, and their tests pass on both platforms.
port-screen-swiftui, port-screen-compose
- 4
Parity passes
Screenshots and events match the React Native app, or each drift is accepted in writing.
check-parity
- 5
Reviewed and approved
Two reviewer agents look for problems. Findings are fixed or dismissed, then a human approves.
parity-reviewer, architecture-reviewer
Run on Bluesky. Measured in public.
All 78 screens rebuilt in SwiftUI and Jetpack Compose with the Pack. Three are measured in full against the React Native original, and the same checks are running across the rest.
Bluesky
Publishedbluesky-social/social-app · MIT · pinned at 2bfb94d
78 of 78 screens ported to both platforms
Every screenshot inside the 2% gate.
The share of pixels that differ from the React Native original. Two of the defects the checks caught, from their first measurement to today.
Measured in full, on iOS and Android
- Home feed
- Post thread
- Profile
- Screenshots compared
- 35
- Screenshots over the limit
- 0 of 35
- Close, but not identical
- 26 of 35
- Analytics events that match
- 6 of 6 flows
Still open, and published as open
Swipe back does not pop the thread
SwiftUI
- Assess the app
- Plan the checkpoints127 checkpoints, accepted on 22 October 2026
- Capture baselines
- Port each screenAll 78 screens on iOS and Android, as of 25 October 2026
Source: iOS (SwiftUI) · Android (Compose)
Not affiliated with, endorsed by, or officially connected to Bluesky Social PBC. Bluesky is a trademark of Bluesky Social PBC.
What is in the Pack
Skills your agent runs in order, reviewers that look for problems, and scripts for the parts that must be exact.
- 8 skills
- Assess the app, plan checkpoints, spec a screen, port it to SwiftUI and Compose, check parity, replace native modules, plan the cutover.
- 2 reviewer agents
- One checks parity with the React Native app. One checks the native architecture. Both look for problems, not approval.
- 3 scripts
- A static analyzer, a checkpoint plan with hash-based acceptance, and a Maestro-driven parity pipeline with its own screenshot comparator.
- 6-chapter playbook
- The decisions around the code: whether to migrate, brownfield or rewrite, life after OTA, cutover.
.claude-plugin/
skills/
assess-rn-app/
plan-checkpoints/
spec-screen/
port-screen-swiftui/
port-screen-compose/
check-parity/
replace-expo-module/
plan-cutover/
agents/
parity-reviewer.md
architecture-reviewer.md
scripts/
install.sh
playbook/3 scripts ship inside the skills they belong to.
Worth doing, or worth not doing
Most React Native apps should stay on React Native. Check yourself against the second list before the first.
Buy the Pack if
- You have a React Native or Expo app in production, with users whose session, data and analytics have to survive the move.
- Something is forcing the question: a platform API you cannot reach, performance you have measured, or a native SDK that keeps not fitting.
- Your team can own Swift and Kotlin afterwards. The Pack moves the code; it does not maintain it for you.
- You want each step measured against the running app, and you want to see the screens that do not match.
Do not buy it if
- You are happy on React Native and nothing is forcing a change. The Pack's own first chapter tells teams in that position to stay, and the assessment says so in writing when it applies.
- One slow screen is the whole problem. A native module behind an interface is cheaper than a migration, and the playbook recommends exactly that.
- Nobody will own two native codebases. Shared code is what lets a small team ship on both platforms at all; losing it is the real cost.
- You want the migration done for you with no review. Pilots are scoped and capped, whole migrations are not sold, and every checkpoint needs a human approval that cannot be waived.
- The app is greenfield or has no users. There is nothing to migrate and nothing to keep parity with.
Not sure which list you are on? A Readiness Report answers it for your app, and it says stay on React Native when that is the answer.
One payment. Updates forever.
One-time payment, updates forever and a 14-day refund on every licence.
Individual
1 developer
$149
For one engineer. Use it on unlimited personal and client projects.
Team
RecommendedUp to 10 developers
$499
For a mobile team moving its company's apps to native.
Company
Unlimited developers
$1,499
For a company with several mobile teams or contractors.
Every licence is bought by enquiry, so we can confirm it fits before you pay. Email hello@nativestarter.io or use the form on the licence page. Compare licences.
Built by an engineer who has shipped both sides.
Hardik Srivastava. 11 years in mobile, native Android first, then deep enough into React Native to land commits in its core.
- Add support for invert colors check on Android accessibilityReact Native commit cc1d2853f, pull request 47341
- Add support for detecting grayscale mode enabled on AndroidReact Native commit e70202e60, pull request 47497
- Convert systeminfo module classes to KotlinReact Native commit 8dc2c90ce, pull request 47616
Want a second opinion on your app?
Support from the founder is optional. The advisory call is free. For anything else, write to hello@nativestarter.io.
- Advisory call60 minutes
- Free
- Readiness Report5 working days
- On request
- Pilotafter a report
- On request
Start with one screen.
Install the Pack, plan the checkpoints, and port your first screen. If it is not for you, every licence has a 14-day refund.