Flags.
Feature flags and remote settings, evaluated inside your app.
Flags lets you turn features on and off, roll them out to a percentage of users, and target them by user attributes without a deploy. Your app downloads a small config JSON for its environment and evaluates every flag locally, so a check costs no network call and your users' attributes never leave your app.
Flags is free during the preview. It is hosted in the EU (DigitalOcean, Frankfurt, fra1).
Browse
What you’ll find here
Getting started
Core concepts
Guides
API reference
Model
Project, config, environment
Everything you manage sits under a project. What your app downloads is one config in one environment.
Workspace
└── Project "Storefront" (segments live here: one salt, shared by its configs)
├── Environments Development · Staging · Production
└── Configs "Main", "Mobile" (each holds feature flags and settings)
└── one config JSON per (config, environment), with its own SDK key
GET https://api.flags.productcraft.co/v1/configs/{sdk_key}/config.jsonA flag has one value per environment. Turning new_checkout on in Development leaves Production alone, and each environment has its own SDK key. The concepts page covers each level in detail.
Reference
Base URL
The management API is workspace-scoped and takes a workspace API key or a console session. SDKs download the config from the public delivery route with an SDK key that can only read that one config.
https://api.flags.productcraft.co/v1Limits
Preview limits
Per workspace unless stated. A write that would pass a limit answers 422 LIMIT_EXCEEDED, naming the limit, the maximum and the current count. GET /v1/workspaces/{workspace_id}/limits returns the limits with your current usage.
| What | Limit |
|---|---|
| Projects | 3 per workspace |
| Environments | 5 per project |
| Configs | 10 per project |
| Feature flags and settings | 200 per config |
| Segments | 20 per project |
| Targeting rules | 50 per flag per environment |
| Conditions | 20 per rule (and per segment) |
| Comparison values | 1,000 values or 64 KB per condition; 20,000 per config |
| String or JSON value | 100 KB |
| Config JSON | 1 MiB per environment (422 CONFIG_TOO_LARGE); the console warns from 256 KB |
| Prerequisite depth | 16 |
| SDK poll interval | 60 s by default, 30 s minimum |
| Config downloads | 20 req/s per SDK key and client IP, 20 req/s per client IP; a 304 is never refused for the key’s sake |
| Management API | 600 req/min per credential, writes 120 req/min, test evaluation 30 req/min |
| Change history | 50,000 changes or 200 MiB per project (oldest pruned, warning at 80%) |
| Stored config revisions | the last 100, or 20 MiB, per config and environment |
| Webhook endpoints | the shared per-workspace limit of every ProductCraft product |
How these compare with ConfigCat's plans is in Migrating from ConfigCat.