1. Create a project
curl -X POST https://nest.feather.mupeni.dev/v1/projects \
-H "Authorization: Bearer <server_key>" \
-H "Content-Type: application/json" \
-d '{ "name": "My App", "slug": "my-app" }'
The API automatically seeds three environments: production, staging, and development.
2. Create a flag
curl -X POST https://nest.feather.mupeni.dev/v1/projects/<projectId>/flags \
-H "Authorization: Bearer <server_key>" \
-H "Content-Type: application/json" \
-d '{
"key": "new-checkout",
"name": "New Checkout Flow",
"type": "boolean"
}'
3. Enable the flag in an environment
Grab your environmentId from the project response, then push a new flag version:
curl -X PUT https://nest.feather.mupeni.dev/v1/projects/<projectId>/environments/<envId>/flags/new-checkout \
-H "Authorization: Bearer <server_key>" \
-H "Content-Type: application/json" \
-d '{
"version": 1,
"enabled": true,
"defaultValue": true,
"rules": []
}'
4. Create an API key for the SDK
curl -X POST https://nest.feather.mupeni.dev/v1/projects/<projectId>/environments/<envId>/api-keys \
-H "Authorization: Bearer <server_key>" \
-H "Content-Type: application/json" \
-d '{ "type": "server", "description": "Backend service" }'
The raw key is returned once in the response. Store it securely — it cannot be retrieved
again.
5. Evaluate the flag
Install the SDK:
npm install @feather-flag/sdk
Then evaluate in your application:
import { FeatureFlagServerClient } from "@feather-flag/sdk";
const client = new FeatureFlagServerClient({ apiKey: process.env.FEATHER_FLAG_KEY });
const enabled = await client.evaluate("new-checkout", { userId: "user_123" });
if (enabled) {
// show new checkout
}
What’s next