Skip to content
Platform · Feature flags

Flags your platform team can actually audit.

Boolean, string, number, and JSON flags. Targeted delivery or A/B test rules. Environment-aware— a flag is not one thing, it’s one thing per env.

01 — Flag types

Four primitives, no surprises.

BOOLEAN
Boolean
true / false

On or off. The classic feature toggle — perfect for kill switches and gated releases.

STRING
String
"variant-a" | "variant-b"

Emit a token per user. Great for multi-way UI routing or ramp strategy naming.

NUMBER
Number
0 | 10 | 100

Deliver numeric thresholds — timeouts, limits, pricing tiers — without a redeploy.

JSON
JSON
{ layout, copy, fx }

Ship structured config. One flag can update many surfaces atomically.

02 — Rule types

Targeted delivery or A/B test.

TARGETED_DELIVERY

Rollout %

Ship one value to a percentage of a matched audience. Ramp from 0 to 100 without redeploys. Combine with audience rules for per-segment rollout curves.

25% on
AB_TEST

Split variations

Deliver up to 4variations with weighted splits. Every assignment is logged against the platform’s stats engines for proper read-out.

A · 25%
B · 25%
C · 25%
D · 25%
03 — Environments

One flag. Every environment.

prod
on
100%
staging
rolling
25%
dev
off
0%

Create as many environments as you need — prod, staging, and dev to start, or your own, each with its own SDK key and color. Every environment keeps its own toggle state, rollout percentage, and audience rules. Promote changes across them with a single click — or automate it with the API.

04 — Overrides + stale detection

Debugging without guesswork.

Per-user overrides

Pin a user to a value.

Support tickets go from “what did they see?” to “here, look.” Force any user into any variation for repro. Overrides expire or stay sticky — your call.

user_A12Fnew-checkout · on
user_X83Qnew-checkout · off
Stale-flag detection

Kill the zombie flags.

Flags untouched for 60 days surface in a review queue. Every code path that references a flag is logged, so cleanup is mechanical, not archaeological.

  • legacy-pricing· 142 days stale
  • beta-nav· 98 days stale
05 — SDKs

Flags in every runtime.

@avsbhq/js

Universal JavaScript client — flag evaluation, audience rules, hashing.

@avsbhq/node

Node server SDK — Express/Fastify middleware, Redis sticky bucketing, SSE streaming.

@avsbhq/react

React hooks — AvsBProvider, useFlag, useFlagDetails, useTrack.

@avsbhq/next

Next.js — App Router and Pages Router, server and client.

@avsbhq/vue

Vue 3 bindings — flags and tracking.

@avsbhq/svelte

Svelte bindings — flags and tracking.

@avsbhq/solid

SolidJS bindings — flags and tracking.

@avsbhq/angular

Angular — injectable service with RxJS helpers.

@avsbhq/react-native

React Native — hooks for iOS and Android.

@avsbhq/browser

Framework-free browser client.

@avsbhq/edge

Edge runtimes — Cloudflare Workers and the like.

Available on demand — Python (PyPI), Go (Go modules), Ruby (RubyGems), PHP (Packagist), Java (Maven Central), .NET (NuGet). Built in the repo and ready to publish on request.

React example · useFlag hook
1import { AvsBProvider, useFlag } from '@avsbhq/react';
2
3function App() {
4 return (
5 <AvsBProvider sdkKey={process.env.AVSB_SDK_KEY}>
6 <Checkout />
7 </AvsBProvider>
8 );
9}
10
11function Checkout() {
12 // Boolean flag with a default fallback
13 const useNewCheckout = useFlag('new-checkout', false);
14
15 return useNewCheckout
16 ? <CheckoutV2 />
17 : <CheckoutLegacy />;
18}

Flags with a real on-off switch.

Every flag audited. Every change logged. Every rollout reversible.