Skip to content

Commit 43e1623

Browse files
Pricing released
1 parent a411416 commit 43e1623

File tree

3 files changed

+170
-1
lines changed

3 files changed

+170
-1
lines changed

src/app/pricing/page.tsx

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
import Link from "next/link"
2+
import type { Metadata } from "next"
3+
import Navigation from "@/components/landing/Navigation"
4+
import Footer from "@/components/landing/Footer"
5+
import { Button } from "@/components/ui/button"
6+
import { Badge } from "@/components/ui/badge"
7+
import { Card, CardContent, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"
8+
import { cn } from "@/lib/utils"
9+
10+
export const metadata: Metadata = {
11+
title: "Pricing | RepoDoc",
12+
description:
13+
"Find the RepoDoc plan that fits your team. Compare Basic, Premium, and Enterprise options for automated documentation with GitHub integration.",
14+
}
15+
16+
const plans = [
17+
{
18+
name: "Basic",
19+
price: "$10",
20+
cadence: "per month",
21+
description: "For solo builders who want automated README generation and essential insights.",
22+
href: "/sign-up",
23+
cta: "Start a 7-day trial",
24+
highlight: false,
25+
features: [
26+
"Unlimited README generations",
27+
"AI-powered pull request summaries",
28+
"GitHub integration",
29+
"Export to Markdown & PDF",
30+
"Email support",
31+
],
32+
},
33+
{
34+
name: "Premium",
35+
price: "$60",
36+
cadence: "per month",
37+
description: "Best for small teams collaborating on documentation and code analysis.",
38+
href: "/sign-up",
39+
cta: "Upgrade to Premium",
40+
highlight: true,
41+
features: [
42+
"Everything in Basic",
43+
"Team workspaces with shared history",
44+
"Advanced architecture diagrams",
45+
"Custom templates & branding",
46+
"Priority chat support",
47+
],
48+
},
49+
{
50+
name: "Enterprise",
51+
price: "Custom",
52+
cadence: "let's talk",
53+
description: "Purpose-built enablement for large engineering orgs with advanced compliance needs.",
54+
href: "mailto:hello@repodoc.dev",
55+
cta: "Contact sales",
56+
highlight: false,
57+
features: [
58+
"SOC2 & ISO 27001 ready controls",
59+
"Self-hosting & VPC deployments",
60+
"Role-based access control (RBAC)",
61+
"Dedicated success manager",
62+
"SLA-backed support",
63+
],
64+
},
65+
]
66+
67+
export default function PricingPage() {
68+
return (
69+
<div className="black-bg text-white">
70+
<div className="relative min-h-screen w-full overflow-hidden">
71+
<BackgroundGlow />
72+
<div className="relative z-10 flex min-h-screen flex-col">
73+
<Navigation />
74+
75+
<main className="mx-auto w-full max-w-7xl flex-1 px-4 pt-16 pb-24 sm:px-6 lg:px-8">
76+
<section className="mx-auto max-w-4xl space-y-6 text-center">
77+
<Badge className="mx-auto border border-white/20 bg-white/10 text-white/90">Pricing</Badge>
78+
<h1 className="text-4xl font-bold tracking-tight sm:text-5xl">Choose the plan that scales with your repo</h1>
79+
<p className="text-lg text-white/70">
80+
Transparent pricing for teams of every size. Start with a trial, level up when your documentation needs grow,
81+
and talk to us for enterprise-grade security.
82+
</p>
83+
</section>
84+
85+
<section className="mt-16 grid gap-8 md:grid-cols-3">
86+
{plans.map((plan) => (
87+
<Card
88+
key={plan.name}
89+
className={cn(
90+
"glass-card border-white/10 bg-black/40 text-white transition-all duration-300 hover:-translate-y-2 hover:border-white/30",
91+
plan.highlight && "border-white/40 shadow-[0_0_45px_rgba(255,255,255,0.15)]"
92+
)}
93+
>
94+
<CardHeader className="space-y-4">
95+
<div className="flex items-center gap-3">
96+
<span className="text-2xl font-semibold tracking-tight">{plan.name}</span>
97+
{plan.highlight && <Badge className="border-white/20 bg-white text-black">Most popular</Badge>}
98+
</div>
99+
<CardTitle className="flex items-baseline gap-2 text-4xl font-bold">
100+
{plan.price}
101+
<span className="text-base font-medium text-white/60">{plan.cadence}</span>
102+
</CardTitle>
103+
<p className="text-sm leading-relaxed text-white/70">{plan.description}</p>
104+
</CardHeader>
105+
<CardContent>
106+
<ul className="space-y-3 text-sm text-white/75">
107+
{plan.features.map((feature) => (
108+
<li key={feature} className="flex items-start gap-2">
109+
<span className="mt-1 h-1.5 w-1.5 rounded-full bg-white/60" aria-hidden="true" />
110+
<span>{feature}</span>
111+
</li>
112+
))}
113+
</ul>
114+
</CardContent>
115+
<CardFooter className="pt-8">
116+
<Button asChild variant={plan.highlight ? "default" : "outline"} size="lg" className="w-full">
117+
<Link href={plan.href} target={plan.href.startsWith("mailto:") ? "_blank" : undefined}>
118+
{plan.cta}
119+
</Link>
120+
</Button>
121+
</CardFooter>
122+
</Card>
123+
))}
124+
</section>
125+
126+
<section className="mx-auto mt-24 max-w-4xl rounded-3xl border border-white/10 bg-white/[0.03] p-10 text-center shadow-xl backdrop-blur-xl">
127+
<h2 className="text-2xl font-semibold tracking-tight">Need a tailored plan?</h2>
128+
<p className="mt-4 text-white/70">
129+
We partner with engineering leaders to roll out RepoDoc across complex orgs. Let&rsquo;s chat about custom
130+
onboarding, integrations, and compliance workflows.
131+
</p>
132+
<div className="mt-8 flex flex-col items-center gap-4 sm:flex-row sm:justify-center">
133+
<Button asChild size="lg">
134+
<Link href="mailto:hello@repodoc.dev">Talk to sales</Link>
135+
</Button>
136+
<Button asChild variant="ghost" size="lg" className="text-white hover:bg-white/10">
137+
<Link href="/about">Learn more about RepoDoc</Link>
138+
</Button>
139+
</div>
140+
</section>
141+
</main>
142+
</div>
143+
</div>
144+
<Footer />
145+
</div>
146+
)
147+
}
148+
149+
function BackgroundGlow() {
150+
return (
151+
<div className="pointer-events-none absolute inset-0 overflow-hidden">
152+
<div className="absolute -top-48 right-1/3 h-80 w-80 rounded-full bg-white/10 blur-3xl"></div>
153+
<div className="absolute bottom-10 left-1/4 h-96 w-96 rounded-full bg-purple-500/10 blur-3xl"></div>
154+
<div className="absolute top-20 right-10 h-72 w-72 rounded-full bg-blue-500/10 blur-3xl"></div>
155+
</div>
156+
)
157+
}
158+
159+

src/components/landing/Footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export default function Footer() {
2222
<div>
2323
<h3 className="text-white font-semibold mb-4">Product</h3>
2424
<ul className="space-y-2">
25-
<li><Link href="/dashboard" className="text-white/60 hover:text-white transition-colors text-sm">Dashboard</Link></li>
25+
<li><Link href="/pricing" className="text-white/60 hover:text-white transition-colors text-sm">Pricing</Link></li>
2626
<li><Link href="/about" className="text-white/60 hover:text-white transition-colors text-sm">About RepoDoc</Link></li>
2727
</ul>
2828
</div>

src/components/landing/Navigation.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ export default function Navigation() {
2222

2323
{/* Desktop Navigation */}
2424
<div className="hidden md:flex items-center space-x-3">
25+
<Link href="/pricing">
26+
<Button variant="ghost" size="sm" className="text-white/80 hover:text-white hover:bg-white/10 rounded-xl px-4 py-2 transition-all duration-200">
27+
Pricing
28+
</Button>
29+
</Link>
2530
{isSignedIn ? (
2631
<Link href="/dashboard">
2732
<HoverBorderGradient
@@ -74,6 +79,11 @@ export default function Navigation() {
7479
{isMobileMenuOpen && (
7580
<div className="md:hidden glass-card backdrop-blur-xl">
7681
<div className="px-4 pt-4 pb-4 space-y-3">
82+
<Link href="/pricing" className="w-full">
83+
<Button variant="ghost" size="sm" className="w-full justify-start text-white/80 hover:text-white hover:bg-white/10 rounded-xl py-3 transition-all duration-200">
84+
Pricing
85+
</Button>
86+
</Link>
7787
{isSignedIn ? (
7888
<Link href="/dashboard" className="w-full">
7989
<HoverBorderGradient

0 commit comments

Comments
 (0)