🚀 Feature Flags Flutter SDK
Lightweight, fast, self-hosted feature flag SDK for Flutter apps. Toggle features remotely without rebuilding your app.
Works with the Feature Flags Backend + Dashboard you built.
✨ Features
- 🔑 API key based authentication
- ⚡ Fast flag fetch
- 💾 Local cache & offline fallback
- 🔁 Auto refresh (polling)
- 🧠 Simple API (
isEnabled) - 🧩 Works with any Flutter app
- 🌍 Supports multiple environments
- 🔒 Secure (hashed keys, no secrets stored)
- 🚀 Production ready
📝 Sign Up for API Key
To get started, sign up at Feature Flag Dashboard to obtain your API key. After signing up, you can create feature flags on the dashboard to use in your app.
📦 Installation
Add to pubspec.yaml:
dependencies:
feature_flags: 0.0.2
🚀 Quick Start
1️⃣ Initialize SDK
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await FeatureFlags.init(
apiKey: "YOUR_API_KEY",
);
runApp(MyApp());
}
2️⃣ Use flags anywhere
if (FeatureFlags.isEnabled("new_home")) {
return NewHome();
} else {
return OldHome();
}
🔄 Live updates
Flags are refreshed automatically (every 30s by default).
To manually rebuild UI:
setState(() {});
or any state management packages that u prefer
🧠 Fallback values
FeatureFlags.isEnabled("new_home", fallback: false);
📴 Offline support
If network fails:
- last known flags are used
- app never crashes
- perfect for production
⚙️ Configuration
Change refresh interval
await FeatureFlags.init(
apiKey: "...",
);
🔒 Security model
- SDK uses API keys, not JWT
- Keys are scoped to environment
- Backend stores only hashed keys
- Raw keys shown only once
- Safe to ship in production apps
🧩 Example
Text(
FeatureFlags.isEnabled("new_home")
? "New UI"
: "Old UI",
);
🛑 Dispose (optional)
FeatureFlags.dispose();
🧠 Roadmap
Stream updates (no rebuild)Widget builderPercentage rolloutUser targetingAndroid SDKiOS SDKReact SDKWeb SDK
🏆 Why this exists
This SDK is:
- fast
- simple
- self-hosted
- cheap - free for now
- perfect for indie apps & startups
👨💻 Author
Built with ❤️ by Charan If you use this in production, ⭐ star the repo!