Skip to content

Update pricing structure for team plan#1735

Open
paustint wants to merge 1 commit into
mainfrom
chore/update-pricing
Open

Update pricing structure for team plan#1735
paustint wants to merge 1 commit into
mainfrom
chore/update-pricing

Conversation

@paustint
Copy link
Copy Markdown
Contributor

Restructure the pricing model to eliminate the minimum user requirement for the team plan, allowing unlimited team members. Adjust monthly and annual pricing accordingly. Update relevant descriptions and features to reflect these changes.

Restructure pricing to remove minimum number of users for team plan
Copilot AI review requested due to automatic review settings May 19, 2026 14:56
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates Jetstream’s public and in-app pricing presentation to remove the Team plan minimum-seat framing, introduce per-seat tiered pricing, and refresh plan feature/copy (including moving SOC 2/audit logs positioning to Enterprise).

Changes:

  • Updated landing pricing cards for Professional/Team/Enterprise with new monthly-equivalent annual pricing, “billed annually” labels, and a Team per-seat tier table.
  • Extended the in-app billing plan cards to optionally display Team pricing tiers.
  • Added an in-app “current plan” summary for existing subscriptions and adjusted billing toggle UI copy/behavior.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
apps/landing/pages/pricing/index.tsx Updates landing pricing amounts/copy; adds Team pricing tiers table and “billed annually” label rendering.
apps/jetstream/src/app/components/billing/EnhancedBillingCard.tsx Adds optional pricingTiers rendering and styles; tightens prop array types to readonly.
apps/jetstream/src/app/components/billing/BillingPeriodToggle.tsx Removes the annual “Get two months free” badge from the toggle UI.
apps/jetstream/src/app/components/billing/BillingExistingSubscriptions.tsx Adds current-plan summary box and legacy/custom badges; passes pricing tiers into Team cards.
apps/jetstream/src/app/components/billing/Billing.tsx Makes Team description/pricing tiers switch based on annual vs monthly selection.
apps/jetstream/src/app/components/billing/billing.constants.ts Updates Team/Enterprise features and plan prices/copy; introduces Team pricingTiers in plan descriptions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 276 to +281
priceSubtext={
isAnnual ? PLAN_DESCRIPTIONS[TEAM_ANNUAL_KEY].priceSubtext : PLAN_DESCRIPTIONS[TEAM_MONTHLY_KEY].priceSubtext
}
description={PLAN_DESCRIPTIONS[TEAM_MONTHLY_KEY].description}
description={
isAnnual ? PLAN_DESCRIPTIONS[TEAM_ANNUAL_KEY].description : PLAN_DESCRIPTIONS[TEAM_MONTHLY_KEY].description
}
Comment on lines 84 to 90
export const BillingPeriodToggle = ({ isAnnual, onChange }: BillingPeriodToggleProps) => {
return (
<div css={toggleStyles}>
<div className="billing-toggle-wrapper">
<div className={`savings-badge ${isAnnual ? 'visible' : ''}`}>Get two months free</div>
<div className="billing-toggle-container">
<div className="toggle-wrapper" onClick={() => onChange(!isAnnual)}>
<div className={`toggle-slider ${isAnnual ? 'annual' : ''}`} />
@@ -1,5 +1,5 @@
import { ANALYTICS_KEYS } from '@jetstream/shared/constants';
import { JetstreamPricesByLookupKey, StripeUserFacingCustomer } from '@jetstream/types';
import { JetstreamPricesByLookupKey, StripeUserFacingCustomer, StripeUserFacingSubscriptionItem } from '@jetstream/types';
Comment on lines 38 to 42
export const enterpriseFeatures = [
'Everything in Team',
'Unlimited team members',
'SOC 2 Type II compliance',
'Audit logs',
'Single Sign-On (SSO)',
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants