A way onto a paid plan that is not hidden under a profile

Featurekamo-internal
Shipped
September 7, 2026 at 2:44 AM UTC
Author
Kamo CI
Commit
2bb0ed2

An owner deciding whether to pay had to know the answer lived under their own profile, three clicks from the page they open every morning, signposted only by a pill in the masthead. My Plan is that offer standing in the open: a full-width pane on the first band of the launchpad, showing what each plan costs on the term they pick, for exactly as long as there is something to sell. It takes itself off. The registry gate reads the ORGANIZATION'S COMMERCIAL STATE rather than its apps — the first widget that does — and answers no the moment the subscription is PAID, or COMP, where the plan was given rather than sold. Nobody has to remember to remove it, and there is no state in which a customer is being sold what they already bought. The widget asks the same question again of its own fresh payload, because entitlements are cached for a minute and an owner who has just paid should not watch a grid of plans for the rest of it. `system: true` is what makes "they cannot remove it" true without asking an administrator to grant anything: a rights-gated widget is only immovable when an organization grants _REQUIRED, and RoleRightType's own comment forbids a deploy seeding that for anybody. No `custom`, so there is no resize handle either — a member who could shrink this could shrink it to nothing, which is removing it by other means. Unmovable puts it in page.tsx's existing fixed band, where nothing can be dropped in front of it; that band had no occupant until now. Every price goes through `offeredRate` with the live promotion, per plan AND per term, because `offerApplies` restricts by both: an offer covering only Starter, or only annual, discounts only the cards it actually covers, and no card can advertise a rate checkout will not honour. The list price stays struck through beside it, the term is named on every figure, and the $99-a-seat startup fee is never omitted. `offerIsLive` is re-checked on a minute tick — the launchpad is the tab people leave open overnight, and a struck price for an offer that ended at midnight is a number nobody will be charged. A failed catalogue read quotes nothing at all and links to /myplan. The arithmetic of "what would this plan change" moves out of PlanUpgradeDelta into planDelta, and both surfaces read it. The widget has room for the count and four names; /myplan lists them all. A launchpad claiming a plan keeps 35 things beside a page listing 34 is worse than saying nothing. Three registry tests assumed "system widget" meant "the App Shelf", since it was the only one. `has unique rights` folded every system widget's undefined right into one Set entry and compared 10 to 11; the rule it means to state is about gated widgets. `system implies no gate` conflated an organization's authority over who sees a pane with whether the pane has anything to show. And the rightless launchpad now asserts the stronger thing: a system widget with no gate would be on every member's home page forever.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing