You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(pricing): Enterprise "contact us" wall above Team (#56) (#189)
* feat(pricing): add Enterprise "contact us" wall above Team (#56)
The strict-≥80%-margin redesign (#188) made Team a finite self-serve tier.
Anyone who breaches Team's caps — or needs dedicated/isolated infra,
multi-region, or compliance (SOC2/BAA/SSO/SLA/custom DPA) — now has a home:
an Enterprise column to the right of Team plus a dedicated "contact us" card.
GTM surface ONLY — no api changes, no Team un-gating, no plans.yaml row,
no dedicated-infra build. Enterprise is quote-based: no price, no checkout.
PricingPage:
- new `enterprise` TierKey + a 5th column (headline "Custom" / "let's talk",
CTA = mailto:sales@instanode.dev?subject=Enterprise%20inquiry — matches
Team's contact address).
- every ROW grows to a 5-tuple; Enterprise cells read "Custom" (capacity)
or "Contact us" (SSO/SAML, SLA). No numbers, no "unlimited" (retired word).
- dedicated Enterprise callout card with trigger criteria + Contact-us CTA.
- grid widened 5→6 tracks; tier-scroll allowlist + section copy updated.
Docs contract:
- public/llms.txt gains a standalone `**Enterprise**` line so agents
introspecting tiers see the wall.
- llmsContract.test.ts pins the Enterprise line + sales address (rule 18/22).
- fetch-content.mjs requireMarkers gains '**Enterprise**' so a content sync
missing the line preserves the local copy until the content PR lands.
Tests: +6 PricingPage assertions (column renders, CTA is sales mailto not
checkout, "Custom" headline no $, callout card present, trigger criteria
surfaced, zero "unlimited" anywhere on the page). npm run gate green
(tsc + build incl. prerender + 1127 vitest passing).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test(pricing): cover requested-tier scroll path for Enterprise (?tier=enterprise)
diff-cover flagged PricingPage.tsx:305 (the validated-tier allow-list now
including 'enterprise') uncovered — the existing per-tier-id test renders
without a tier param so the requestedTier useEffect returns early. Add a
render with ?tier=enterprise that executes the path. 100% patch coverage.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: public/llms.txt
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -102,6 +102,7 @@ on `/api/v1/capabilities` for agent introspection.
102
102
> **Upgrading auto-promotes in-flight deployment TTLs.** When a team upgrades to any paid tier (Hobby / Hobby Plus / Pro / Growth / Team), the Razorpay subscription.charged webhook flips the team's `default_deployment_ttl_policy` from `auto_24h` to `permanent` (so every future `POST /deploy/new` defaults to no TTL) AND promotes every existing `auto_24h` non-terminal deploy to permanent (clearing `expires_at`). Per-deploy `ttl_policy='custom'` and `ttl_policy='permanent'` rows are never touched — only the `auto_24h` class is rolled forward. To restore the 24h-default behaviour after an upgrade, `PATCH /api/v1/team/settings {"default_deployment_ttl_policy":"auto_24h"}`.
103
103
- **Pro**: $49/mo. 10 GB Postgres, 512 MB Redis, 5 GB Mongo, 50 GB storage, 10 apps. Resource-count cap: 5 active resources per service (redis is 3 — Redis RAM is the binding cost). Per-tier counts are introspectable via `resource_count_limit` on `/api/v1/capabilities`.
104
104
- **Team**: available soon — not yet self-serve. Planned at $199/mo with high finite limits (50 GB Postgres, 1.5 GB Redis, 40 GB Mongo, 40 GB queues, 300 GB storage, 30 GB vector, 100 deployments, 1000 vault entries, 100k webhooks), 50 custom domains, 90-day backups with self-serve restore, RBAC + audit log; SSO/SAML and a 99.9% SLA are also planned. Capacity beyond these caps (or dedicated/isolated infra, multi-region, or compliance such as SOC2/BAA/SSO/SLA/DPA) is Enterprise — contact sales. Team cannot be purchased or claimed today — contact support@instanode.dev for onboarding.
105
+
- **Enterprise**: custom limits, dedicated infra, compliance; contact sales@instanode.dev. Not a self-serve tier and not in `plans.yaml` — no price, no checkout. Triggers: needs more than Team's caps, dedicated/isolated or multi-region infra, or SOC2/BAA/SSO/SLA/custom DPA.
105
106
106
107
## Conventions an LLM should follow when scripting against the platform
0 commit comments