Skip to content

Pricing & Limits

Featsync has two simple plans: Free and Pro.

Plans

Free Plan - $0/month

Perfect for side projects and MVPs.

ResourceLimit
Workspaces1
Feature flags5
Evaluations/month100,000
Environments1 (Production)
Team members1
Targeting rules2 per flag
API rate limit100 req/min

Includes:

  • Boolean flags (on/off)
  • Targeting rules (2 per flag)
  • JavaScript SDK
  • Dashboard access
  • Email support

Does not include:

  • Percentage rollouts
  • Multiple environments
  • Team collaboration
  • User segments
  • Audit logs
  • CLI tool

Pro Plan - $19/month

For growing startups and teams.

ResourceLimit
WorkspacesUnlimited
Feature flagsUnlimited
Evaluations/month1,000,000
EnvironmentsUnlimited
Team membersUnlimited
Targeting rulesUnlimited
User segmentsUnlimited
API rate limit1,000 req/min

Includes everything in Free, plus:

  • Percentage rollouts
  • Unlimited targeting rules
  • User segments (reusable groups)
  • Multiple environments (Dev, Staging, Production)
  • Unlimited team members (no per-seat pricing!)
  • CLI tool (scan codebase, cleanup stale flags)
  • Audit logs
  • Change history
  • Priority support

Feature Comparison

FeatureFreePro
Workspaces1Unlimited
Boolean flags✅✅
Targeting rules2 per flagUnlimited
User segments❌✅
Percentage rollouts❌✅
Environments1Unlimited
Team members1Unlimited
CLI tool❌✅
Audit logs❌✅
Change history❌✅
API rate limit100/min1,000/min
SupportEmailPriority

Evaluation Counting

An “evaluation” is counted each time your code checks a flag:

// Each of these counts as 1 evaluation
await featsync.isEnabled('flag-a'); // +1
await featsync.isEnabled('flag-b'); // +1
await featsync.isEnabledForUser('flag-c', userId); // +1

Reducing Evaluations

The SDK caches flags to reduce evaluations:

// Configure cache time
const featsync = new Featsync({
apiKey: 'fs_...',
cacheMs: 60000, // 1 minute cache
});
// During cache window, no new evaluations counted
await featsync.isEnabled('my-flag'); // +1 (API call)
await featsync.isEnabled('my-flag'); // +0 (cached)
await featsync.isEnabled('my-flag'); // +0 (cached)

Evaluation Limits Behavior

Usage LevelBehavior
0-79%Normal operation
80-99%Warning banner in dashboard
100-149%SDK refresh interval doubled
150-199%Dashboard read-only
200%+SDK uses cached values only

Your app never breaks - even at 200%+, the SDK returns cached values.

Upgrading

  1. Go to Settings → Billing in the dashboard
  2. Click Upgrade to Pro
  3. Enter payment details
  4. Instantly unlock Pro features

Downgrading

When you downgrade from Pro to Free:

ResourceBehavior
Flags 1-5Stay active
Flags 6+Archived (still evaluate, can’t edit)
EnvironmentsOnly Production remains editable
Team membersRemoved (notified via email)

Important: Archived flags continue to work. Your app won’t break.

FAQ

Why no free trial?

The Free plan is your trial:

  • Test the SDK integration
  • Validate the dashboard UX
  • Ship a real feature behind a flag

Pro features (environments, rollouts) are things you know you need. At $19/month, if unsure, just pay for one month.

Why no per-seat pricing?

We believe team pricing should be simple:

  • $19/month = unlimited team members
  • No surprise costs as your team grows
  • Everyone can toggle flags

What happens if I exceed limits?

  • Evaluation limits: SDK slows down, then uses cache. Never breaks.
  • Flag limits: Can’t create new flags. Existing flags work.
  • Rate limits: 429 response, retry after delay.

Can I get higher limits?

For enterprise needs, contact us.

Next Steps