Quick Comparison

Here’s how Stripe Entitlements and ParityDeals compare across common use cases:
CapabilityStripeParityDealsNotes
Boolean feature flagβœ…βœ…Simple on/off access to features.
Entitlement API (fetch by customer)βœ…βœ…Return current entitlements based on customer ID.
Plan-based entitlementsβœ…βœ…Attach features to a subscription plan.
Config limits (e.g., max team size = 5)βŒβœ…Store and read numeric or text values.
Metered quotas (API calls, minutes, GB)βŒβœ…Track used, limit, and remaining.
Front-end SDK with hooks/componentsβŒβœ…Integrate access control directly in your UI.
Usage reset by billing cycleβŒβœ…Automatically resets metered usage every cycle.
Per-user overridesβŒβœ…Customize entitlements for individual users.
Edit limits without redeployβŒβœ…Update limits instantly from the dashboard.

Real-World Entitlement Examples

Below is a list of common features, their typical data types, and which platform supports them. This helps clarify where Stripe ends and where ParityDeals begins.
Feature NameTypeDescriptionExample ValueParityDealsStripe
AI AssistantBooleanToggle access to AI toolstrue / falseβœ…βœ…
Max Team SizeConfigRestrict number of team members5, 50, etc.βœ…βŒ
API Call QuotaMeteredTrack and limit API usageused: 10,000βœ…βŒ
Transcription MinutesMeteredMonthly limit on transcription usageremaining: 90 minsβœ…βŒ
Projects LimitConfigRestrict how many projects a user can create3, unlimitedβœ…βŒ
Priority SupportBooleanEnable premium support for select userstrueβœ…βœ…
Max Upload SizeConfigLimit upload size per file25MB, 1GB, etc.βœ…βŒ
AI Token BucketMeteredControl token usage for AI featuresused: 3,000βœ…βŒ
Access to Beta FeaturesBooleanEnable early access to new featurestrueβœ…βŒ
Enable Custom BrandingBooleanWhite-label the product experiencetrueβœ…βœ…

Feature Implementation: Stripe vs ParityDeals

Explore how the same feature would be implemented using Stripe Entitlements vs ParityDeals, so you can feel the difference in developer experience.

1. AI Assistant (Boolean Feature)

Stripe (Manual Check)
import Stripe from 'stripe';

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);

const entitlements = await stripe.entitlements.activeEntitlements.list({
  customer: 'cus_123',
});

const hasAiAccess = entitlements.data.some(
  (e) => e.entitlement_feature.lookup_key === 'ai-assistant'
);

if (hasAiAccess) {
  enableAiAssistant();
}
ParityDeals
import { ShowWhenBooleanEntitled } from '@paritydeals/react-sdk';

<ShowWhenBooleanEntitled featureKey="ai-assistant">
  <AIButton />
</ShowWhenBooleanEntitled>

2. API Call Quota (Metered Limit)

Stripe
// ❌ Not supported β€” you'd need to build custom metering logic.
const used = await getApiUsage(user.id);
const limit = 100000;

if (used < limit) {
  makeApiCall();
} else {
  showUpgradeBanner();
}
ParityDeals
const { data } = useMeteredEntitlement('api-call-quota');

if (data?.remaining === null || data.remaining > 0) {
  makeApiCall();
}

3. Project Limit (Config Feature)

Stripe
// ❌ Not supported β€” you'd need to hardcode limits manually.
const plan = user.stripePlanId;
const maxProjects = plan === 'pro' ? 50 : 3;

if (user.projects.length >= maxProjects) {
  blockProjectCreation();
}
ParityDeals
const { data } = useConfigEntitlement('project-limit');

if (data?.hasAccess && user.projects.length >= data.configuration) {
  showProjectLimitWarning();
}

πŸš€ Why ParityDeals?

Stripe’s entitlement system works well for simple use cases like turning a feature on/off based on a plan. But once you need configuration, metered usage, overrides, or frontend control β€” you hit limits fast. ParityDeals fills these gaps with:
  • Deeper data types like metered and configurable entitlements.
  • Modern SDKs for both frontend and backend.
  • No-code plan editor to change limits instantly.
  • Better visibility into who can access what.
You still use Stripe for payments β€” and ParityDeals to power everything else around what users get after they pay.