ShipEasy
Flags & ExperimentsConfigs

Configs — typed values

Typed config values you can change without a redeploy.

ShipEasy · Configs

Ship a value — without a redeploy.

Typed key/value configs (string, number, boolean, JSON) you can change without shipping code. Schema-validated. Sub-millisecond evaluation in your SDK with no per-request fetch.

Production readyOn this page · 5 min readUpdated · May 10, 2026Works with · Server SDK · Browser SDK

A config is a typed key/value you can change without a redeploy. Use one when the answer to "what should this be right now?" is not boolean — pricing, copy, limits, feature options, endpoint paths, model names, anything you'd otherwise hard-code as a constant.

When to use a config

Reading a config

import { config } from "@shipeasy/sdk/server";

const heroTitle = await config<string>("home.hero.title");
const promoActive = await config<boolean>("promo.active");
const limits = await config<{ maxItems: number; maxPrice: number }>("checkout.limits");

Sub-millisecond evaluation — no per-request fetch from your code.

Configs vs gates

Both are typed values you can change without a redeploy. Pick by the shape of the answer:

QuestionGateConfig
Outputbooleanstring / number / boolean / JSON
Targeting rules?yesno — values are global
Rollout percentage?yesno
Use case"is feature X on?""what value should X be?"

See also

  • Quickstart — create your first config in 5 minutes
  • Values — schema validation, JSON shapes, complex configs
  • Targeting — when you need targeting, reach for a gate
  • Decision tree — gate vs config vs killswitch vs experiment

On this page