kofi-stack-template-generator 2.1.55 → 2.1.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/.turbo/turbo-build.log +6 -6
  2. package/dist/index.js +235 -38
  3. package/package.json +2 -2
  4. package/src/templates.generated.ts +23 -13
  5. package/templates/marketing/astro/src/components/Footer.astro +6 -6
  6. package/templates/marketing/astro/src/components/Header.astro +7 -7
  7. package/templates/marketing/astro/src/components/blocks/FinalCTA.astro +4 -4
  8. package/templates/marketing/astro/src/components/heros/ProductShowcaseHero.astro +10 -3
  9. package/templates/marketing/astro/src/pages/blog.astro +96 -0
  10. package/templates/marketing/astro/src/pages/features.astro +107 -0
  11. package/templates/marketing/astro/src/pages/pricing.astro +50 -0
  12. package/templates/marketing/astro/src/pages/privacy.astro +65 -0
  13. package/templates/marketing/astro/src/pages/terms.astro +69 -0
  14. package/templates/marketing/astro/src/styles/globals.css.hbs +16 -16
  15. package/templates/marketing/nextjs/src/app/blog/page.tsx +97 -0
  16. package/templates/marketing/nextjs/src/app/features/page.tsx +108 -0
  17. package/templates/marketing/nextjs/src/app/globals.css.hbs +15 -15
  18. package/templates/marketing/nextjs/src/app/{page.tsx.hbs → page.tsx} +15 -21
  19. package/templates/marketing/nextjs/src/app/pricing/page.tsx +44 -0
  20. package/templates/marketing/nextjs/src/app/privacy/page.tsx +64 -0
  21. package/templates/marketing/nextjs/src/app/terms/page.tsx +68 -0
  22. package/templates/marketing/nextjs/src/components/Footer/index.tsx +8 -8
  23. package/templates/marketing/nextjs/src/components/Header/MobileMenu.tsx +5 -4
  24. package/templates/marketing/nextjs/src/components/Header/index.tsx +14 -14
  25. package/templates/marketing/nextjs/src/components/blocks/FinalCTA.tsx +4 -4
@@ -0,0 +1,97 @@
1
+ import { Header } from "@/components/Header"
2
+ import { Footer } from "@/components/Footer"
3
+ import Link from "next/link"
4
+
5
+ const blogPosts = [
6
+ {
7
+ title: "10 Ways to Boost Your Team's Productivity",
8
+ description: "Discover proven strategies to help your team work smarter, not harder.",
9
+ date: "Jan 15, 2025",
10
+ category: "Productivity",
11
+ slug: "#",
12
+ },
13
+ {
14
+ title: "The Future of Remote Work: Trends for 2025",
15
+ description: "What's next for distributed teams? We explore the biggest trends shaping remote work.",
16
+ date: "Jan 12, 2025",
17
+ category: "Remote Work",
18
+ slug: "#",
19
+ },
20
+ {
21
+ title: "How to Build a Culture of Collaboration",
22
+ description: "Learn how leading companies foster collaboration and teamwork at scale.",
23
+ date: "Jan 8, 2025",
24
+ category: "Culture",
25
+ slug: "#",
26
+ },
27
+ {
28
+ title: "Automation Best Practices for Growing Teams",
29
+ description: "Stop doing repetitive tasks manually. Here's how to automate the right way.",
30
+ date: "Jan 5, 2025",
31
+ category: "Automation",
32
+ slug: "#",
33
+ },
34
+ {
35
+ title: "Getting Started with SaaSify: A Complete Guide",
36
+ description: "Everything you need to know to get your team up and running with SaaSify.",
37
+ date: "Jan 2, 2025",
38
+ category: "Getting Started",
39
+ slug: "#",
40
+ },
41
+ {
42
+ title: "Customer Success Stories: How Acme Corp Scaled 10x",
43
+ description: "Learn how Acme Corp used SaaSify to scale their operations while keeping their team lean.",
44
+ date: "Dec 28, 2024",
45
+ category: "Case Study",
46
+ slug: "#",
47
+ },
48
+ ]
49
+
50
+ export default function BlogPage() {
51
+ return (
52
+ <div className="min-h-screen flex flex-col">
53
+ <Header />
54
+
55
+ <main className="flex-1">
56
+ {/* Hero */}
57
+ <section className="py-16 md:py-24">
58
+ <div className="container mx-auto px-4 text-center">
59
+ <h1 className="text-4xl md:text-5xl font-bold tracking-tight mb-6">
60
+ Blog
61
+ </h1>
62
+ <p className="text-xl text-muted-foreground max-w-2xl mx-auto">
63
+ Insights, tips, and stories to help your team work better together.
64
+ </p>
65
+ </div>
66
+ </section>
67
+
68
+ {/* Blog Grid */}
69
+ <section className="pb-24">
70
+ <div className="container mx-auto px-4">
71
+ <div className="grid gap-8 md:grid-cols-2 lg:grid-cols-3">
72
+ {blogPosts.map((post) => (
73
+ <article
74
+ key={post.title}
75
+ className="group rounded-lg border border-border bg-card p-6 transition-all hover:shadow-lg"
76
+ >
77
+ <div className="mb-4">
78
+ <span className="inline-block px-3 py-1 text-xs font-medium rounded-full bg-primary/10 text-primary">
79
+ {post.category}
80
+ </span>
81
+ </div>
82
+ <h2 className="text-xl font-semibold mb-2 group-hover:text-primary transition-colors">
83
+ <Link href={post.slug}>{post.title}</Link>
84
+ </h2>
85
+ <p className="text-muted-foreground mb-4">{post.description}</p>
86
+ <time className="text-sm text-muted-foreground">{post.date}</time>
87
+ </article>
88
+ ))}
89
+ </div>
90
+ </div>
91
+ </section>
92
+ </main>
93
+
94
+ <Footer />
95
+ </div>
96
+ )
97
+ }
@@ -0,0 +1,108 @@
1
+ import { Header } from "@/components/Header"
2
+ import { Footer } from "@/components/Footer"
3
+ import {
4
+ BentoFeatures,
5
+ FeatureShowcase,
6
+ LogoBanner,
7
+ FinalCTA,
8
+ } from "@/components/blocks"
9
+
10
+ export default function FeaturesPage() {
11
+ return (
12
+ <div className="min-h-screen flex flex-col">
13
+ <Header />
14
+
15
+ <main className="flex-1">
16
+ {/* Hero */}
17
+ <section className="py-16 md:py-24">
18
+ <div className="container mx-auto px-4 text-center">
19
+ <h1 className="text-4xl md:text-5xl font-bold tracking-tight mb-6">
20
+ Powerful features for modern teams
21
+ </h1>
22
+ <p className="text-xl text-muted-foreground max-w-2xl mx-auto">
23
+ Everything you need to streamline workflows, boost productivity, and scale your business.
24
+ </p>
25
+ </div>
26
+ </section>
27
+
28
+ {/* Bento Features */}
29
+ <BentoFeatures
30
+ heading="Discover what SaaSify can do"
31
+ subheading="Everything you need to work smarter and scale faster"
32
+ />
33
+
34
+ {/* Feature Showcase: Integrations */}
35
+ <FeatureShowcase
36
+ label="Seamless Integrations"
37
+ headline="Connect everything your team uses in one place"
38
+ description="Integrate with 100+ popular tools including Slack, Salesforce, HubSpot, and more. Two-way sync keeps everything up to date automatically."
39
+ features={[
40
+ { text: "100+ native integrations" },
41
+ { text: "Two-way data sync" },
42
+ { text: "Custom webhooks" },
43
+ { text: "API access included" },
44
+ ]}
45
+ link={{ label: "Learn more", href: "#" }}
46
+ imagePosition="right"
47
+ />
48
+
49
+ {/* Feature Showcase: Analytics */}
50
+ <FeatureShowcase
51
+ label="Actionable Analytics"
52
+ headline="Make decisions backed by real-time data"
53
+ description="Track every metric that matters. From team performance to customer insights, get the visibility you need to drive growth."
54
+ features={[
55
+ { text: "Real-time dashboards" },
56
+ { text: "Custom reports" },
57
+ { text: "Team performance metrics" },
58
+ { text: "Automated insights" },
59
+ ]}
60
+ link={{ label: "Learn more", href: "#" }}
61
+ imagePosition="left"
62
+ />
63
+
64
+ {/* Feature Showcase: Automation */}
65
+ <FeatureShowcase
66
+ label="Workflow Automation"
67
+ headline="Eliminate busywork with smart automation"
68
+ description="Build powerful workflows without code. Automate approvals, notifications, data entry, and more to focus on what matters."
69
+ features={[
70
+ { text: "Visual workflow builder" },
71
+ { text: "Conditional logic" },
72
+ { text: "Scheduled triggers" },
73
+ { text: "Cross-app automation" },
74
+ ]}
75
+ link={{ label: "Learn more", href: "#" }}
76
+ imagePosition="right"
77
+ />
78
+
79
+ {/* Logo Banner */}
80
+ <LogoBanner
81
+ heading="Integrates with your favorite tools"
82
+ style="grid"
83
+ logos={[
84
+ { name: "Slack", initials: "SL" },
85
+ { name: "Salesforce", initials: "SF" },
86
+ { name: "HubSpot", initials: "HS" },
87
+ { name: "Google Workspace", initials: "GW" },
88
+ { name: "Zapier", initials: "ZP" },
89
+ { name: "Jira", initials: "JI" },
90
+ ]}
91
+ />
92
+
93
+ {/* Final CTA */}
94
+ <FinalCTA
95
+ headline="Ready to transform how your team works?"
96
+ subheading="Start your free trial today. No credit card required."
97
+ style="dark"
98
+ links={[
99
+ { label: "Start free trial", href: "/sign-up", variant: "outline" },
100
+ { label: "View pricing", href: "/pricing", variant: "default" },
101
+ ]}
102
+ />
103
+ </main>
104
+
105
+ <Footer />
106
+ </div>
107
+ )
108
+ }
@@ -559,21 +559,24 @@
559
559
 
560
560
  .hero-showcase {
561
561
  position: relative;
562
- border-radius: 12px;
562
+ border-radius: 1rem;
563
563
  overflow: hidden;
564
- padding: 3rem;
565
- min-height: 500px;
564
+ height: 25rem;
565
+ width: 100%;
566
+ max-width: 75rem;
567
+ margin: 0 auto;
568
+ background: linear-gradient(135deg, var(--primary) 0%, color-mix(in oklch, var(--primary) 70%, black) 100%);
566
569
  }
567
570
 
568
571
  @media (min-width: 768px) {
569
572
  .hero-showcase {
570
- min-height: 600px;
573
+ height: 31.25rem;
571
574
  }
572
575
  }
573
576
 
574
577
  @media (min-width: 1024px) {
575
578
  .hero-showcase {
576
- min-height: 700px;
579
+ height: 37.5rem;
577
580
  }
578
581
  }
579
582
 
@@ -581,6 +584,7 @@
581
584
  position: absolute;
582
585
  inset: 0;
583
586
  z-index: 0;
587
+ opacity: 0.1;
584
588
  }
585
589
 
586
590
  .hero-bg-image img {
@@ -593,20 +597,16 @@
593
597
  .hero-mockup-centered {
594
598
  position: relative;
595
599
  z-index: 10;
596
- max-width: 800px;
597
- margin: 0 auto;
598
- width: 100%;
600
+ padding: 2rem;
601
+ display: flex;
602
+ justify-content: center;
603
+ align-items: center;
604
+ height: 100%;
599
605
  }
600
606
 
601
607
  @media (min-width: 768px) {
602
608
  .hero-mockup-centered {
603
- max-width: 900px;
604
- }
605
- }
606
-
607
- @media (min-width: 1024px) {
608
- .hero-mockup-centered {
609
- max-width: 1000px;
609
+ padding: 3rem;
610
610
  }
611
611
  }
612
612
 
@@ -46,12 +46,10 @@ export default function HomePage() {
46
46
  />
47
47
 
48
48
  {/* Bento Features */}
49
- <section id="features">
50
- <BentoFeatures
51
- heading="Discover what SaaSify can do"
52
- subheading="Everything you need to work smarter and scale faster"
53
- />
54
- </section>
49
+ <BentoFeatures
50
+ heading="Discover what SaaSify can do"
51
+ subheading="Everything you need to work smarter and scale faster"
52
+ />
55
53
 
56
54
  {/* Feature Showcase: Integrations */}
57
55
  <FeatureShowcase
@@ -64,7 +62,7 @@ export default function HomePage() {
64
62
  { text: "Custom webhooks" },
65
63
  { text: "API access included" },
66
64
  ]}
67
- link={{ label: "Explore integrations", href: "/features/integrations" }}
65
+ link={{ label: "Explore integrations", href: "/features" }}
68
66
  imagePosition="right"
69
67
  />
70
68
 
@@ -79,7 +77,7 @@ export default function HomePage() {
79
77
  { text: "Team performance metrics" },
80
78
  { text: "Automated insights" },
81
79
  ]}
82
- link={{ label: "Learn about analytics", href: "/features/analytics" }}
80
+ link={{ label: "Learn about analytics", href: "/features" }}
83
81
  imagePosition="left"
84
82
  />
85
83
 
@@ -94,7 +92,7 @@ export default function HomePage() {
94
92
  { text: "Scheduled triggers" },
95
93
  { text: "Cross-app automation" },
96
94
  ]}
97
- link={{ label: "See automation features", href: "/features/automation" }}
95
+ link={{ label: "See automation features", href: "/features" }}
98
96
  imagePosition="right"
99
97
  />
100
98
 
@@ -120,12 +118,10 @@ export default function HomePage() {
120
118
  />
121
119
 
122
120
  {/* Testimonials */}
123
- <section id="testimonials">
124
- <TestimonialsGrid
125
- heading="Loved by teams at companies of all sizes"
126
- subheading="See how leading teams use SaaSify to drive growth and productivity."
127
- />
128
- </section>
121
+ <TestimonialsGrid
122
+ heading="Loved by teams at companies of all sizes"
123
+ subheading="See how leading teams use SaaSify to drive growth and productivity."
124
+ />
129
125
 
130
126
  {/* Trust Columns */}
131
127
  <TrustColumns />
@@ -145,12 +141,10 @@ export default function HomePage() {
145
141
  />
146
142
 
147
143
  {/* Pricing */}
148
- <section id="pricing">
149
- <PricingTable
150
- heading="Simple, transparent pricing"
151
- subheading="Start free, upgrade as your team grows. No hidden fees."
152
- />
153
- </section>
144
+ <PricingTable
145
+ heading="Simple, transparent pricing"
146
+ subheading="Start free, upgrade as your team grows. No hidden fees."
147
+ />
154
148
 
155
149
  {/* Final CTA */}
156
150
  <FinalCTA
@@ -0,0 +1,44 @@
1
+ import { Header } from "@/components/Header"
2
+ import { Footer } from "@/components/Footer"
3
+ import { PricingTable, FinalCTA } from "@/components/blocks"
4
+
5
+ export default function PricingPage() {
6
+ return (
7
+ <div className="min-h-screen flex flex-col">
8
+ <Header />
9
+
10
+ <main className="flex-1">
11
+ {/* Hero */}
12
+ <section className="py-16 md:py-24">
13
+ <div className="container mx-auto px-4 text-center">
14
+ <h1 className="text-4xl md:text-5xl font-bold tracking-tight mb-6">
15
+ Simple, transparent pricing
16
+ </h1>
17
+ <p className="text-xl text-muted-foreground max-w-2xl mx-auto">
18
+ Start free, upgrade as your team grows. No hidden fees, no surprises.
19
+ </p>
20
+ </div>
21
+ </section>
22
+
23
+ {/* Pricing Table */}
24
+ <PricingTable
25
+ heading=""
26
+ subheading=""
27
+ />
28
+
29
+ {/* Final CTA */}
30
+ <FinalCTA
31
+ headline="Ready to get started?"
32
+ subheading="Join thousands of teams who chose the smarter way to work."
33
+ style="dark"
34
+ links={[
35
+ { label: "Start free trial", href: "/sign-up", variant: "outline" },
36
+ { label: "Contact sales", href: "/contact", variant: "default" },
37
+ ]}
38
+ />
39
+ </main>
40
+
41
+ <Footer />
42
+ </div>
43
+ )
44
+ }
@@ -0,0 +1,64 @@
1
+ import { Header } from "@/components/Header"
2
+ import { Footer } from "@/components/Footer"
3
+
4
+ export default function PrivacyPage() {
5
+ return (
6
+ <div className="min-h-screen flex flex-col">
7
+ <Header />
8
+
9
+ <main className="flex-1">
10
+ <article className="py-16 md:py-24">
11
+ <div className="container mx-auto px-4 max-w-3xl">
12
+ <h1 className="text-4xl md:text-5xl font-bold tracking-tight mb-6">
13
+ Privacy Policy
14
+ </h1>
15
+ <p className="text-muted-foreground mb-8">
16
+ Last updated: January 1, 2025
17
+ </p>
18
+
19
+ <div className="prose prose-neutral dark:prose-invert max-w-none">
20
+ <h2 className="text-2xl font-semibold mt-8 mb-4">Introduction</h2>
21
+ <p className="text-muted-foreground mb-4">
22
+ At SaaSify, we take your privacy seriously. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our service.
23
+ </p>
24
+
25
+ <h2 className="text-2xl font-semibold mt-8 mb-4">Information We Collect</h2>
26
+ <p className="text-muted-foreground mb-4">
27
+ We collect information you provide directly to us, such as when you create an account, make a purchase, or contact us for support.
28
+ </p>
29
+ <ul className="list-disc pl-6 text-muted-foreground mb-4 space-y-2">
30
+ <li>Account information (name, email, password)</li>
31
+ <li>Payment information (processed securely by our payment providers)</li>
32
+ <li>Usage data and analytics</li>
33
+ <li>Communications with our support team</li>
34
+ </ul>
35
+
36
+ <h2 className="text-2xl font-semibold mt-8 mb-4">How We Use Your Information</h2>
37
+ <p className="text-muted-foreground mb-4">
38
+ We use the information we collect to:
39
+ </p>
40
+ <ul className="list-disc pl-6 text-muted-foreground mb-4 space-y-2">
41
+ <li>Provide, maintain, and improve our services</li>
42
+ <li>Process transactions and send related information</li>
43
+ <li>Send you technical notices, updates, and support messages</li>
44
+ <li>Respond to your comments, questions, and requests</li>
45
+ </ul>
46
+
47
+ <h2 className="text-2xl font-semibold mt-8 mb-4">Data Security</h2>
48
+ <p className="text-muted-foreground mb-4">
49
+ We implement appropriate technical and organizational measures to protect your personal information against unauthorized access, alteration, disclosure, or destruction.
50
+ </p>
51
+
52
+ <h2 className="text-2xl font-semibold mt-8 mb-4">Contact Us</h2>
53
+ <p className="text-muted-foreground mb-4">
54
+ If you have any questions about this Privacy Policy, please contact us at privacy@saasify.com.
55
+ </p>
56
+ </div>
57
+ </div>
58
+ </article>
59
+ </main>
60
+
61
+ <Footer />
62
+ </div>
63
+ )
64
+ }
@@ -0,0 +1,68 @@
1
+ import { Header } from "@/components/Header"
2
+ import { Footer } from "@/components/Footer"
3
+
4
+ export default function TermsPage() {
5
+ return (
6
+ <div className="min-h-screen flex flex-col">
7
+ <Header />
8
+
9
+ <main className="flex-1">
10
+ <article className="py-16 md:py-24">
11
+ <div className="container mx-auto px-4 max-w-3xl">
12
+ <h1 className="text-4xl md:text-5xl font-bold tracking-tight mb-6">
13
+ Terms of Service
14
+ </h1>
15
+ <p className="text-muted-foreground mb-8">
16
+ Last updated: January 1, 2025
17
+ </p>
18
+
19
+ <div className="prose prose-neutral dark:prose-invert max-w-none">
20
+ <h2 className="text-2xl font-semibold mt-8 mb-4">Agreement to Terms</h2>
21
+ <p className="text-muted-foreground mb-4">
22
+ By accessing or using SaaSify, you agree to be bound by these Terms of Service. If you disagree with any part of the terms, you may not access the service.
23
+ </p>
24
+
25
+ <h2 className="text-2xl font-semibold mt-8 mb-4">Use License</h2>
26
+ <p className="text-muted-foreground mb-4">
27
+ Subject to your compliance with these Terms, we grant you a limited, non-exclusive, non-transferable license to access and use our service for your internal business purposes.
28
+ </p>
29
+
30
+ <h2 className="text-2xl font-semibold mt-8 mb-4">User Accounts</h2>
31
+ <p className="text-muted-foreground mb-4">
32
+ When you create an account with us, you must provide accurate, complete, and current information. You are responsible for safeguarding your account credentials and for all activities that occur under your account.
33
+ </p>
34
+
35
+ <h2 className="text-2xl font-semibold mt-8 mb-4">Prohibited Uses</h2>
36
+ <p className="text-muted-foreground mb-4">
37
+ You may not use our service:
38
+ </p>
39
+ <ul className="list-disc pl-6 text-muted-foreground mb-4 space-y-2">
40
+ <li>For any unlawful purpose or to promote illegal activities</li>
41
+ <li>To violate any applicable laws or regulations</li>
42
+ <li>To infringe upon the rights of others</li>
43
+ <li>To interfere with or disrupt the service or servers</li>
44
+ </ul>
45
+
46
+ <h2 className="text-2xl font-semibold mt-8 mb-4">Payment Terms</h2>
47
+ <p className="text-muted-foreground mb-4">
48
+ Paid subscriptions are billed in advance on a monthly or annual basis. You agree to pay all fees associated with your subscription plan.
49
+ </p>
50
+
51
+ <h2 className="text-2xl font-semibold mt-8 mb-4">Limitation of Liability</h2>
52
+ <p className="text-muted-foreground mb-4">
53
+ In no event shall SaaSify be liable for any indirect, incidental, special, consequential, or punitive damages arising out of or related to your use of the service.
54
+ </p>
55
+
56
+ <h2 className="text-2xl font-semibold mt-8 mb-4">Contact Us</h2>
57
+ <p className="text-muted-foreground mb-4">
58
+ If you have any questions about these Terms, please contact us at legal@saasify.com.
59
+ </p>
60
+ </div>
61
+ </div>
62
+ </article>
63
+ </main>
64
+
65
+ <Footer />
66
+ </div>
67
+ )
68
+ }
@@ -4,27 +4,27 @@ import Link from "next/link"
4
4
  import { Logo } from "@/components/Logo"
5
5
  import { ThemeSelector } from "@/components/ThemeSelector"
6
6
 
7
- // Footer navigation structure - using anchor links for landing page
7
+ // Footer navigation structure
8
8
  const footerColumns = [
9
9
  {
10
10
  title: "Product",
11
11
  links: [
12
12
  { label: "Home", href: "/" },
13
- { label: "Features", href: "#features" },
14
- { label: "Pricing", href: "#pricing" },
13
+ { label: "Features", href: "/features" },
14
+ { label: "Pricing", href: "/pricing" },
15
15
  ],
16
16
  },
17
17
  {
18
18
  title: "Resources",
19
19
  links: [
20
- { label: "Testimonials", href: "#testimonials" },
20
+ { label: "Blog", href: "/blog" },
21
21
  ],
22
22
  },
23
23
  {
24
24
  title: "Legal",
25
25
  links: [
26
- { label: "Privacy", href: "#" },
27
- { label: "Terms", href: "#" },
26
+ { label: "Privacy", href: "/privacy" },
27
+ { label: "Terms", href: "/terms" },
28
28
  ],
29
29
  },
30
30
  ]
@@ -75,12 +75,12 @@ export function Footer() {
75
75
  <ul className="space-y-3">
76
76
  {column.links.map((link) => (
77
77
  <li key={link.label}>
78
- <a
78
+ <Link
79
79
  href={link.href}
80
80
  className="text-sm text-muted-foreground transition-colors hover:text-foreground"
81
81
  >
82
82
  {link.label}
83
- </a>
83
+ </Link>
84
84
  </li>
85
85
  ))}
86
86
  </ul>
@@ -1,6 +1,7 @@
1
1
  "use client"
2
2
 
3
3
  import { useState } from "react"
4
+ import Link from "next/link"
4
5
  import { Menu, X } from "lucide-react"
5
6
  import { cn } from "@/lib/utils"
6
7
 
@@ -33,20 +34,20 @@ export function MobileMenu({ navLinks, ctaLinks }: MobileMenuProps) {
33
34
  <nav className="overflow-y-auto max-h-[calc(100vh-4rem)]">
34
35
  {/* Navigation links */}
35
36
  {navLinks.map((link) => (
36
- <a
37
+ <Link
37
38
  key={link.href}
38
39
  href={link.href}
39
40
  className="flex items-center px-4 py-3 text-sm font-medium border-b border-border hover:bg-muted"
40
41
  onClick={handleClose}
41
42
  >
42
43
  {link.label}
43
- </a>
44
+ </Link>
44
45
  ))}
45
46
 
46
47
  {/* CTA links */}
47
48
  <div className="p-4 space-y-2">
48
49
  {ctaLinks.map((link) => (
49
- <a
50
+ <Link
50
51
  key={link.label}
51
52
  href={link.href}
52
53
  className={cn(
@@ -58,7 +59,7 @@ export function MobileMenu({ navLinks, ctaLinks }: MobileMenuProps) {
58
59
  onClick={handleClose}
59
60
  >
60
61
  {link.label}
61
- </a>
62
+ </Link>
62
63
  ))}
63
64
  </div>
64
65
  </nav>