feat(pricing): sell Teams, keep Business gated - #18
Merged
Conversation
Teams was marked "Coming soon" on the pricing page with an empty CTA href, while the Terms page priced it and promised a 14-day free trial. Those cannot both be true, and the product side works: an isolated end-to-end run confirmed team creation, invite and accept, built-in and custom roles, and seat-cap enforcement refusing a member over the cap with 402. Unlock the Teams card so it renders a real CTA, and drop the Terms trial claim rather than restate it — the Pro trial is granted at registration, whereas a Teams trial would come from the LemonSqueezy variant, which is not verifiable from this repo. Stating the price and the per-seat minimum is the part we can stand behind. Business stays gated and is now marked not available for purchase in the Terms. It is not simply Teams plus granular permissions from a billing standpoint: create_checkout matches only pro and teams, and tier_from_variant_id knows only those variants, so a Business purchase would be charged and silently skip the tier update.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
The pricing page marked Teams "Coming soon" with an empty CTA href while the Terms page priced it at $15/$18 per user and promised a 14-day free trial with a credit card required. Both statements were public and they contradict each other.
Teams itself works. Verified against an isolated server and read back from the database rather than from status codes:
team_membersgains the invitee, rolesowner/memberis_builtin=falseChanges
Teams is purchasable. Dropping
comingSoonrestores the real<a href>CTA and removes theopacity-60dimming and the pill, both of which key off the same field.The Terms trial claim is removed rather than restated. The Pro trial is granted at registration by the server; a Teams trial would have to come from the LemonSqueezy variant configuration, which cannot be verified from this repository. The price and the per-seat minimum are the parts that can be stood behind, so those stay and the trial sentence goes. If the Teams variants do carry a 14-day trial, adding the sentence back is a one-line change.
Business stays gated, and the Terms now say it is not available for purchase. It is not Teams plus granular permissions as far as billing is concerned:
billing.rs:238—create_checkoutmatches onlyproandteams;"business"returns 400lemonsqueezy.rs:391—tier_from_variant_idresolves only Pro and Teams variantsAn unrecognised variant returns
None, and the webhook then logs "variant is not configured; skipping tier update". So a Business purchase today would be charged and silently fail to grant the tier. Selling it needs the variants created, both match arms extended,LS_VARIANT_BUSINESS_MONTHLY/_YEARLYadded to the server environment, a redeploy, andBillingPlanwidened in the client.Not covered
?plan=is not read anywhere in the signup route, so the Teams CTA parameter is cosmetic, exactly like the existing Pro one — a visitor signs up and buys Teams from the app or portal.Vault key distribution and shared terminals were not exercised: both need two live crypto clients, and the shared headless container is wedged with orphaned WebDriver sessions. That matters because VoltiusApp/voltius#41 lives there — an invitee who accepts while the only key-holder is offline stays keyless behind a silent 404 loop. For a paying team that presents as "I paid and cannot open the vault", so it is worth closing or confirming before Teams gets real traffic.