FFS¶
Feature flags that are fast ⚡, lean 🤏, and open-source 🌍.
Project¶
FFS is built on Kotlin Multiplatform and made up of 4 major components:
- A dashboard to create and manage feature flags.
- SDKs to consume feature flags:
- For frontends or other unsafe environments, relying on the server for evaluation results.
- For backends or other safe environments, evaluating feature flags locally.
- A server to provide the API for the dashboard and SDKs.
Getting started¶
Getting started is as simple as:
- Head over to https://ffs.delivery (or your own instance).
- Create an organization.
- Generate an API token.
- Set up an SDK.
- Create feature flags.
The remaining docs go over components, workflows, and advanced options.
Why¶
Because no other solutions nail this specific intersection of goals.
⚡ Updates using server-sent events. Changes are propagated instantly to clients.
⚡ Evaluates over 40,000 rules per second. On a Raspberry Pi 4 Model B. Per core.
⚡ Dedicated frontend library for JavaScript. No compromises where bundle size matters.
🤏 Limited in feature set and code surface. It does few things, and it does them right.
🤏 No bloat. Complimentary functions should be handled by complimentary tools.
🤏 Easy to grasp, maintain, and improve across all libraries and server.
🌍 Open-source first and foremost. No special versions or closed add-ons for enterprise.
🌎 Easy to set up and deploy. We can run it for you, but out of convenience, not complexity.
🌏 All contributions are welcome, and we're happy to help along the way.
Technology¶
Kotlin is the backbone of FFS. It uses Kotlin/JS in the dashboard, to Kotlin/Multiplatform in the SDKs, to Kotlin/JVM in the server.
While this optimizes development time, a larger benefit is correctness. Sharing code and tests across projects and platforms helps ensure consistent behavior, and that any singular fix or improvement immediately benefits multiple components.
Cross-platform has a bad rap, but Kotlin inverts the usual paradigm. By compiling down to and deeply integrating with each platform it supports, instead of trying to replace it, Kotlin provides the benefits of code sharing without most interoperability or performance challenges.