Back to Sections

Pricing Section

A clean pricing comparison with a highlighted popular plan.

Live Preview
Pricing

Simple, transparent pricing

Start for free, upgrade when you need. No hidden fees, cancel anytime.

Starter

$0/month

Perfect for side projects and learning.

  • 5 projects
  • Basic analytics
  • Community support
  • 1 team member
Most Popular

Pro

$29/month

Best for growing teams and businesses.

  • Unlimited projects
  • Advanced analytics
  • Priority support
  • 10 team members
  • Custom domains
  • API access

Enterprise

Custom

For large organizations with custom needs.

  • Everything in Pro
  • Unlimited team members
  • SSO & SAML
  • Dedicated support
  • SLA guarantee
  • Custom integrations
Code
import { Check } from 'lucide-react'

const plans = [
  {
    name: "Starter",
    price: "$0",
    description: "Perfect for side projects.",
    features: ["5 projects", "Basic analytics", "Community support"],
    popular: false,
  },
  {
    name: "Pro",
    price: "$29",
    description: "Best for growing teams.",
    features: ["Unlimited projects", "Advanced analytics", "Priority support", "Custom domains"],
    popular: true,
  },
  {
    name: "Enterprise",
    price: "Custom",
    description: "For large organizations.",
    features: ["Everything in Pro", "SSO & SAML", "Dedicated support", "SLA guarantee"],
    popular: false,
  },
]

export function PricingSection() {
  return (
    <section className="w-full bg-zinc-950 px-4 py-24">
      <div className="mx-auto max-w-6xl">
        <div className="text-center">
          <h2 className="text-3xl font-bold text-white">Simple, transparent pricing</h2>
        </div>
        <div className="mt-16 grid gap-8 md:grid-cols-3">
          {plans.map((plan) => (
            <div
              key={plan.name}
              className={`rounded-2xl border p-8 ${
                plan.popular ? "border-indigo-500 bg-indigo-500/10" : "border-white/10 bg-white/5"
              }`}
            >
              {plan.popular && (
                <span className="absolute -top-3 left-1/2 -translate-x-1/2 rounded-full bg-indigo-500 px-4 py-1 text-xs font-semibold text-white">
                  Most Popular
                </span>
              )}
              <h3 className="text-lg font-semibold text-white">{plan.name}</h3>
              <div className="mt-4 flex items-baseline">
                <span className="text-4xl font-bold text-white">{plan.price}</span>
              </div>
              <ul className="mt-8 space-y-4">
                {plan.features.map((feature) => (
                  <li key={feature} className="flex items-center gap-3 text-zinc-300">
                    <Check className="h-5 w-5 text-emerald-400" />
                    {feature}
                  </li>
                ))}
              </ul>
            </div>
          ))}
        </div>
      </div>
    </section>
  )
}