11import { motion } from 'framer-motion'
22import { Check , Sparkles } from 'lucide-react'
33
4- const TIERS = [
4+ const PLANS = [
55 {
66 name : 'Free' ,
77 price : '$0' ,
88 period : 'forever' ,
9- description : 'For open source and small projects' ,
9+ description : 'For open source and hobby projects' ,
1010 features : [
1111 'Up to 3 repositories' ,
1212 'Semantic code search' ,
13- 'Dependency graph ' ,
13+ 'Dependency visualization ' ,
1414 'Community support' ,
1515 'Public repos only' ,
1616 ] ,
1717 cta : 'Get Started' ,
18- ctaLink : '/signup' ,
19- highlighted : false ,
18+ ctaHref : '/signup' ,
19+ popular : false ,
2020 } ,
2121 {
2222 name : 'Pro' ,
2323 price : '$19' ,
2424 period : '/month' ,
25- description : 'For professional developers' ,
25+ description : 'For professional developers and small teams ' ,
2626 features : [
2727 'Unlimited repositories' ,
2828 'Private repo support' ,
2929 'API access' ,
30- 'MCP integration' ,
31- 'Priority support ' ,
32- 'Advanced analytics ' ,
30+ 'MCP server integration' ,
31+ 'Priority indexing ' ,
32+ 'Email support ' ,
3333 ] ,
3434 cta : 'Join Waitlist' ,
35- ctaLink : '/waitlist' ,
36- highlighted : true ,
37- badge : 'Most Popular ' ,
35+ ctaHref : '/waitlist' ,
36+ popular : true ,
37+ badge : 'Coming Soon ' ,
3838 } ,
3939 {
4040 name : 'Enterprise' ,
4141 price : 'Custom' ,
4242 period : '' ,
43- description : 'For teams with advanced needs ' ,
43+ description : 'For teams that need full control ' ,
4444 features : [
4545 'Self-hosted deployment' ,
46- 'SSO / SAML' ,
46+ 'SSO / SAML authentication ' ,
4747 'Dedicated support' ,
4848 'Custom integrations' ,
4949 'SLA guarantee' ,
50- 'Onboarding assistance ' ,
50+ 'On-premise option ' ,
5151 ] ,
5252 cta : 'Contact Sales' ,
53- ctaLink : 'mailto:devanshurajesh@gmail.com?subject=CodeIntel Enterprise ' ,
54- highlighted : false ,
53+ ctaHref : 'mailto:devanshurajesh@gmail.com?subject=CodeIntel%20Enterprise ' ,
54+ popular : false ,
5555 } ,
5656]
5757
@@ -84,7 +84,7 @@ export function Pricing() {
8484 Simple, transparent pricing
8585 </ h2 >
8686 < p className = "text-lg text-muted-foreground max-w-2xl mx-auto" >
87- Start free, upgrade when you need more. No hidden fees, no surprises .
87+ Start free, upgrade when you need more. No hidden fees.
8888 </ p >
8989 </ motion . div >
9090
@@ -96,76 +96,67 @@ export function Pricing() {
9696 whileInView = "visible"
9797 viewport = { { once : true , margin : "-50px" } }
9898 >
99- { TIERS . map ( ( tier ) => (
99+ { PLANS . map ( ( plan ) => (
100100 < motion . div
101- key = { tier . name }
101+ key = { plan . name }
102102 variants = { itemVariants }
103- className = { `
104- relative p-6 rounded-2xl border transition-all duration-300
105- ${ tier . highlighted
106- ? 'border-accent/50 bg-accent/[0.03] scale-[1.02] shadow-xl shadow-accent/10'
107- : 'border-white/[0.08] dark:border-white/[0.08] light:border-black/[0.08] bg-card/30 hover:border-white/[0.12] dark:hover:border-white/[0.12]'
108- }
109- ` }
103+ className = { `relative p-6 lg:p-8 rounded-2xl border transition-all duration-300 ${
104+ plan . popular
105+ ? 'border-accent bg-accent/5 shadow-lg shadow-accent/10'
106+ : 'border-white/[0.08] dark:border-white/[0.08] light:border-black/[0.08] bg-card/30 hover:bg-card/50'
107+ } `}
110108 >
111- { /* Badge */ }
112- { tier . badge && (
109+ { /* Popular badge */ }
110+ { plan . badge && (
113111 < div className = "absolute -top-3 left-1/2 -translate-x-1/2" >
114112 < div className = "flex items-center gap-1.5 px-3 py-1 rounded-full bg-accent text-white text-xs font-medium" >
115113 < Sparkles className = "w-3 h-3" />
116- { tier . badge }
114+ { plan . badge }
117115 </ div >
118116 </ div >
119117 ) }
120118
121- { /* Header */ }
122119 < div className = "mb-6" >
123- < h3 className = "text-lg font-semibold text-foreground mb-1" > { tier . name } </ h3 >
124- < p className = "text-sm text-muted-foreground" > { tier . description } </ p >
125- </ div >
126-
127- { /* Price */ }
128- < div className = "mb-6" >
129- < span className = "text-4xl font-bold text-foreground" > { tier . price } </ span >
130- < span className = "text-muted-foreground" > { tier . period } </ span >
120+ < h3 className = "text-xl font-semibold text-foreground mb-2" > { plan . name } </ h3 >
121+ < div className = "flex items-baseline gap-1" >
122+ < span className = "text-4xl font-bold text-foreground" > { plan . price } </ span >
123+ { plan . period && < span className = "text-muted-foreground" > { plan . period } </ span > }
124+ </ div >
125+ < p className = "text-sm text-muted-foreground mt-2" > { plan . description } </ p >
131126 </ div >
132127
133- { /* Features */ }
134128 < ul className = "space-y-3 mb-8" >
135- { tier . features . map ( ( feature ) => (
129+ { plan . features . map ( ( feature ) => (
136130 < li key = { feature } className = "flex items-start gap-3 text-sm" >
137- < Check className = { ` w-4 h-4 mt-0.5 flex- shrink-0 ${ tier . highlighted ? 'text-accent' : 'text-emerald-400' } ` } />
131+ < Check className = " w-4 h-4 text-emerald-400 mt-0.5 shrink-0" />
138132 < span className = "text-muted-foreground" > { feature } </ span >
139133 </ li >
140134 ) ) }
141135 </ ul >
142136
143- { /* CTA */ }
144137 < a
145- href = { tier . ctaLink }
146- className = { `
147- block w-full py-3 px-4 rounded-lg text-center text-sm font-medium transition-all
148- ${ tier . highlighted
149- ? 'bg-accent hover:bg-accent/90 text-white shadow-lg shadow-accent/20'
150- : 'border border-white/[0.1] dark:border-white/[0.1] light:border-black/[0.1] text-foreground hover:bg-white/5 dark:hover:bg-white/5 light:hover:bg-black/5'
151- }
152- ` }
138+ href = { plan . ctaHref }
139+ className = { `block w-full py-3 px-4 rounded-lg text-center text-sm font-medium transition-all ${
140+ plan . popular
141+ ? 'bg-accent text-white hover:bg-accent/90 shadow-lg shadow-accent/20'
142+ : 'border border-white/10 dark:border-white/10 light:border-black/10 text-foreground hover:bg-white/5 dark:hover:bg-white/5 light:hover:bg-black/5'
143+ } `}
153144 >
154- { tier . cta }
145+ { plan . cta }
155146 </ a >
156147 </ motion . div >
157148 ) ) }
158149 </ motion . div >
159150
160- { /* Footer note */ }
151+ { /* Bottom note */ }
161152 < motion . p
162- className = "text-center text-sm text-muted-foreground/60 mt-10 "
153+ className = "text-center text-sm text-muted-foreground/60 mt-8 "
163154 initial = { { opacity : 0 } }
164155 whileInView = { { opacity : 1 } }
165156 viewport = { { once : true } }
166157 transition = { { delay : 0.3 } }
167158 >
168- All plans include 14-day money-back guarantee. Prices in USD.
159+ All plans include automatic updates and security patches
169160 </ motion . p >
170161 </ div >
171162 </ section >
0 commit comments