import { createFileRoute, Link, useNavigate } from "@tanstack/react-router";
import { dismissProNudge, getProPitch } from "~/fns/pro";
import { useAction } from "~/hooks/use-action";
import { MarketingHero } from "~/components/marketing/MarketingHero";
import { DisplayTitle } from "~/components/marketing/DisplayTitle";
import { ProBadge } from "~/components/billing/ProBadge";
import { PageContainer } from "~/ui/PageContainer";
import { buttonClass } from "~/ui/Button";
import { formatQuantity, meterDef } from "~/lib/meters";
import type { MeterId } from "~/lib/meters";
import { seo } from "~/utils/seo";
export const Route = createFileRoute("/pricing")({
loader: () => getProPitch(),
head: ({ match }) => ({
meta: seo({
origin: match.context.publicUrl,
path: "/pricing",
title: "gitfor Pro",
description: "More CI, more storage, hourly mirroring and AI merge fixes, and a forge that stays independent.",
}),
}),
component: PricingPage,
});
type Perk = { title: string; body: string; meters: MeterId[] };
const PERKS: Perk[] = [
{
title: "CI that keeps up",
body: "More cloud runner hours, plus bigger standard-2 runners for the builds that need them, and a roomier Actions cache so warm builds stay warm.",
meters: ["compute.runner", "compute.runner_large", "storage.ci_cache"],
},
{
title: "Room for the big repos",
body: "Generous repository and LFS storage, so the monorepo, the design assets and the test fixtures can all move in.",
meters: ["storage.artifacts", "storage.lfs", "network.lfs"],
},
{
title: "A browser editor you can live in",