A baby-care app with paying subscribers: feeding, sleep, growth and health tracking, with multi-caregiver sync. Expo and React Native, native Swift widgets and App Intents on their own test target, Supabase edge functions, and RevenueCat handling live subscriptions.
The rebrand, and why it is the interesting part
Renaming a live product is where teams quietly break things, because identity is load-bearing in ways nobody notices until it fails. The rebrand is currently in flight, run under an explicit backward-compatibility contract that freezes the parts customers silently depend on.
Bundle and EAS project identity: change it and you break the install
App Group storage: the widgets read from it
RevenueCat product IDs: change them and you strand existing purchases
Persisted storage keys and legacy deep links: change them and you lose local data
The freeze list, written before the rename started. This is the part of a rebrand that actually decides whether customers notice.
Verification is mechanical, not remembered
Behind the contract sits a seven-command verification suite: brand verification that assets regenerate deterministically, typecheck, JS tests, a dedicated Swift widget test target, production-independence and edge-function checks, plus a website release check. Local rebrand work is complete and the remaining release gates are tracked explicitly rather than carried in someone's head.
The release gate the rebrand still has to clear. Machine-checked, not remembered.
Like this project
Posted Sep 10, 2026
A shipped baby-care app with paying subscribers, mid-rebrand under a backward-compatibility contract that keeps every purchase intact.