Two tracks running in parallel. On mobile, the React/Ionic shell was missing native capabilities the product team wanted; on the server, a Node.js monolith was past the point where a single deploy was safe.
Mobile plugins
Wrote custom Capacitor plugins for the gaps in the iOS and Android bridges — push handling, background geolocation, a couple of vendor SDK wrappers. Typed APIs on both sides, no half-implemented native shims.
NestJS migration
Strangler-fig pattern. Routed traffic at the gateway, peeled off bounded contexts one at a time, kept feature parity verified by replaying production traffic against both stacks in shadow mode. No freeze, no big-bang cutover.