import Link from "next/link"; import { Radio, RadioGroup } from "@headlessui/react"; import { useState } from "react"; import { HiCheckCircle } from "react-icons/hi2"; import { twMerge } from "tailwind-merge"; type Frequency = "monthly" | "annually"; const frequencies = [ { value: "monthly" as Frequency, label: "Monthly", priceSuffix: "per user/month", }, { value: "annually" as Frequency, label: "Yearly", priceSuffix: "per user/month", }, ]; const tiers = [ { name: "Individuals", id: "tier-individuals", href: "signup", buttonText: "Get Started", price: { monthly: "Free", annually: "Free" }, description: "Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time.", featureHeader: "Free, forever", features: [ "1 user", "Unlimited boards", "Unlimited lists", "Unlimited cards", "Unlimited comments", "Unlimited activity log", ], showPrice: true, }, { name: "Teams", id: "tier-teams", href: "signup", buttonText: "Get Started", price: { monthly: "$10.00", annually: "$8.00" }, description: "Kanban is better with a team. Perfect for small and growing teams looking to collaborate.", featureHeader: "Everything in the free plan, plus:", features: [ "Workspace members", "Admin roles", "Priority email support", "Support the development of the project", ], highlighted: true, showPrice: true, showPriceSuffix: true, }, { name: "Self Host", id: "tier-self-host", href: "https://github.com/kanbn/kan", buttonText: "View docs", price: { monthly: "-", annually: "-" }, description: "Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data.", featureHeader: "Complete control and ownership:", features: [ "Run on your own infrastructure", "Own your data", "Custom domain", ], mostPopular: false, showPrice: false, }, ]; const Pricing = () => { const initialFrequency = frequencies[1]!; const [frequency, setFrequency] = useState(initialFrequency); return ( <>

Pricing

Simple pricing

Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team.

{/* Beta free pricing pill */}
All seats are free during the beta until Sept 1st!
setFrequency(value)} className="grid grid-cols-2 gap-x-1 rounded-full p-1 text-center text-xs/5 font-semibold ring-1 ring-inset ring-light-600 dark:ring-dark-600" > {frequencies.map((option) => ( {option.label} ))}
{tiers.map((tier) => (

{tier.name}

{tier.highlighted && frequency.value === "annually" ? (

-20%

) : null}

{tier.description}

{tier.price[frequency.value]} {tier.showPriceSuffix && ( {frequency.priceSuffix} )}

{tier.buttonText}

{tier.featureHeader}

))}
); }; export default Pricing;