Examples
Release a checkout rewrite
Section titled “Release a checkout rewrite”const flags = featureFlags({ name: "main", flags: { checkoutV2: flag.boolean({ default: false, environments: { preview: true, }, rules: [ flag.tenants(["tenant_acme"]).value(true), ], }), },})app.get("/checkout", async (request) => { const tenantId = request.headers.get("x-tenant-id") ?? "public" const enabled = await flags.enabled("checkoutV2", { tenantId, environment: request.env.NODE_ENV === "production" ? "prod" : "preview", })
return Response.json({ checkoutVersion: enabled ? "v2" : "v1", })})Roll out a new pricing page
Section titled “Roll out a new pricing page”const flags = featureFlags({ name: "main", flags: { pricingPageVariant: flag.variant({ default: "control", variants: ["control", "short-copy", "new-layout"], rules: [ flag.percentage(20, { stickiness: "tenantId" }).value("new-layout"), ], }), },})Raise a runtime limit
Section titled “Raise a runtime limit”const flags = featureFlags({ name: "main", flags: { maxUploadMb: flag.number({ default: 25, environments: { prod: 50, }, }), },})const maxUploadMb = await flags.value<number>("maxUploadMb", { environment: "prod", default: 25,})