Local-eval means flag checks are pure in-memory computations — no network call per request. Determinism comes from a stable hash of the bucketing key (defaultDocumentation Index
Fetch the complete documentation index at: https://docs.pylonsync.com/llms.txt
Use this file to discover all available pages before exploring further.
userId).
Install
Inline catalog
Predicates
| Op | Behavior |
|---|---|
eq / neq | Strict equality. |
in / not_in | Membership in a literal array. |
gt / gte / lt / lte | Numeric comparison. |
contains / starts_with / ends_with | String operators. |
regex | RegExp match (anchored at the caller’s discretion). |
when block. Multiple rules within a flag’s targeting array fire in order; first match wins.
Bucketing
hashBucket(key, percent) is FNV-1a — fast (sub-microsecond on hot paths), well-distributed, deterministic. Same hash PostHog/LaunchDarkly use for local-eval.
For per-tenant rollouts (every member of a tenant sees the same value), set rollout.key = "orgId". For cohort experiments, supply a custom property key.
SSR bootstrap
evaluateAll(flags, ctx) resolves every flag’s current value. Serialize the result into the SSR-rendered HTML so the client doesn’t have to wait for a flag fetch — eliminates the “flicker” pattern where a flag-controlled UI flashes before the eval completes.
Editable flags
Whencfg.editable === true, the manifest fragment adds a FeatureFlag entity + setFlag / deleteFlag admin mutations. The runtime caches the catalog in-process and invalidates on mutation. Use this for kill switches ops needs to flip without a redeploy.