Nativestarter
NewAll 78 Bluesky screens are ported

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.

Home feed of the Bluesky port in SwiftUI on iOS
Post thread of the Bluesky port in Jetpack Compose on Android
CP-74 Screen Homebluesky-native
  1. Plan acceptedhash 9d69eecb
  2. Spec checkedagainst the RN app
  3. Tests passSwiftUI and Compose
  4. Parity1.44%, under 2%
  5. Events match19 of 19, in order
  6. Approved2 reviewers, 1 human
  7. Checkpoint done
The Bluesky port running natively, with the five gates its Home screen passed.
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. 1

    Plan accepted

    The checkpoint belongs to a plan a human accepted, and the plan's hash still matches.

    plan-checkpoints

  2. 2

    Spec checked

    The screen spec is reviewed against the running React Native app, not only its source.

    spec-screen

  3. 3

    Tests pass

    The SwiftUI and Compose screens build, and their tests pass on both platforms.

    port-screen-swiftui, port-screen-compose

  4. 4

    Parity passes

    Screenshots and events match the React Native app, or each drift is accepted in writing.

    check-parity

  5. 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

Published

bluesky-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.

End-of-feed block
From 4.87% to 1.56%.
Feed slice height
From 2.81% to 1.6%.
Worst screenshot today
1.94%.

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

  1. Assess the app
  2. Plan the checkpoints127 checkpoints, accepted on 22 October 2026
  3. Capture baselines
  4. 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.
migration-pack
.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

Recommended

Up 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.

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.