Overview
You manage flags in the dashboard, CLI, or management API. Your application downloads an environment’s configuration as a snapshot and evaluates flags locally, without a network request on each flag check.Manage flags
Use the dashboard to change targeting rules, enabled state, and fallthrough values. Use the CLI to sync flag definitions from code, or the management API to automate supported operations. Changes publish automatically; you do not need a separate publish step. Organizations, projects, environments, and credentials determine who can change flags and which configuration your application receives. See Environments, Access control, and Keys.Evaluate in your application
The SDK downloads a snapshot for the environment bound to its SDK key fromhttps://edge.useshipd.com. Each flag check uses that local snapshot and the evaluation context you provide.
- Flag checks do not wait for the dashboard or API.
- Rules can use only the snapshot and evaluation context available to the SDK.
- Percentage rollouts assign the same bucket for the same flag key and bucket attribute.
Receive changes
SDKs poll for updated snapshots. TypeScript SDKs can also enable realtime updates withstream: true: an update notification triggers a snapshot refresh rather than waiting for the next poll.
Streaming needs a WebSocket implementation. Node.js 20 callers supply the WebSocket option; browsers and Node.js 22+ provide one. See SDK reference.
With a positive refreshIntervalMs, polling continues if streaming is unavailable. With refreshIntervalMs: 0, the client keeps its last good snapshot until a manual refresh or another update notification. Go uses polling.
Handle service interruptions
If a refresh fails, SDKs keep evaluating with their last good snapshot. Before a snapshot loads, they use configured defaults or supported bootstrap/cache options. Changes made during an interruption reach your application after a successful refresh. See What happens if shipd is down? and Troubleshooting.Understand data sharing
Evaluation runs locally. SDKs can also send evaluation and identify events; those are separate from flag checks. Review Identify users and the Edge API for event contents and behavior. Disable event delivery withevents: false in TypeScript or DisableEvents: true in Go.