- {sections.map((section) => (
-
-
- {section.name}
-
-
-
- {products.map((product) => (
-
- ))}
-
-
-
-
-
- |
- {t`Feature`}
- |
- {products.map((p) => (
-
- {p.name}
- |
- ))}
-
-
-
- {section.features.map((feature, featureIdx) => (
-
- |
- {feature.label}
- {featureIdx !== section.features.length - 1 ? (
-
- ) : null}
- |
- {products.map((p) => (
+ )}
+
+
+
+ {plans.map((plan) => {
+ const isMostPopular = plan.id === "pro";
+ return (
+ |
+
+ {plan.name}
+ {plan.id === "pro" && ∞}
+
+ |
+ );
+ })}
+
+
+
+ {sections.map((section, sectionIdx) => (
+
+ {section.name && (
+
+ {plans.map((plan) => {
+ const isPro = plan.id === "pro";
+ return (
|
-
-
-
+ {plan.id === "free" ? section.name : ""}
|
- ))}
-
- ))}
-
-
-
-
- {products.map((product) => (
-
+ );
+ })}
+
+ )}
+ {section.features.map((feature) => (
+
+ {plans.map((plan) => {
+ const isPro = plan.id === "pro";
+ return (
+ |
+
+ |
+ );
+ })}
+
))}
-
-
-
- ))}
+
+ ))}
+
+
diff --git a/apps/web/src/views/pricing/components/PricingTiers.tsx b/apps/web/src/views/pricing/components/PricingTiers.tsx
index 5e5bd51e..1da9e009 100644
--- a/apps/web/src/views/pricing/components/PricingTiers.tsx
+++ b/apps/web/src/views/pricing/components/PricingTiers.tsx
@@ -23,81 +23,115 @@ const Pricing = ({
}) => {
const tiers = [
{
- name: t`Individuals`,
- id: "tier-individuals",
+ name: t`Free`,
+ id: "tier-free",
href: "signup",
- buttonText: t`Get Started`,
- price: { monthly: t`Free`, annually: t`Free` },
- description: t`Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time.`,
- featureHeader: t`Free, forever`,
+ buttonText: t`Get started`,
+ price: { monthly: t`$0`, annually: t`$0` },
+ description: t`Free for everyone`,
+ bestFor: t`Best for individuals and solo creators getting started`,
+ featureHeader: undefined,
features: [
- t`1 user`,
- t`Unlimited boards`,
- t`Unlimited cards`,
- t`Custom board templates`,
- t`Checklists`,
+ { text: t`1 user` },
+ { text: t`Unlimited boards` },
+ { text: t`Unlimited cards` },
+ { text: t`Custom board templates` },
+ { text: t`Checklists` },
],
showPrice: true,
+ ctaSubtext: undefined,
+ mostPopular: false,
+ highlighted: false,
},
{
name: t`Teams`,
id: "tier-teams",
href: "signup",
- buttonText: t`Get Started`,
- price: { monthly: "$10.00", annually: "$8.00" },
- description: t`Kan is better with a team. Perfect for small and growing teams looking to collaborate.`,
- featureHeader: t`Everything in the free plan, plus:`,
+ buttonText: t`Get started`,
+ price: { monthly: "$10", annually: "$8" },
+ description: t`Perfect for small and growing teams looking to collaborate.`,
+ bestFor: t`Best for small and growing teams that need collaboration`,
+ featureHeader: undefined,
features: [
- t`Workspace members`,
- t`Admin roles`,
- t`Priority email support`,
- t`Support the development of the project`,
+ { text: t`All Free features +` },
+ { text: t`Workspace members` },
+ { text: t`Invite links` },
+ { text: t`Unlimited file uploads` },
+ { text: t`Email notifications for mentions` },
+ { text: t`Priority email support` },
+ ],
+ highlighted: false,
+ showPrice: true,
+ showPriceSuffix: true,
+ ctaSubtext: t`14 day free trial · Switch plans or cancel anytime`,
+ mostPopular: false,
+ },
+ {
+ name: t`Pro`,
+ id: "tier-pro",
+ href: "signup",
+ buttonText: t`Get started`,
+ price: { monthly: "$29", annually: "$24" },
+ description: t`Unlimited seats and advanced features for growing teams.`,
+ bestFor: t`Best for teams that want to scale without limits`,
+ featureHeader: undefined,
+ features: [
+ { text: t`All Teams features +` },
+ { text: t`Unlimited members` },
+ { text: t`Custom workspace username` },
+ { text: t`Configurable user roles and permissions` },
+ { text: t`Custom branding` },
],
highlighted: true,
showPrice: true,
- showPriceSuffix: true,
+ showPriceSuffix: false,
+ ctaSubtext: t`14 day free trial · Switch plans or cancel anytime`,
+ mostPopular: true,
},
{
- name: t`Self Host`,
- id: "tier-self-host",
- href: "https://github.com/kanbn/kan",
- buttonText: t`View docs`,
- price: { monthly: "-", annually: "-" },
- description: t`Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data.`,
- featureHeader: t`Complete control and ownership:`,
+ name: t`Enterprise`,
+ id: "tier-enterprise",
+ href: "mailto:support@kan.bn?subject=Enterprise Inquiry",
+ buttonText: t`Contact Sales`,
+ price: { monthly: t`Contact us`, annually: t`Contact us` },
+ description: t`Advanced security, compliance, and dedicated support for large organizations.`,
+ bestFor: t`Best for large organizations with advanced needs`,
+ featureHeader: undefined,
features: [
- t`Run on your own infrastructure`,
- t`Own your data`,
- t`Custom domain`,
+ { text: t`All Pro features +` },
+ { text: t`SAML SSO` },
+ { text: t`Advanced admin controls` },
+ { text: t`Dedicated account manager` },
+ { text: t`Custom SLA` },
+ { text: t`On-premise deployment option` },
],
+ highlighted: false,
+ showPrice: true,
+ showPriceSuffix: false,
+ ctaSubtext: undefined,
mostPopular: false,
- showPrice: false,
},
];
return (
<>
-
-
-
-
-
{t`Launch offer: unlimited seats for just $29/month with Pro`}
-
+
+
-
-
+
{tiers.map((tier) => (
-
-
+
+
+ {t`Launch offer`}
+
+
+ )}
+
+ {tier.name}
+ {tier.id === "tier-pro" && ∞}
+
+
+
+
+ {tier.price[frequency?.value ?? "monthly"]}
+
+ {tier.id === "tier-pro" && (
+
+ {frequency?.value === "annually" ? "$79" : "$100"}
+
)}
- >
- {tier.name}
-
- {tier.highlighted && (
-
- {t`14 day free trial`}
-
+ {tier.showPriceSuffix && (
+
+ {frequency?.priceSuffix}
+
+ )}
+ {tier.id === "tier-pro" && (
+
+ {t`/month`}
+
+ )}
+
+
+ {tier.bestFor && (
+
+ {tier.bestFor}
+
+ )}
+
-
- {tier.description}
-
-
-
- {tier.price[frequency?.value ?? "monthly"]}
-
- {tier.showPriceSuffix && (
-
- {frequency?.priceSuffix}
-
- )}
-
-
- {tier.buttonText}
-
-
- {tier.featureHeader}
-
-
- {tier.features.map((feature) => (
- -
-
- {feature}
+
+ {tier.features.map((feature, index) => (
+ -
+
+
+ {feature.text}
+
))}
))}
+
+
+
+
{t`14 day free trial · Switch plans or cancel anytime`}
+
+
>
);
diff --git a/apps/web/src/views/pricing/index.tsx b/apps/web/src/views/pricing/index.tsx
index d74754c8..2db1a49c 100644
--- a/apps/web/src/views/pricing/index.tsx
+++ b/apps/web/src/views/pricing/index.tsx
@@ -43,8 +43,8 @@ export default function PricingView() {
{t`Simple pricing`}
-
- {t`Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team.`}
+
+ {t`Start free. Upgrade as your team grows. No hidden fees, no contracts.`}
-
+
-
- {t`Feature breakdown`}
-
-
- {t`Compare our features to see why Kan is the best choice.`}
-
-
-
-
-
-