Skip to content
lube

Feature flags

Typed valuesPer environmentTargetingAudited

Roll changes out on your terms.

More than an on/off switch. Ship typed values, ramp with deterministic percentage rollouts, and target the exact subjects you mean, all beside the services, environments, and deployments a flag affects.

checkout-v2

  • productionoff
  • stagingon
  • developmenton
  • previewon
One flag, every environment

Its place in the loop

Flags gate the rollout inside Release.

One connected loop, held on the stage this capability serves. The other stages stay as context so you can see what feeds in and what comes next.

BD
Discovery
Feedback
Product
Engineering
Release
Reliability
Evidence

Stage inventory

Release

Carry the change into production.

Deployment history

Review deployment evidence beside the service and environment it affected.

Available now

Feature flags

Keep rollout controls visible beside release context.

Available now

Automatic changelogs

Carry the change into production.

Coming later

Coming later reflects product vision, not a delivery commitment.

How a rollout actually works

Watch one flag become a controlled rollout.

flag: checkout-v2

false

Off everywhere. A safe default while you build.

productionoff
  1. Default

    Every flag starts off.

    Off in every environment, with a typed default value. Nothing reaches a user because the flag simply exists.

  2. Per environment

    Turn it on where it's safe.

    Each environment carries its own config, so a flag can be live in development and staging while production stays untouched.

  3. Deterministic rollout

    Ramp without the flicker.

    A SHA-256 hash of flag, environment, salt, and subject buckets each user consistently, so nobody flips between old and new as you climb from 10 to 100%.

  4. Targeting

    Aim at the exact subjects.

    Ordered groups combine matchers with AND/OR logic and return their own typed value. The most specific match wins, so a tight rule beats a broad one.

  5. Full and reversible

    Ship it, with a way back.

    Fully rolled out, signed for tamper-evident delivery, traced per evaluation, and one restore away from any prior revision.

Evaluation, step by step

Rules are checked in order until one matches.

For a given subject, the engine walks the ordered rules top to bottom and stops at the first match. The winning rule returns its typed value; the rules below it never run.

evaluate · acct_8842 · plan=enterprise · region=EU

first match wins
  • 01Internal staffemail endsWith @lube.workskip
  • 02Beta cohortattr beta = trueskip
  • 03Enterprise · EUplan = enterpriseregion = EU{ variantB }
  • 04All enterpriseplan = enterprise
  • defaultfalse
First matching rule wins

The dials behind a rollout

Three ways a flag decides.

Percentage rollout

Ramp climbs stage by stage.

A scheduled rollout advances the percentage through set stages. The same hashed bucket keeps a user on one side the whole way up.

deterministicscheduledsticky buckets

checkout-v2

scheduled
  • Canary10%
    done
  • Quarter25%
    done
  • Half50%
    current
  • Full100%
    queued
Scheduled percentage ramp

Weighted variants

A subject drops into one bucket.

Split traffic across typed variants by weight. The deterministic hash lands each subject in exactly one bucket and keeps it there.

weighted splittyped variantsone bucket

checkout-v2

hashed split
50%30%20%
  • control
  • variantA · assigned
  • variantB
Hashed into one variant

Ordered targeting

The most specific group wins.

Groups combine matchers with AND/OR and are tried in order. A tight rule beats a broad one, and each returns its own typed value.

AND / ORspecificitytyped return
  • 01Enterprise · EUmatch all
    plan=enterpriseregion=EUvariantB
  • 02Beta cohortmatch any
    attr beta=truevariantA
  • 03US rolloutmatch all
    country=UStrue
  • defaultfalse
Ordered targeting groups

One engine, a lot of dials

The parts most tools leave out.

Every one of these is real. Flags return typed values, matching spans four kinds with fourteen attribute operators, and the dashboard renders the right editor for each type instead of raw JSON.

Flag value types

Not just on/off.

booleanstringnumberjsonarray

Matcher types

How a group decides.

ipRange (CIDR)countryregionattribute

Attribute operators

Fourteen, with nested paths.

equalsnotEqualscontainsstartsWithendsWithinnotIngreaterThanlessThanisSetisNotSet+3

Rollout modes

How a ramp advances.

manualscheduledpauseresumecancel & revert

Smart editors

The right control per type.

slidersegmentedtoggle mapvariantsdurationcolorjson

Environments

Typed and color-coded.

productionstagingdevelopmentpreviewtesting

The engine, in numbers

5

typed value kinds, not just on and off

14

attribute operators for targeting

100%

deterministic: same user, same variant

4

matcher types, from CIDR to attribute

Honest scope

Attribute matching lives in the newer targeting groups; legacy rules cover IP, country, and region. lube evaluates and records rollouts. It does not run A/B significance testing, so exposures and metrics are counts, not experiment verdicts.

Connected context

See what a flag sits beside.

Keep rollout decisions beside the release they change.

Start free

Typed, targeted, environment-aware flags in your workspace.