From ce8ef261c110c0cb13a1992bb6030c4ee5280bb5 Mon Sep 17 00:00:00 2001 From: Thomas des Francs Date: Mon, 18 May 2026 21:43:15 +0200 Subject: [PATCH] Update pricing plan cards (#20614) ## Summary - Update pricing top-card bullets to use workflow credits, keep full customization, and show Organization-only features accurately. - Make custom AI models self-host Organization-only and move custom domain into the Cloud Organization card. - Align pricing comparison rows for row-level permissions, encryption key rotation, API call limits, custom domain availability, and self-host custom objects/fields. ## Validation - `lingui extract --overwrite --clean` - `lingui compile --typescript` - `node scripts/check-section-shape.mjs` - `git diff --check` - Playwright snapshot of `http://localhost:3002/pricing` --------- Co-authored-by: Charles Bochet --- .../src/app/[locale]/pricing/plan-table.data.ts | 9 +++++---- .../twenty-website-new/src/sections/Plans/data.ts | 15 +++++++++------ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/twenty-website-new/src/app/[locale]/pricing/plan-table.data.ts b/packages/twenty-website-new/src/app/[locale]/pricing/plan-table.data.ts index d1d0b8a8f82..d092a9b4af6 100644 --- a/packages/twenty-website-new/src/app/[locale]/pricing/plan-table.data.ts +++ b/packages/twenty-website-new/src/app/[locale]/pricing/plan-table.data.ts @@ -153,6 +153,7 @@ export const PLAN_TABLE_DATA: PlanTableDataType = { type: 'row', }, { + appliesTo: 'selfHost', featureLabel: msg`Custom AI models`, tiers: { organization: { kind: 'yes', label: msg`Yes` }, @@ -213,7 +214,7 @@ export const PLAN_TABLE_DATA: PlanTableDataType = { type: 'row', }, { - featureLabel: msg`Advanced Encryption`, + featureLabel: msg`Encryption key rotation`, tiers: { organization: { kind: 'yes', label: msg`Yes` }, pro: { kind: 'dash' }, @@ -330,7 +331,7 @@ export const PLAN_TABLE_DATA: PlanTableDataType = { featureLabel: msg`Custom domain (crm.yourco.com)`, tiers: { organization: { kind: 'yes', label: msg`Yes` }, - pro: { kind: 'yes', label: msg`Yes` }, + pro: { kind: 'dash' }, }, type: 'row', }, @@ -374,8 +375,8 @@ export const PLAN_TABLE_DATA: PlanTableDataType = { appliesTo: 'cloud', featureLabel: msg`API calls`, tiers: { - organization: { kind: 'text', text: msg`200 per minute` }, - pro: { kind: 'text', text: msg`100 per minute` }, + organization: { kind: 'text', text: msg`100 per minute` }, + pro: { kind: 'text', text: msg`50 per minute` }, }, type: 'row', }, diff --git a/packages/twenty-website-new/src/sections/Plans/data.ts b/packages/twenty-website-new/src/sections/Plans/data.ts index 395e087d23f..fa66d9d2b8e 100644 --- a/packages/twenty-website-new/src/sections/Plans/data.ts +++ b/packages/twenty-website-new/src/sections/Plans/data.ts @@ -8,7 +8,7 @@ const PRO_BULLETS_MONTHLY = [ msg`Full customization`, msg`Create custom apps`, msg`AI Agents with custom skills`, - msg`Up to 5M automation credits/month`, + msg`5 workflow credits/month included`, msg`Standard support`, ]; @@ -16,7 +16,7 @@ const PRO_BULLETS_YEARLY = [ msg`Full customization`, msg`Create custom apps`, msg`AI Agents with custom skills`, - msg`Up to 50M automation credits/year`, + msg`50 workflow credits/year included`, msg`Standard support`, ]; @@ -28,24 +28,27 @@ const PRO_BULLETS_SELF_HOST = [ const ORGANIZATION_BULLETS_MONTHLY = [ msg`Everything in Pro`, - msg`Roles & Permissions`, + msg`Row-level permissions`, msg`SAML/OIDC SSO`, + msg`Custom domain`, msg`Priority support`, ]; const ORGANIZATION_BULLETS_YEARLY = [ msg`Everything in Pro`, - msg`Roles & Permissions`, + msg`Row-level permissions`, msg`SAML/OIDC SSO`, + msg`Custom domain`, msg`Priority support`, ]; const ORGANIZATION_BULLETS_SELF_HOST = [ msg`Everything in Pro`, - msg`Roles & Permissions`, + msg`Custom AI models`, + msg`Row-level permissions`, msg`SAML/OIDC SSO`, msg`Twenty team support`, - msg`No open-source distribution requirement`, + msg`Up to 5 workspaces`, ]; export const PLANS_DATA = {