kofi-stack-template-generator 2.1.54 → 2.1.55
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.
- package/.turbo/turbo-build.log +5 -5
- package/dist/index.js +51 -271
- package/package.json +2 -2
- package/src/templates.generated.ts +10 -10
- package/templates/marketing/astro/src/components/Footer.astro +9 -27
- package/templates/marketing/astro/src/components/Header.astro +9 -241
- package/templates/marketing/astro/src/pages/index.astro +18 -12
- package/templates/marketing/astro/src/styles/globals.css.hbs +824 -0
- package/templates/marketing/nextjs/src/app/globals.css.hbs +824 -0
- package/templates/marketing/nextjs/src/app/page.tsx.hbs +18 -12
- package/templates/marketing/nextjs/src/components/Footer/index.tsx +12 -33
- package/templates/marketing/nextjs/src/components/Header/MobileMenu.tsx +8 -117
- package/templates/marketing/nextjs/src/components/Header/index.tsx +14 -105
|
@@ -2,33 +2,27 @@
|
|
|
2
2
|
import Logo from "./Logo.astro"
|
|
3
3
|
import ThemeSelector from "./ThemeSelector.astro"
|
|
4
4
|
|
|
5
|
+
// Footer navigation structure - using anchor links for landing page
|
|
5
6
|
const footerColumns = [
|
|
6
7
|
{
|
|
7
8
|
title: "Product",
|
|
8
9
|
links: [
|
|
9
10
|
{ label: "Home", href: "/" },
|
|
10
|
-
{ label: "
|
|
11
|
-
{ label: "
|
|
11
|
+
{ label: "Features", href: "#features" },
|
|
12
|
+
{ label: "Pricing", href: "#pricing" },
|
|
12
13
|
],
|
|
13
14
|
},
|
|
14
15
|
{
|
|
15
16
|
title: "Resources",
|
|
16
17
|
links: [
|
|
17
|
-
{ label: "
|
|
18
|
-
{ label: "Documentation", href: "/docs" },
|
|
19
|
-
],
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
title: "Company",
|
|
23
|
-
links: [
|
|
24
|
-
{ label: "About", href: "/about" },
|
|
18
|
+
{ label: "Testimonials", href: "#testimonials" },
|
|
25
19
|
],
|
|
26
20
|
},
|
|
27
21
|
{
|
|
28
22
|
title: "Legal",
|
|
29
23
|
links: [
|
|
30
|
-
{ label: "Privacy", href: "
|
|
31
|
-
{ label: "Terms", href: "
|
|
24
|
+
{ label: "Privacy", href: "#" },
|
|
25
|
+
{ label: "Terms", href: "#" },
|
|
32
26
|
],
|
|
33
27
|
},
|
|
34
28
|
]
|
|
@@ -39,17 +33,13 @@ const socialLinks = {
|
|
|
39
33
|
github: "https://github.com/saasify",
|
|
40
34
|
}
|
|
41
35
|
|
|
42
|
-
const bottomLinks = [
|
|
43
|
-
{ label: "Contact Support", href: "/support" },
|
|
44
|
-
]
|
|
45
|
-
|
|
46
36
|
const currentYear = new Date().getFullYear()
|
|
47
37
|
---
|
|
48
38
|
|
|
49
39
|
<footer class="mt-auto border-t border-border bg-background">
|
|
50
40
|
<!-- Main Footer Content -->
|
|
51
41
|
<div class="container mx-auto px-4 py-12 lg:py-16">
|
|
52
|
-
<div class="grid grid-cols-2 gap-8 md:grid-cols-3 lg:grid-cols-
|
|
42
|
+
<div class="grid grid-cols-2 gap-8 md:grid-cols-3 lg:grid-cols-5">
|
|
53
43
|
<!-- Link Columns -->
|
|
54
44
|
{footerColumns.map((column) => (
|
|
55
45
|
<div class="col-span-1">
|
|
@@ -72,7 +62,7 @@ const currentYear = new Date().getFullYear()
|
|
|
72
62
|
))}
|
|
73
63
|
|
|
74
64
|
<!-- Newsletter Column -->
|
|
75
|
-
<div class="col-span-2
|
|
65
|
+
<div class="col-span-2">
|
|
76
66
|
<h3 class="mb-4 text-sm font-medium text-foreground">
|
|
77
67
|
Newsletter
|
|
78
68
|
</h3>
|
|
@@ -150,16 +140,8 @@ const currentYear = new Date().getFullYear()
|
|
|
150
140
|
</p>
|
|
151
141
|
</div>
|
|
152
142
|
|
|
153
|
-
<!--
|
|
143
|
+
<!-- Theme Selector -->
|
|
154
144
|
<div class="flex items-center gap-6">
|
|
155
|
-
{bottomLinks.map((link) => (
|
|
156
|
-
<a
|
|
157
|
-
href={link.href}
|
|
158
|
-
class="text-sm text-muted-foreground transition-colors hover:text-foreground"
|
|
159
|
-
>
|
|
160
|
-
{link.label}
|
|
161
|
-
</a>
|
|
162
|
-
))}
|
|
163
145
|
<ThemeSelector />
|
|
164
146
|
</div>
|
|
165
147
|
</div>
|
|
@@ -1,53 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
import Logo from "./Logo.astro"
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
// Navigation data structure matching SaaSify
|
|
6
|
-
const productMenu = {
|
|
7
|
-
label: "Product",
|
|
8
|
-
columns: [
|
|
9
|
-
{
|
|
10
|
-
title: "Core Features",
|
|
11
|
-
items: [
|
|
12
|
-
{ label: "Integrations", description: "Connect with 100+ tools you already use", href: "/features/integrations", icon: "layout" },
|
|
13
|
-
{ label: "Analytics", description: "Real-time insights and reporting dashboards", href: "/features/analytics", icon: "barChart" },
|
|
14
|
-
{ label: "Security", description: "Enterprise-grade protection and compliance", href: "/features/security", icon: "shield" },
|
|
15
|
-
],
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
title: "Productivity",
|
|
19
|
-
items: [
|
|
20
|
-
{ label: "Dashboard", description: "Unified command center for your team", href: "/features/dashboard", icon: "layout" },
|
|
21
|
-
{ label: "Automation", description: "Streamline repetitive tasks instantly", href: "/features/automation", icon: "zap" },
|
|
22
|
-
{ label: "Workflows", description: "Build custom processes without code", href: "/features/workflows", icon: "layers" },
|
|
23
|
-
],
|
|
24
|
-
},
|
|
25
|
-
],
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const solutionsMenu = {
|
|
29
|
-
label: "Solutions",
|
|
30
|
-
columns: [
|
|
31
|
-
{
|
|
32
|
-
title: "By Team",
|
|
33
|
-
items: [
|
|
34
|
-
{ label: "Sales Teams", description: "Close deals faster with smart tools", href: "/use-cases/sales", icon: "target" },
|
|
35
|
-
{ label: "Marketing Teams", description: "Launch campaigns that convert", href: "/use-cases/marketing", icon: "rocket" },
|
|
36
|
-
{ label: "Product Teams", description: "Ship features users love", href: "/use-cases/product", icon: "layers" },
|
|
37
|
-
{ label: "Operations", description: "Scale without the growing pains", href: "/use-cases/operations", icon: "settings" },
|
|
38
|
-
],
|
|
39
|
-
},
|
|
40
|
-
],
|
|
41
|
-
}
|
|
3
|
+
import { Menu, X } from "lucide-astro"
|
|
42
4
|
|
|
5
|
+
// Simplified navigation for landing page
|
|
43
6
|
const navLinks = [
|
|
44
|
-
{ label: "
|
|
45
|
-
{ label: "
|
|
7
|
+
{ label: "Features", href: "#features" },
|
|
8
|
+
{ label: "Testimonials", href: "#testimonials" },
|
|
9
|
+
{ label: "Pricing", href: "#pricing" },
|
|
46
10
|
]
|
|
47
11
|
|
|
48
12
|
const ctaLinks = [
|
|
49
|
-
{ label: "Sign In", href: "
|
|
50
|
-
{ label: "Get Started", href: "
|
|
13
|
+
{ label: "Sign In", href: "#", variant: "ghost" },
|
|
14
|
+
{ label: "Get Started", href: "#pricing", variant: "default" },
|
|
51
15
|
]
|
|
52
16
|
---
|
|
53
17
|
|
|
@@ -62,97 +26,6 @@ const ctaLinks = [
|
|
|
62
26
|
|
|
63
27
|
<!-- Desktop navigation -->
|
|
64
28
|
<nav class="hidden lg:flex items-center gap-1">
|
|
65
|
-
<!-- Product Menu -->
|
|
66
|
-
<div class="mega-menu-trigger relative" data-menu="product">
|
|
67
|
-
<button
|
|
68
|
-
type="button"
|
|
69
|
-
class="flex items-center gap-1 px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors"
|
|
70
|
-
>
|
|
71
|
-
{productMenu.label}
|
|
72
|
-
<ChevronDown class="h-4 w-4 transition-transform mega-chevron" />
|
|
73
|
-
</button>
|
|
74
|
-
<div class="mega-menu-dropdown absolute left-0 top-full pt-2 opacity-0 -translate-y-2 pointer-events-none transition-all">
|
|
75
|
-
<div class="bg-background border border-border rounded-lg shadow-lg p-6 min-w-[480px]">
|
|
76
|
-
<div class="grid gap-8 grid-cols-2">
|
|
77
|
-
{productMenu.columns.map((column) => (
|
|
78
|
-
<div>
|
|
79
|
-
<h3 class="text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-4">
|
|
80
|
-
{column.title}
|
|
81
|
-
</h3>
|
|
82
|
-
<ul class="space-y-1">
|
|
83
|
-
{column.items.map((item) => (
|
|
84
|
-
<li>
|
|
85
|
-
<a
|
|
86
|
-
href={item.href}
|
|
87
|
-
class="flex items-start gap-3 p-3 rounded-lg hover:bg-muted transition-colors group"
|
|
88
|
-
>
|
|
89
|
-
<div class="flex h-10 w-10 shrink-0 items-center justify-center rounded-md bg-muted group-hover:bg-background">
|
|
90
|
-
{item.icon === "layout" && <Layout class="h-5 w-5 text-primary" />}
|
|
91
|
-
{item.icon === "barChart" && <BarChart3 class="h-5 w-5 text-primary" />}
|
|
92
|
-
{item.icon === "shield" && <Shield class="h-5 w-5 text-primary" />}
|
|
93
|
-
{item.icon === "zap" && <Zap class="h-5 w-5 text-primary" />}
|
|
94
|
-
{item.icon === "layers" && <Layers class="h-5 w-5 text-primary" />}
|
|
95
|
-
</div>
|
|
96
|
-
<div>
|
|
97
|
-
<div class="text-sm font-medium text-foreground">{item.label}</div>
|
|
98
|
-
<div class="text-xs text-muted-foreground mt-0.5">{item.description}</div>
|
|
99
|
-
</div>
|
|
100
|
-
</a>
|
|
101
|
-
</li>
|
|
102
|
-
))}
|
|
103
|
-
</ul>
|
|
104
|
-
</div>
|
|
105
|
-
))}
|
|
106
|
-
</div>
|
|
107
|
-
</div>
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
|
|
111
|
-
<!-- Solutions Menu -->
|
|
112
|
-
<div class="mega-menu-trigger relative" data-menu="solutions">
|
|
113
|
-
<button
|
|
114
|
-
type="button"
|
|
115
|
-
class="flex items-center gap-1 px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors"
|
|
116
|
-
>
|
|
117
|
-
{solutionsMenu.label}
|
|
118
|
-
<ChevronDown class="h-4 w-4 transition-transform mega-chevron" />
|
|
119
|
-
</button>
|
|
120
|
-
<div class="mega-menu-dropdown absolute left-0 top-full pt-2 opacity-0 -translate-y-2 pointer-events-none transition-all">
|
|
121
|
-
<div class="bg-background border border-border rounded-lg shadow-lg p-6 min-w-[320px]">
|
|
122
|
-
<div class="grid gap-8 grid-cols-1">
|
|
123
|
-
{solutionsMenu.columns.map((column) => (
|
|
124
|
-
<div>
|
|
125
|
-
<h3 class="text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-4">
|
|
126
|
-
{column.title}
|
|
127
|
-
</h3>
|
|
128
|
-
<ul class="space-y-1">
|
|
129
|
-
{column.items.map((item) => (
|
|
130
|
-
<li>
|
|
131
|
-
<a
|
|
132
|
-
href={item.href}
|
|
133
|
-
class="flex items-start gap-3 p-3 rounded-lg hover:bg-muted transition-colors group"
|
|
134
|
-
>
|
|
135
|
-
<div class="flex h-10 w-10 shrink-0 items-center justify-center rounded-md bg-muted group-hover:bg-background">
|
|
136
|
-
{item.icon === "target" && <Target class="h-5 w-5 text-primary" />}
|
|
137
|
-
{item.icon === "rocket" && <Rocket class="h-5 w-5 text-primary" />}
|
|
138
|
-
{item.icon === "layers" && <Layers class="h-5 w-5 text-primary" />}
|
|
139
|
-
{item.icon === "settings" && <Settings class="h-5 w-5 text-primary" />}
|
|
140
|
-
</div>
|
|
141
|
-
<div>
|
|
142
|
-
<div class="text-sm font-medium text-foreground">{item.label}</div>
|
|
143
|
-
<div class="text-xs text-muted-foreground mt-0.5">{item.description}</div>
|
|
144
|
-
</div>
|
|
145
|
-
</a>
|
|
146
|
-
</li>
|
|
147
|
-
))}
|
|
148
|
-
</ul>
|
|
149
|
-
</div>
|
|
150
|
-
))}
|
|
151
|
-
</div>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
</div>
|
|
155
|
-
|
|
156
29
|
{navLinks.map((link) => (
|
|
157
30
|
<a
|
|
158
31
|
href={link.href}
|
|
@@ -185,7 +58,7 @@ const ctaLinks = [
|
|
|
185
58
|
|
|
186
59
|
<!-- Mobile: Primary CTA + Hamburger -->
|
|
187
60
|
<a
|
|
188
|
-
href="
|
|
61
|
+
href="#pricing"
|
|
189
62
|
class="lg:hidden px-4 py-2 text-sm font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90"
|
|
190
63
|
>
|
|
191
64
|
Get Started
|
|
@@ -207,74 +80,7 @@ const ctaLinks = [
|
|
|
207
80
|
<!-- Mobile Menu Overlay -->
|
|
208
81
|
<div id="mobile-menu" class="fixed inset-0 top-16 z-50 bg-background hidden lg:hidden">
|
|
209
82
|
<nav class="overflow-y-auto max-h-[calc(100vh-4rem)]">
|
|
210
|
-
<!--
|
|
211
|
-
<div class="mobile-section border-b border-border" data-section="product">
|
|
212
|
-
<button
|
|
213
|
-
type="button"
|
|
214
|
-
class="flex items-center justify-between w-full px-4 py-3 text-sm font-medium"
|
|
215
|
-
>
|
|
216
|
-
Product
|
|
217
|
-
<ChevronDown class="h-4 w-4 transition-transform section-chevron" />
|
|
218
|
-
</button>
|
|
219
|
-
<div class="mobile-section-content hidden px-4 pb-4 space-y-4">
|
|
220
|
-
{productMenu.columns.map((column) => (
|
|
221
|
-
<div>
|
|
222
|
-
<h4 class="text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2">
|
|
223
|
-
{column.title}
|
|
224
|
-
</h4>
|
|
225
|
-
<ul class="space-y-1">
|
|
226
|
-
{column.items.map((item) => (
|
|
227
|
-
<li>
|
|
228
|
-
<a href={item.href} class="flex items-center gap-3 p-2 rounded-lg hover:bg-muted">
|
|
229
|
-
{item.icon === "layout" && <Layout class="h-4 w-4 text-primary" />}
|
|
230
|
-
{item.icon === "barChart" && <BarChart3 class="h-4 w-4 text-primary" />}
|
|
231
|
-
{item.icon === "shield" && <Shield class="h-4 w-4 text-primary" />}
|
|
232
|
-
{item.icon === "zap" && <Zap class="h-4 w-4 text-primary" />}
|
|
233
|
-
{item.icon === "layers" && <Layers class="h-4 w-4 text-primary" />}
|
|
234
|
-
<span class="text-sm">{item.label}</span>
|
|
235
|
-
</a>
|
|
236
|
-
</li>
|
|
237
|
-
))}
|
|
238
|
-
</ul>
|
|
239
|
-
</div>
|
|
240
|
-
))}
|
|
241
|
-
</div>
|
|
242
|
-
</div>
|
|
243
|
-
|
|
244
|
-
<!-- Solutions Section -->
|
|
245
|
-
<div class="mobile-section border-b border-border" data-section="solutions">
|
|
246
|
-
<button
|
|
247
|
-
type="button"
|
|
248
|
-
class="flex items-center justify-between w-full px-4 py-3 text-sm font-medium"
|
|
249
|
-
>
|
|
250
|
-
Solutions
|
|
251
|
-
<ChevronDown class="h-4 w-4 transition-transform section-chevron" />
|
|
252
|
-
</button>
|
|
253
|
-
<div class="mobile-section-content hidden px-4 pb-4 space-y-4">
|
|
254
|
-
{solutionsMenu.columns.map((column) => (
|
|
255
|
-
<div>
|
|
256
|
-
<h4 class="text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2">
|
|
257
|
-
{column.title}
|
|
258
|
-
</h4>
|
|
259
|
-
<ul class="space-y-1">
|
|
260
|
-
{column.items.map((item) => (
|
|
261
|
-
<li>
|
|
262
|
-
<a href={item.href} class="flex items-center gap-3 p-2 rounded-lg hover:bg-muted">
|
|
263
|
-
{item.icon === "target" && <Target class="h-4 w-4 text-primary" />}
|
|
264
|
-
{item.icon === "rocket" && <Rocket class="h-4 w-4 text-primary" />}
|
|
265
|
-
{item.icon === "layers" && <Layers class="h-4 w-4 text-primary" />}
|
|
266
|
-
{item.icon === "settings" && <Settings class="h-4 w-4 text-primary" />}
|
|
267
|
-
<span class="text-sm">{item.label}</span>
|
|
268
|
-
</a>
|
|
269
|
-
</li>
|
|
270
|
-
))}
|
|
271
|
-
</ul>
|
|
272
|
-
</div>
|
|
273
|
-
))}
|
|
274
|
-
</div>
|
|
275
|
-
</div>
|
|
276
|
-
|
|
277
|
-
<!-- Simple nav links -->
|
|
83
|
+
<!-- Navigation links -->
|
|
278
84
|
{navLinks.map((link) => (
|
|
279
85
|
<a
|
|
280
86
|
href={link.href}
|
|
@@ -305,25 +111,6 @@ const ctaLinks = [
|
|
|
305
111
|
|
|
306
112
|
<script>
|
|
307
113
|
function initHeader() {
|
|
308
|
-
// Desktop mega menu
|
|
309
|
-
const megaMenuTriggers = document.querySelectorAll('.mega-menu-trigger')
|
|
310
|
-
megaMenuTriggers.forEach((trigger) => {
|
|
311
|
-
const dropdown = trigger.querySelector('.mega-menu-dropdown')
|
|
312
|
-
const chevron = trigger.querySelector('.mega-chevron')
|
|
313
|
-
|
|
314
|
-
trigger.addEventListener('mouseenter', () => {
|
|
315
|
-
dropdown?.classList.remove('opacity-0', '-translate-y-2', 'pointer-events-none')
|
|
316
|
-
dropdown?.classList.add('opacity-100', 'translate-y-0', 'pointer-events-auto')
|
|
317
|
-
chevron?.classList.add('rotate-180')
|
|
318
|
-
})
|
|
319
|
-
|
|
320
|
-
trigger.addEventListener('mouseleave', () => {
|
|
321
|
-
dropdown?.classList.add('opacity-0', '-translate-y-2', 'pointer-events-none')
|
|
322
|
-
dropdown?.classList.remove('opacity-100', 'translate-y-0', 'pointer-events-auto')
|
|
323
|
-
chevron?.classList.remove('rotate-180')
|
|
324
|
-
})
|
|
325
|
-
})
|
|
326
|
-
|
|
327
114
|
// Mobile menu toggle
|
|
328
115
|
const mobileToggle = document.getElementById('mobile-menu-toggle')
|
|
329
116
|
const mobileMenu = document.getElementById('mobile-menu')
|
|
@@ -343,25 +130,6 @@ const ctaLinks = [
|
|
|
343
130
|
}
|
|
344
131
|
})
|
|
345
132
|
|
|
346
|
-
// Mobile sections toggle
|
|
347
|
-
const mobileSections = document.querySelectorAll('.mobile-section')
|
|
348
|
-
mobileSections.forEach((section) => {
|
|
349
|
-
const button = section.querySelector('button')
|
|
350
|
-
const content = section.querySelector('.mobile-section-content')
|
|
351
|
-
const chevron = section.querySelector('.section-chevron')
|
|
352
|
-
|
|
353
|
-
button?.addEventListener('click', () => {
|
|
354
|
-
const isOpen = !content?.classList.contains('hidden')
|
|
355
|
-
if (isOpen) {
|
|
356
|
-
content?.classList.add('hidden')
|
|
357
|
-
chevron?.classList.remove('rotate-180')
|
|
358
|
-
} else {
|
|
359
|
-
content?.classList.remove('hidden')
|
|
360
|
-
chevron?.classList.add('rotate-180')
|
|
361
|
-
}
|
|
362
|
-
})
|
|
363
|
-
})
|
|
364
|
-
|
|
365
133
|
// Close mobile menu on link click
|
|
366
134
|
const mobileLinks = mobileMenu?.querySelectorAll('a')
|
|
367
135
|
mobileLinks?.forEach((link) => {
|
|
@@ -46,10 +46,12 @@ import FinalCTA from "../components/blocks/FinalCTA.astro"
|
|
|
46
46
|
/>
|
|
47
47
|
|
|
48
48
|
<!-- Bento Features -->
|
|
49
|
-
<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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>
|
|
53
55
|
|
|
54
56
|
<!-- Feature Showcase: Integrations -->
|
|
55
57
|
<FeatureShowcase
|
|
@@ -118,10 +120,12 @@ import FinalCTA from "../components/blocks/FinalCTA.astro"
|
|
|
118
120
|
/>
|
|
119
121
|
|
|
120
122
|
<!-- Testimonials -->
|
|
121
|
-
<
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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>
|
|
125
129
|
|
|
126
130
|
<!-- Trust Columns -->
|
|
127
131
|
<TrustColumns />
|
|
@@ -141,10 +145,12 @@ import FinalCTA from "../components/blocks/FinalCTA.astro"
|
|
|
141
145
|
/>
|
|
142
146
|
|
|
143
147
|
<!-- Pricing -->
|
|
144
|
-
<
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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>
|
|
148
154
|
|
|
149
155
|
<!-- Final CTA -->
|
|
150
156
|
<FinalCTA
|