Home /Product /Feature flags
Mobile feature flags & in-app A/B testing

Change your app, without an app-store release.

CustomFit puts a remote control on your mobile app. Flip features, restyle screens, swap copy, and run A/B tests in Flutter, iOS, Android, and React Native — changes reach users in real time, no resubmission, no waiting on App Store review. AI watches your guardrail metrics and flags regressions instantly.

Real-time updates Flutter · iOS · Android · RN · Web Offline-safe
NEW HOME · variant B
Buy now · ships free
● live
Remote config
home_hero_variant
Rollout
50%of app users
iOS 4.2+ · India
Beta testers · always on

Real-time, no resubmission

Push a config change and live apps pick it up instantly via listeners — no rebuild, no App Store / Play Store review.

🧪

In-app A/B testing

Run experiments on real screens — onboarding, paywall, PDP — and measure conversion & revenue per variant inside the app.

📱

One SDK, every platform

Flutter, Swift (iOS), Kotlin (Android), React Native, and web — type-safe flags with offline caching baked in.

Flutter SDK

Drop in the SDK. Control the app from the dashboard.

Initialize once with a client key and user context, then read type-safe flags anywhere. Add a listener and the value updates live when you change it in CustomFit — the screen reacts without a relaunch.

  • Boolean, string, number & JSON flags — all type-safe
  • Real-time listeners for instant config changes
  • Offline cache so flags resolve even with no network
// Initialize once
final cf = await CFClient.init(config, user);
// Read a type-safe flag
final hero = cf.getString("home_hero_variant", "control");
// React in real time
cf.addConfigListener<String>("home_hero_variant", (v) {
setState(() => heroVariant = v);
});
// Track the outcome for the experiment
cf.trackEvent("add_to_cart", {"value": 1499});
→ variant "B" served · listener fired in <1s
Experiment · App onboarding flow
iOS + Android
A · Control (3 screens)
24,180 users
38.2%baseline
B · Single-screen signup
24,090 users · activation
46.7%+22.3%
Significance 97%Day-1 retention +6.1%Crash-free 99.9%
📲 Promote B to 100% — no app update needed. Live users switch on next launch.
In-app experimentation

A/B test real screens, decide on real revenue.

Test onboarding, paywalls, PDPs, and nav variants on live app users. CustomFit assigns variants by user, tracks in-app events, and reports conversion, activation, and retention per variant — with crash-rate as a guardrail.

  • Sticky, per-user variant assignment across sessions
  • In-app event tracking → conversion, AOV & retention
  • Promote the winner instantly — no store release
Cross-platform SDKs

One control plane for every app you ship

Drop a lightweight SDK into any client. Flags, experiments, and events share the same dashboard across platforms.

🐦

Flutter

Dart SDK with type-safe flags, real-time listeners & offline cache.

🍎

iOS · Swift

Native Swift package with background refresh & battery-aware polling.

🤖

Android · Kotlin

Kotlin SDK with lifecycle-aware sessions & coroutine support.

⚛️

React Native

One JS API across iOS & Android with hooks for live flag values.

🌐

Web & JS

Edge-evaluated flags for storefronts — zero flicker, green CWV.

🔌

REST & webhooks

Server-side eval and an API for anything the SDKs don't cover.

Dynamic behavior

What you can change live in your app

No release cycle. Flip a config in CustomFit and connected apps update on the next refresh.

🎬

Onboarding flow

Number of screens, copy, and order — tuned per cohort.

💳

Paywall & pricing

Plan layout, trial length, and offer framing.

🏠

Home & PDP

Hero, modules, CTAs and merchandising blocks.

🎚️

Feature gates

Turn risky features on for 1% and ramp safely.

Flag types

Every kind of flag you need to ship safely

🔘

Boolean release

On/off a feature for everyone in one toggle.

📊

Percentage rollout

Ramp 1% → 100% and watch the metrics as you go.

🎯

Audience-targeted

Release to a segment — geo, device, beta cohort.

🛑

Kill-switch

Instantly disable a regressing feature, no redeploy.

🧪

Experiment flag

Tie a flag to an A/B test and measure impact.

🗓️

Scheduled

Flip features on/off by date for launches & sales.

Safe release

Deploy on Monday, release when you're ready

1

Deploy dark

Ship code behind a flag — released to no one yet.

2

Ramp gradually

Open to 1%, then 10%, watching guardrail metrics.

3

Target & test

Roll out by audience and measure the impact.

4

Roll back instantly

Regression? Flip the kill-switch — no redeploy.

The fundamentals

What are mobile feature flags?

Mobile feature flags let you turn features and content on or off in a live app from a remote dashboard — without shipping a new build or waiting on App Store / Play Store review. CustomFit pairs flags with in-app A/B testing, so you can roll out, target, experiment, and instantly roll back app behavior across Flutter, iOS, Android, and React Native.

Quick facts

Real-time updates with no app-store resubmission
SDKs for Flutter, iOS, Android, React Native & web
In-app A/B testing tied to conversion & retention
Offline cache + one-click kill-switch
Why it matters

Why feature flags matters for D2C

🚀

Ship fearlessly

Deploy code anytime, release when you’re ready — no risky big-bang launches.

🎯

Release gradually

Ramp 1% → 100% while watching guardrail metrics.

🛑

Roll back instantly

A kill-switch disables a regressing feature without a redeploy.

Who it’s for

Built for your whole growth team

🧑‍💻

Engineering

Separate deploy from release and de-risk launches.

📦

Product teams

Control rollouts by audience and measure impact.

📊

Growth teams

Gate experiments and features from one place.

The complete guide

Understanding mobile feature flags

Mobile feature flags let you turn features and content on or off in a live app from a remote dashboard — without shipping a new build or waiting on App Store or Play Store review. CustomFit pairs flags with in-app A/B testing so you can roll out, target, experiment, and instantly roll back app behavior across Flutter, iOS, Android, and React Native.

Feature flags decouple deploying code from releasing it: ship a feature dark, then enable it for a percentage, an audience, or everyone, and flip it off instantly with a kill-switch if something regresses. This makes releases gradual, targeted, and safe — and turns risky big-bang launches into controlled ramps you watch with guardrail metrics.

For D2C apps, the same control plane powers in-app experimentation: test onboarding flows, paywalls, and PDP layouts on real users, assign variants per user, track in-app events, and promote the winner without an app update. Flags resolve locally with offline caching, so they work even with no network and add negligible latency.

Do feature flags require an app update?

No. Once the SDK is installed, flipping a flag or experiment reaches live users in real time via listeners or the next refresh — no rebuild, no store review.

How is CustomFit different from LaunchDarkly?

CustomFit combines mobile feature flags with in-app A/B testing, personalization, and revenue analytics in one D2C-focused platform, priced on usage rather than per-seat.

Do I need an app-store release to change a flag?

No — that's the point. Once the SDK is in your app, flipping a flag or experiment in CustomFit reaches live users in real time (via listeners or the next refresh) with no rebuild and no App Store / Play Store review.

Which mobile platforms are supported?

Flutter, iOS (Swift), Android (Kotlin), and React Native, plus web and a REST API. All share one dashboard, so a flag or experiment spans every platform at once.

Does it work offline?

Yes. The SDK caches the last known flag values on-device, so flags resolve instantly even with no network and sync again when the app reconnects.

How is this different from LaunchDarkly?

CustomFit combines mobile feature flags with in-app A/B testing, personalization, and revenue analytics in one D2C-focused platform — and prices on usage, not per-seat, so the whole team can manage flags.

Will the SDK hurt app performance or battery?

No. The mobile SDKs use lightweight, battery-aware background refresh and lifecycle-aware sessions, so flag evaluation is local and near-instant after init.

Can a flag be tied to an experiment?

Yes. Attach any flag to an A/B test to measure its real impact on conversion, activation, and retention — with crash-rate as a guardrail — before rolling it out fully.

Decouple deploy from release.

Unlimited flags, unlimited environments. Free until you exceed 10k MAUs.

Built for every D2C category

🧴
Skincare
💄
Beauty
🌿
Wellness
F&B
👟
Apparel
💍
Jewelry
🛋️
Home
🍼
Baby
Live · Right now
Mamaearthfree-shipping band +12.4% AOVGIVAfestive collection page +34% revenueBellavitaPDP CTA test +27.4% CVRKapivaQuiz-driven recs +9.48% CTRThe Sleep Colanding personalized 2× capturesPlumReturning shopper swap +18.2% CVRMamaearthfree-shipping band +12.4% AOVGIVAfestive collection page +34% revenueBellavitaPDP CTA test +27.4% CVRKapivaQuiz-driven recs +9.48% CTRThe Sleep Colanding personalized 2× capturesPlumReturning shopper swap +18.2% CVR