Quick Verdict
For a SaaS that needs to keep flags off third-party SaaS:
- Unleash — purpose-built feature-flag platform, mature SDKs, the most flexible self-host story. The default for "we want feature flags and only feature flags."
- Flagsmith — solid self-hosted flags + a friendly UI + remote config + segmentation. The right pick when non-engineers will manage flags day-to-day.
- PostHog — flags as part of a much larger product (analytics, replay, surveys, A/B). The right pick if you already self-host PostHog or want one tool for everything.
If you only need flags, Unleash. If your PMs and CSMs will toggle them, Flagsmith. If you want the whole product analytics + flags + replay platform in one self-hostable container, PostHog.
Key Takeaways
- All three offer free, self-hostable cores; all three have hosted commercial tiers.
- Unleash is the deepest on flag-specific concepts (strategies, environments, constraints, variants).
- Flagsmith is the easiest to operate and has the cleanest non-technical UI.
- PostHog wins when flags are one feature among ten you already use.
- LaunchDarkly remains the hosted enterprise default — see the feature flags hosted comparison for that side.
Decision Table
| Scenario | Pick |
|---|---|
| EU / regulated SaaS, flags must stay in-region | Any of the three (all self-host) |
| Solo founder, want simplest setup | Flagsmith (single Docker image) |
| Engineering-heavy team, complex targeting | Unleash |
| Already use PostHog for analytics | PostHog flags |
| Want flags + remote config + segmentation in one tool | Flagsmith |
| Mobile + backend + frontend SDKs all needed | Unleash (largest SDK matrix) |
| Want experimentation + flags in one product | PostHog |
What Self-Hosted Buys You
The reasons SaaS teams self-host flags in 2026:
- Latency. Edge SDKs evaluate locally; the SaaS plane only delivers config. Self-host moves the config plane closer to your app, too.
- Compliance. Some industries require flags to stay in your VPC (healthcare, regulated EU).
- Cost predictability. Past a certain MAU count, hosted flag platforms become expensive.
- No third-party dependency in the critical path. Your auth flow shouldn't break because LaunchDarkly is degraded.
If none of those apply, PostHog Cloud or LaunchDarkly is the lower-effort pick.
Unleash
Pricing: Open-source under Apache 2.0 (Unleash OSS). Pro / Enterprise add SSO, audit logs, change requests, advanced governance.
Fit: Engineering-driven flag use. Teams that care about kill switches, gradual rollouts, A/B variants, and per-environment governance.
What you get:
- Strategies — gradual rollout, user-with-id, IP-list, application-hostname, custom.
- Variants for A/B and multi-arm tests.
- Environments — dev / staging / prod with per-env flag state.
- Constraints — combine targeting rules.
- SDKs for Node, Python, Java, Go, Rust, .NET, Ruby, PHP, JavaScript, React, Android, iOS, Flutter — most coverage of the three.
- Edge proxy for low-latency client evaluation.
import { Unleash } from 'unleash-client';
const unleash = new Unleash({
url: process.env.UNLEASH_URL!,
appName: 'web',
customHeaders: { Authorization: process.env.UNLEASH_TOKEN! },
});
if (unleash.isEnabled('new-checkout', { userId: user.id })) {
// ship the new checkout
}
Where it bites:
- The OSS UI is functional but plainer than Flagsmith's.
- Some governance features (change requests, approvals, audit) are paid-only.
- Setup involves Postgres + the Unleash server; not a one-line Docker run for production use.
Flagsmith
Pricing: Open-source (BSD-3 core). Hosted free tier; paid scales by MAU and identities.
Fit: Mixed teams where PMs, marketing, and CSMs toggle flags. Products that also want remote config (not just on/off).
What you get:
- Boolean flags + multivariate flags + remote config in one model.
- Identity overrides (per-user flag values), segments, environments.
- Friendly dashboard with role-based access.
- SDKs for Node, Python, Ruby, Go, Java, .NET, JavaScript, React, React Native, iOS, Android, Flutter.
- Single Docker Compose for self-host; Helm chart for K8s.
import flagsmith from 'flagsmith/isomorphic';
await flagsmith.init({ environmentID: process.env.FLAGSMITH_ENV_ID! });
await flagsmith.identify(user.id);
if (flagsmith.hasFeature('new-checkout')) {
const buttonText = flagsmith.getValue('checkout-button-copy') as string;
}
Where it bites:
- Less granular targeting than Unleash for complex engineering scenarios.
- Hosted plan pricing scales with identities — for high-volume B2C, self-host is meaningfully cheaper.
PostHog
Pricing: Open-source (MIT) with self-host. Cloud has a generous free tier; paid scales by event volume.
Fit: Teams who want flags + experiments + product analytics + session replay + surveys in one platform. The "consolidate-the-bill" pick.
What you get:
- Boolean and multivariate flags, percentage rollouts.
- Cohort-based targeting that uses the same events powering analytics — your "did_action_X" cohort is a flag target without extra infra.
- Experiments with statistical significance built in.
- Local evaluation SDKs to keep flag checks off the network.
- Self-host is a single Helm chart on K8s; significant resource footprint.
Where it bites:
- The flag UI is one tab in a much larger product — non-engineers may find it busy.
- Self-host is the largest of the three to operate (Postgres + ClickHouse + Kafka + Redis).
- Pricing on hosted PostHog is event-driven, which can be confusing for flag-only use.
For a deeper PostHog vs LaunchDarkly comparison, see feature flags: LaunchDarkly vs PostHog.
Targeting Capability Comparison
| Capability | Unleash | Flagsmith | PostHog |
|---|---|---|---|
| Boolean flags | ✅ | ✅ | ✅ |
| Multivariate / variants | ✅ | ✅ | ✅ |
| Percentage rollout | ✅ | ✅ | ✅ |
| User-id targeting | ✅ | ✅ | ✅ |
| Segment targeting | ✅ | ✅ | ✅ (event cohorts) |
| Geo / IP targeting | ✅ | ✅ Plugin | ✅ |
| Event-based cohorts | ❌ | ❌ | ✅ Native |
| Remote config / values | ✅ Variants | ✅ Native | ✅ |
| Local evaluation | ✅ | ✅ | ✅ |
| Edge proxy | ✅ | ✅ | ✅ |
PostHog's cohort targeting is the differentiator: "users who completed onboarding but haven't invited a team member" is a single cohort it can target a flag at — without a custom property pipeline.
Self-Host Operational Footprint
| Tool | Stack | Reasonable monthly infra |
|---|---|---|
| Unleash | Postgres + Unleash server | $25–60 |
| Flagsmith | Postgres + Flagsmith server | $25–60 |
| PostHog | Postgres + ClickHouse + Kafka + Redis + workers | $200–600+ |
PostHog's footprint is justifiable when you use the analytics, replay, surveys, and experiments. For flags only, it's overkill — Unleash or Flagsmith are the right answers.
SDK Coverage
All three cover JavaScript, Node, Python, and the popular mobile platforms. Unleash has the broadest server SDK matrix (Rust, .NET, PHP, Java, Go, Ruby, Python, Node). PostHog and Flagsmith are both strong on web and mobile but thinner on JVM and Go ecosystems.
If your boilerplate is multi-language (a Node frontend + a Python data service + a Go gateway), Unleash is the safest bet.
Wiring It Into a SaaS Boilerplate
A typical Next.js wiring:
// lib/flags.ts
import { unleash } from '@/lib/unleash';
export async function getFlag(key: string, ctx: { userId?: string; orgId?: string }) {
return unleash.isEnabled(key, ctx);
}
// app/(app)/checkout/page.tsx
import { getFlag } from '@/lib/flags';
import { auth } from '@/lib/auth';
export default async function Page() {
const session = await auth();
const useNewCheckout = await getFlag('new-checkout', {
userId: session.userId,
orgId: session.orgId,
});
return useNewCheckout ? <NewCheckout /> : <LegacyCheckout />;
}
For a generic flag-add walkthrough, see how to add feature flags to a SaaS starter.
Cost at Realistic SaaS Scale
For 10k MAU with ~20 active flags:
- Unleash self-host: ~$30/mo infra + your time.
- Flagsmith self-host: ~$30/mo infra + your time.
- PostHog self-host: $200+ in infra (justifiable when analytics is included).
- Unleash Cloud: ~$80/mo on the smallest paid tier.
- Flagsmith Cloud: ~$45/mo at this MAU count.
- PostHog Cloud (flags only): cheap because flag evaluations are billed at low rates.
Self-host pays back fast on infra alone; the question is engineering time.
What to Pick
- Engineering-heavy team, flags only, EU compliance → Unleash self-host.
- Mixed team with non-engineer flag toggling → Flagsmith (host or self-host).
- Already on PostHog or want one tool → PostHog.
- Want hosted with no ops → consider LaunchDarkly or PostHog Cloud.
FAQ
Can I migrate from LaunchDarkly? Yes — all three have import scripts or documented migration guides. Plan for SDK call-site changes; the flag semantics translate cleanly.
Edge runtime? All three have edge-friendly modes. PostHog's local evaluation runs in any JS runtime; Unleash and Flagsmith offer edge proxies for sub-millisecond evaluation.
OpenFeature? All three have OpenFeature providers, so you can write your code against the OpenFeature SDK and swap providers later.
For the broader hosted vs self-hosted decision, see the LaunchDarkly vs PostHog comparison.