What shipped in Zenmanage in October
Four SDKs, sign-in with Google or GitHub, a paginated targets list in the Management API, and 14 bug fixes. Here's what changed in October, and what to check before you upgrade.
October highlights
- React SDK (Oct 4). A
FlagsProvider,useFlaganduseVarianthooks, andFlagGateandwithFlagfor conditional rendering. Loading and error states are explicit, so you decide what renders while a flag loads or when the API can't be reached. Works with React 18.2 and newer, including 19. - Next.js SDK (Oct 10). Evaluates flags in Server Components, route handlers, and middleware, and passes the results down to Client Components so the first paint is already right.
- Sign in with Google or GitHub (Oct 10). Sign in or sign up with an existing account instead of creating a separate password.
- Dark mode on the sign-in screens (Oct 9). Sign-in, sign-up, password reset, and email confirmation now follow your system setting.
- iOS SDK (Oct 19). A native Swift package, installed with Swift Package Manager, with async/await and rules cached in
UserDefaults. - Android SDK (Oct 28). A Kotlin SDK on Maven Central that caches rules in
SharedPreferences. - Management API: faster targeting rules. Listing rules is faster for flags with many segments.
- Management API: paginated targets. The targets list is now paginated. More on this below.
- 14 bug fixes shipped in October.
Feature spotlight: flags on the phone
On the web, a flag change reaches the next request. On a phone, the picture is different. Shipping a feature means a store submission, the network drops out at the worst moments, and the build you shipped months ago is still running for some of your users. A flag only helps if it still works in those conditions.
The two mobile SDKs share one model. They fetch your rules, evaluate flags on the device, and keep the rules cached locally. Reading a flag never waits on a network call, and a cold launch with no signal still evaluates against the last rules the app saw. On Android, that cache also keeps a percentage rollout stable: a user stays in the same bucket from one launch to the next. On iOS, the same cache lives in UserDefaults.
For the iOS details, see our iOS SDK post.
One thing to check before you upgrade
The targets list in the Management API is now paginated. Pass per_page to set the page size, follow meta.next_cursor for the next page, and use status to filter. If your integration reads every target in a single call, it will now get one page. Update the call to follow the cursor before you rely on the full list.
The full list
Every change, with the date it shipped, is on the changelog.