Foredeck

Quickstart

Create a client and evaluate your first flag

Create a client with createClient, wait for it to be ready, and evaluate flags in-process — no network call per evaluation.

import { createClient } from '@foredeck/sdk-js';

const foredeck = createClient({
  sdkKey: process.env.FOREDECK_SDK_KEY!,
  baseUrl: 'http://localhost:8000',   // Foredeck experiment API
  eventsUrl: 'http://localhost:5000', // Foredeck events API
  service: 'checkout',                // stamped on every emission (PRD-13)
  env: 'prod',                        // environment; pairs with service
  defaults: { 'checkout-button': 'control' },
});

await foredeck.ready();

const { variation, config } = foredeck.getVariation('checkout-button', userId);
if (variation === 'treatment') {
  renderButton(config?.color as string);
}

const color = foredeck.getConfigValue('checkout-button', userId, 'color', 'blue');

await foredeck.close(); // flushes pending exposures

Key options

  • sdkKey, baseUrl, eventsUrl are required.
  • service / env attribute every emission to a registered Foredeck service.
  • defaults provides per-flag fallback variations so evaluation never throws, even before the first ruleset fetch.