> ## Documentation Index
> Fetch the complete documentation index at: https://feather.mupeni.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Create a project and evaluate your first flag in under 5 minutes.

## 1. Create a project

```bash theme={null}
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

```bash theme={null}
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:

```bash theme={null}
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

```bash theme={null}
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" }'
```

<Warning>
  The raw key is returned **once** in the response. Store it securely — it cannot be retrieved
  again.
</Warning>

## 5. Evaluate the flag

Install the SDK:

```bash theme={null}
npm install @feather-flag/sdk
```

Then evaluate in your application:

```typescript theme={null}
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

* Add [targeting rules](/docs/concepts/flag-config) to roll out to a percentage of users.
* [Protect your production environment](/docs/concepts/environments#protected-environments) with a change-request workflow.
* Explore the full [API reference](/docs/api-reference/overview).
