feat(billing): render cloud plans dynamically for three-tier pricing#2710
Merged
Conversation
cloud now builds its plan list from the billing catalog (pro, premium, enterprise) instead of a hardcoded two-plan default, enriched with default comparison copy and sorted deterministically (checkout plans by price, contact plans last). plan cards show curated marketing highlights with a global expand/collapse chevron and fade, an "on trial"/"current plan" pill, and the current-plan check. comparison table grid columns are dynamic and scroll instead of clipping a third plan. usage-period date shrinks to one line only for year-spanning ranges.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cloud_premiumto the plan keys and checkout-eligible set.Depends on the billing service returning the three cloud plans (
cloud_premiumseeded + linked on Maple).Test plan
Manage planshows Pro, Premium, Enterprise in that order for cloudNote
Medium Risk
Changes how cloud plans are listed and checkout/contact eligibility is resolved, which affects upgrade flows if the billing API is incomplete; UI-only elsewhere with no auth or payment logic changes.
Overview
Cloud plan catalog no longer maps a fixed two-card default onto the API. It lists whatever cloud plans billing returns (enriched with default comparison copy and
highlights), sorts checkout plans by price with contact-only last, and treats an empty cloud catalog as unavailable.cloud_premiumis added to plan keys and checkout-eligible keys.Manage plan / catalog preview plan cards show curated "Everything in X, plus:" bullets (with supported-feature fallback), On trial / Current plan badges, a shared chevron to expand/collapse long highlight lists with a fade, and a footer so CTAs align. The compare table uses dynamic grid columns for N plans and horizontal scroll so a third tier is not clipped.
Billing overview applies a compact one-line 16px style only when the usage period string spans two years; cards use overflow hidden as a fail-safe.
planRequiresContactis centralized onPlanCatalogServicefor sort order and checkout gating. Specs are updated for dynamic cloud catalog behavior.Reviewed by Cursor Bugbot for commit ca37d20. Bugbot is set up for automated code reviews on this repo. Configure here.