After nearly 3 months of battle testing our React Native package, and recording over 1.5 million session replays from users all over the world, we now have public open beta for our Swift Package.
The Swift package follows a lot of the design decisions for React Native iOS as that was also built in Native Swift for performance.
What We Reused From React Native
Our React Native package is where the recorder became boring in the best sense. It forced the native iOS and Android engines to survive real app startup races, navigation churn, background/foreground rollover, custom URLSession stacks, offline uploads, and aggressively animated screens. The Swift Package keeps that native core model.
The reusable unit was never the JavaScript API. The reusable unit was the native capture pipeline: DeviceRegistrar establishes identity and upload credentials,ReplayOrchestrator owns the session state machine, VisualCaptureand ViewHierarchyScanner produce time-aligned artifacts, andSegmentDispatcher ships compressed payloads into the same production ingest routes used by React Native.
The Direction From Here
The Swift Package lets us treat native iOS as a first-class integration target instead of a platform implementation detail behind React Native. The important part is that we got there without forking the product model: sessions, artifacts, replay timelines, upload credentials, sampling, observe-only mode, and backend finalization still speak the same protocol.
That is the architectural line we want to keep: different host runtimes, shared replay semantics. React Native will continue to drive cross-platform ergonomics. SwiftPM will let us go deeper on iOS-specific correctness, performance, and privacy. The beta is the point where those two tracks stop blocking each other.


Top comments (0)