← back to Trademarks Copyright

src/app/pricing/page.tsx

130 lines

import Link from "next/link";

export const metadata = {
  title: "Pricing — Drops",
  description: "Free trial, Standard $29/mo, Pro $99/mo. Cancel anytime.",
};

const FEATURES = [
  { label: "Daily curated drop", trial: true, standard: true, pro: true },
  { label: "Items per drop", trial: "3", standard: "3", pro: "10" },
  { label: "Abandoned trademarks", trial: true, standard: true, pro: true },
  { label: "Public-domain works", trial: true, standard: true, pro: true },
  { label: "Unregistered-brand alerts", trial: true, standard: true, pro: true },
  { label: "Domain-snipe alerts (expiring)", trial: false, standard: true, pro: true },
  { label: "Editorial scoring + commentary", trial: true, standard: true, pro: true },
  { label: "Pro tactical hints (NICE class, registrar tricks)", trial: false, standard: false, pro: true },
  { label: "SWOT preview per item", trial: false, standard: false, pro: true },
  { label: "Full drop archive", trial: false, standard: true, pro: true },
  { label: "API access", trial: false, standard: false, pro: true },
  { label: "7-day money-back", trial: "n/a", standard: true, pro: true },
];

function Cell({ v }: { v: boolean | string }) {
  if (v === true) return <span className="text-emerald-700">●</span>;
  if (v === false) return <span className="text-ink/20">—</span>;
  return <span className="text-ink/80 text-sm">{v}</span>;
}

export default function PricingPage() {
  return (
    <article className="mx-auto max-w-4xl space-y-6">
      <div className="card p-8">
        <div className="text-xs uppercase tracking-widest text-brass">Pricing</div>
        <h1 className="mt-2 text-3xl font-semibold">Three tiers. Cancel anytime. Pay in USD.</h1>
      </div>

      <div className="grid grid-cols-1 gap-4 md:grid-cols-3">
        <PlanCard
          name="Trial"
          price="Free"
          byline="3 drops, then pick a paid tier or walk away."
          features={["3 items per drop", "Basic edition", "No credit card required"]}
          ctaHref="/drops"
          ctaText="Start free trial"
        />
        <PlanCard
          name="Standard"
          price="$29"
          byline="Per month. Cancel anytime. 7-day money-back."
          features={[
            "3 curated items every day",
            "Full editorial commentary",
            "Drop archive access",
            "Abandoned trademarks + PD works",
            "Unregistered-brand + domain-snipe alerts",
          ]}
          ctaHref="/drops"
          ctaText="Get Standard"
        />
        <PlanCard
          name="Pro"
          price="$99"
          byline="Per month. For builders and brokers."
          highlight
          features={[
            "10 items every day (3× the catalog)",
            "Pro tactical hints on each item",
            "SWOT preview per candidate",
            "NICE-class filing suggestions",
            "API access + full archive",
          ]}
          ctaHref="/drops"
          ctaText="Get Pro"
        />
      </div>

      <div className="card p-6">
        <h2 className="text-xl font-semibold">What's in each tier, line by line</h2>
        <div className="mt-4 overflow-x-auto">
          <table className="min-w-full text-sm">
            <thead>
              <tr className="border-b border-ink/10">
                <th className="py-2 text-left font-semibold text-ink/70">Feature</th>
                <th className="py-2 text-center font-semibold text-ink/70">Trial</th>
                <th className="py-2 text-center font-semibold text-ink/70">Standard</th>
                <th className="py-2 text-center font-semibold text-ink/70">Pro</th>
              </tr>
            </thead>
            <tbody>
              {FEATURES.map((f, i) => (
                <tr key={i} className="border-b border-ink/5">
                  <td className="py-2">{f.label}</td>
                  <td className="py-2 text-center"><Cell v={f.trial} /></td>
                  <td className="py-2 text-center"><Cell v={f.standard} /></td>
                  <td className="py-2 text-center"><Cell v={f.pro} /></td>
                </tr>
              ))}
            </tbody>
          </table>
        </div>
      </div>

      <div className="card p-6 text-sm text-ink/70">
        <b>Frequently asked:</b> Yes, you can cancel any time · Yes, we refund within 7 days · Yes, you can upgrade / downgrade · No, we don't offer annual billing yet · <Link href="/faq" className="text-brass underline">more</Link>.
      </div>
    </article>
  );
}

function PlanCard({
  name, price, byline, features, ctaHref, ctaText, highlight,
}: {
  name: string; price: string; byline: string; features: string[];
  ctaHref: string; ctaText: string; highlight?: boolean;
}) {
  return (
    <div className={`card p-6 flex flex-col ${highlight ? "border-brass/60 ring-1 ring-brass/30 bg-brass/5" : ""}`}>
      <h3 className="text-lg font-semibold">{name}</h3>
      <div className="mt-1 text-3xl font-semibold text-ink">{price}{price !== "Free" && <span className="text-sm text-ink/60">/mo</span>}</div>
      <p className="mt-1 text-sm text-ink/60">{byline}</p>
      <ul className="mt-4 space-y-1.5 text-sm text-ink/80">
        {features.map((f, i) => <li key={i}>· {f}</li>)}
      </ul>
      <div className="mt-auto pt-4">
        <Link href={ctaHref} className="btn w-full justify-center">{ctaText}</Link>
      </div>
    </div>
  );
}