Feature Flags
unleash

Unleash

Feature FlagsOpen SourceSelf-hostedGradual Rollout

The leading open-source feature management platform. Run fully self-hosted (free forever) or use the managed cloud. Supports gradual rollouts, user targeting, environment-based toggles, and A/B testing.

License

Apache-2.0 (core) / Proprietary (Enterprise)

Language

TypeScript

53
Trust
Limited

Why Unleash?

Need full control and self-hosting of feature flag infrastructure

GDPR compliance requires data to stay on-premise

Budget-conscious teams who want enterprise feature flag capabilities for free

Signal Breakdown

What drives the Trust Score

Weekly npm downloads
110k/wk
GitHub commits (90d)
250
GitHub stars
11.5k
Stack Overflow questions
1.5k
Community health
Active
Weighted Trust Score53 / 100

Download Trend

Last 12 months

Tradeoffs & Caveats

Know before you commit

Don't want to manage infrastructure — LaunchDarkly or Statsig are fully managed

Need built-in A/B testing with auto-stats — Statsig is purpose-built for that

Very small project — the Unleash server has meaningful operational overhead

Pricing

Free tier & paid plans

Free tier

Open source — self-hosted free forever

Paid

Managed cloud from $80/mo (Pro)

Enterprise features (SSO, SCIM) require paid plan

Alternative Tools

Other options worth considering

launchdarkly
LaunchDarkly82Strong

The industry standard feature flag and experimentation platform. Safe rollouts, A/B testing, and targeting rules for any deployment strategy. Used by thousands of engineering teams for risk-free releases.

statsig
Statsig10Limited

Feature flags, A/B testing, and product analytics in a single platform. Statsig connects experiments to metrics automatically, making it easy to measure the impact of every feature you ship.

Often Used Together

Complementary tools that pair well with Unleash

nextjs

Next.js

Frontend & UI

98Excellent
View
supabase

Supabase

Database & Cache

95Excellent
View
vercel

Vercel

Hosting & Deploy

89Strong
View
posthog

PostHog

Monitoring

81Strong
View
statsig

Statsig

Feature Flags

10Limited
View

Learning Resources

Docs, videos, tutorials, and courses

Get Started

Repository and installation options

View on GitHub

github.com/Unleash/unleash

npm (client)npm install unleash-client

Quick Start

Copy and adapt to get going fast

import { initialize, destroyWithFlush } from 'unleash-client';

const unleash = initialize({
  url: process.env.UNLEASH_URL!,
  customHeaders: { Authorization: process.env.UNLEASH_API_TOKEN! },
  appName: 'my-node-app',
  environment: process.env.NODE_ENV,
});

await new Promise((resolve) => unleash.on('synchronized', resolve));

const context = { userId: 'user_123', properties: { plan: 'pro' } };
const show = unleash.isEnabled('new-checkout', context);
console.log('Show new checkout:', show);

await destroyWithFlush();

Code Examples

Common usage patterns

Docker Compose self-hosted setup

Run Unleash locally with PostgreSQL using Docker Compose

# docker-compose.yml
version: '3'
services:
  unleash:
    image: unleashorg/unleash-server:latest
    ports: ['4242:4242']
    environment:
      DATABASE_URL: 'postgres://unleash:password@db/unleash'
      DATABASE_SSL: 'false'
    depends_on: [db]
  db:
    image: postgres:15
    environment:
      POSTGRES_DB: unleash
      POSTGRES_USER: unleash
      POSTGRES_PASSWORD: password

# Then run: docker compose up -d
# Admin UI: http://localhost:4242
# Default login: admin / unleash4all

Gradual rollout to percentage of users

Roll out a feature to 20% of users progressively

import { initialize } from 'unleash-client';

const unleash = initialize({
  url: process.env.UNLEASH_URL!,
  customHeaders: { Authorization: process.env.UNLEASH_API_TOKEN! },
  appName: 'gradual-rollout-demo',
});

await new Promise((r) => unleash.on('synchronized', r));

// The gradual rollout strategy is configured in the Unleash UI.
// Here we just evaluate it with a user context (userId drives the hash).
function shouldShowFeature(userId: string): boolean {
  return unleash.isEnabled('new-pricing-page', { userId });
}

Community Notes

Real experiences from developers who've used this tool