kofi-stack-template-generator 2.1.37 → 2.1.38
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 +6 -6
- package/dist/index.js +8057 -440
- package/package.json +1 -1
- package/src/templates.generated.ts +248 -94
- package/templates/integrations/posthog/src/components/providers/posthog-provider.tsx.hbs +4 -1
- package/templates/marketing/payload/package.json.hbs +41 -26
- package/templates/marketing/payload/src/Footer/Component.client.tsx +288 -0
- package/templates/marketing/payload/src/Footer/Component.tsx +11 -0
- package/templates/marketing/payload/src/Footer/RowLabel.tsx +15 -0
- package/templates/marketing/payload/src/Footer/config.ts +178 -0
- package/templates/marketing/payload/src/Footer/hooks/{revalidateFooter.ts.hbs → revalidateFooter.ts} +5 -5
- package/templates/marketing/payload/src/Header/Component.client.tsx +94 -0
- package/templates/marketing/payload/src/Header/Component.tsx +10 -0
- package/templates/marketing/payload/src/Header/MegaMenu/index.tsx +197 -0
- package/templates/marketing/payload/src/Header/MobileMenu/HamburgerIcon.tsx +48 -0
- package/templates/marketing/payload/src/Header/MobileMenu/index.tsx +299 -0
- package/templates/marketing/payload/src/Header/Nav/index.tsx +76 -0
- package/templates/marketing/payload/src/Header/RowLabel.tsx +21 -0
- package/templates/marketing/payload/src/Header/config.ts +208 -0
- package/templates/marketing/payload/src/Header/hooks/{revalidateHeader.ts.hbs → revalidateHeader.ts} +5 -5
- package/templates/marketing/payload/src/access/{authenticated.ts.hbs → authenticated.ts} +1 -1
- package/templates/marketing/payload/src/access/{authenticatedOrPublished.ts.hbs → authenticatedOrPublished.ts} +8 -8
- package/templates/marketing/payload/src/app/(docs)/docs/[[...slug]]/page.tsx +117 -0
- package/templates/marketing/payload/src/app/(docs)/docs/layout.tsx +39 -0
- package/templates/marketing/payload/src/app/(docs)/layout.tsx +44 -0
- package/templates/marketing/payload/src/app/(frontend)/(sitemaps)/pages-sitemap.xml/route.ts +68 -0
- package/templates/marketing/payload/src/app/(frontend)/(sitemaps)/posts-sitemap.xml/route.ts +55 -0
- package/templates/marketing/payload/src/app/(frontend)/[slug]/page.client.tsx +15 -0
- package/templates/marketing/payload/src/app/(frontend)/[slug]/page.tsx +114 -0
- package/templates/marketing/payload/src/app/(frontend)/api/docs-search/route.ts +67 -0
- package/templates/marketing/payload/src/app/(frontend)/api/newsletter/route.ts +260 -0
- package/templates/marketing/payload/src/app/(frontend)/api/pricing/route.ts +266 -0
- package/templates/marketing/payload/src/app/(frontend)/globals.css +1019 -0
- package/templates/marketing/payload/src/app/(frontend)/layout.tsx +114 -0
- package/templates/marketing/payload/src/app/(frontend)/next/exit-preview/route.ts +7 -0
- package/templates/marketing/payload/src/app/(frontend)/next/preview/route.ts +56 -0
- package/templates/marketing/payload/src/app/(frontend)/next/seed/route.ts +31 -0
- package/templates/marketing/payload/src/app/(frontend)/not-found.tsx +17 -0
- package/templates/marketing/payload/src/app/(frontend)/page.tsx +5 -0
- package/templates/marketing/payload/src/app/(frontend)/posts/BlogPageClient.tsx +190 -0
- package/templates/marketing/payload/src/app/(frontend)/posts/[slug]/BlogPostContent.tsx +67 -0
- package/templates/marketing/payload/src/app/(frontend)/posts/[slug]/page.client.tsx +15 -0
- package/templates/marketing/payload/src/app/(frontend)/posts/[slug]/page.tsx +118 -0
- package/templates/marketing/payload/src/app/(frontend)/posts/page/[pageNumber]/page.client.tsx +15 -0
- package/templates/marketing/payload/src/app/(frontend)/posts/page/[pageNumber]/page.tsx +87 -0
- package/templates/marketing/payload/src/app/(frontend)/posts/page.tsx +49 -0
- package/templates/marketing/payload/src/app/(frontend)/search/page.client.tsx +15 -0
- package/templates/marketing/payload/src/app/(frontend)/search/page.tsx +87 -0
- package/templates/marketing/payload/src/app/(payload)/admin/[[...segments]]/not-found.tsx +24 -0
- package/templates/marketing/payload/src/app/(payload)/admin/[[...segments]]/page.tsx +24 -0
- package/templates/marketing/payload/src/app/(payload)/admin/importMap.js +83 -0
- package/templates/marketing/payload/src/app/(payload)/api/[...slug]/{route.ts.hbs → route.ts} +13 -9
- package/templates/marketing/payload/src/app/(payload)/api/graphql/{route.ts.hbs → route.ts} +2 -2
- package/templates/marketing/payload/src/app/(payload)/api/graphql-playground/{route.ts.hbs → route.ts} +3 -3
- package/templates/marketing/payload/src/app/(payload)/custom.scss +0 -0
- package/templates/marketing/payload/src/app/(payload)/layout.tsx +31 -0
- package/templates/marketing/payload/src/blocks/ArchiveBlock/Component.tsx +65 -0
- package/templates/marketing/payload/src/blocks/ArchiveBlock/config.ts +120 -0
- package/templates/marketing/payload/src/blocks/Banner/Component.tsx +26 -0
- package/templates/marketing/payload/src/blocks/Banner/config.ts +67 -0
- package/templates/marketing/payload/src/blocks/BentoFeatures/Component.tsx +243 -0
- package/templates/marketing/payload/src/blocks/BentoFeatures/config.ts +147 -0
- package/templates/marketing/payload/src/blocks/CallToAction/Component.tsx +31 -0
- package/templates/marketing/payload/src/blocks/CallToAction/config.ts +68 -0
- package/templates/marketing/payload/src/blocks/Code/Component.client.tsx +33 -0
- package/templates/marketing/payload/src/blocks/Code/Component.tsx +21 -0
- package/templates/marketing/payload/src/blocks/Code/CopyButton.tsx +33 -0
- package/templates/marketing/payload/src/blocks/Code/config.ts +33 -0
- package/templates/marketing/payload/src/blocks/Content/Component.tsx +41 -0
- package/templates/marketing/payload/src/blocks/Content/config.ts +105 -0
- package/templates/marketing/payload/src/blocks/FAQAccordion/Component.tsx +90 -0
- package/templates/marketing/payload/src/blocks/FAQAccordion/config.ts +75 -0
- package/templates/marketing/payload/src/blocks/FeatureGrid/Component.tsx +108 -0
- package/templates/marketing/payload/src/blocks/FeatureGrid/config.ts +109 -0
- package/templates/marketing/payload/src/blocks/FeatureShowcase/Component.tsx +107 -0
- package/templates/marketing/payload/src/blocks/FeatureShowcase/config.ts +111 -0
- package/templates/marketing/payload/src/blocks/FinalCTA/Component.tsx +117 -0
- package/templates/marketing/payload/src/blocks/FinalCTA/config.ts +50 -0
- package/templates/marketing/payload/src/blocks/Form/Checkbox/index.tsx +45 -0
- package/templates/marketing/payload/src/blocks/Form/Component.tsx +170 -0
- package/templates/marketing/payload/src/blocks/Form/Country/index.tsx +65 -0
- package/templates/marketing/payload/src/blocks/Form/Country/options.ts +982 -0
- package/templates/marketing/payload/src/blocks/Form/Email/index.tsx +38 -0
- package/templates/marketing/payload/src/blocks/Form/Error/index.tsx +13 -0
- package/templates/marketing/payload/src/blocks/Form/Message/index.tsx +13 -0
- package/templates/marketing/payload/src/blocks/Form/Number/index.tsx +36 -0
- package/templates/marketing/payload/src/blocks/Form/Select/index.tsx +63 -0
- package/templates/marketing/payload/src/blocks/Form/State/index.tsx +64 -0
- package/templates/marketing/payload/src/blocks/Form/State/options.ts +52 -0
- package/templates/marketing/payload/src/blocks/Form/Text/index.tsx +32 -0
- package/templates/marketing/payload/src/blocks/Form/Textarea/index.tsx +40 -0
- package/templates/marketing/payload/src/blocks/Form/Width/index.tsx +13 -0
- package/templates/marketing/payload/src/blocks/Form/config.ts +77 -0
- package/templates/marketing/payload/src/blocks/Form/fields.tsx +21 -0
- package/templates/marketing/payload/src/blocks/HowItWorks/Component.tsx +59 -0
- package/templates/marketing/payload/src/blocks/HowItWorks/config.ts +88 -0
- package/templates/marketing/payload/src/blocks/IndustryTabs/Component.tsx +132 -0
- package/templates/marketing/payload/src/blocks/IndustryTabs/config.ts +77 -0
- package/templates/marketing/payload/src/blocks/LogoBanner/Component.tsx +95 -0
- package/templates/marketing/payload/src/blocks/LogoBanner/config.ts +48 -0
- package/templates/marketing/payload/src/blocks/MediaBlock/Component.tsx +67 -0
- package/templates/marketing/payload/src/blocks/MediaBlock/config.ts +14 -0
- package/templates/marketing/payload/src/blocks/Personas/Component.tsx +69 -0
- package/templates/marketing/payload/src/blocks/Personas/config.ts +96 -0
- package/templates/marketing/payload/src/blocks/PricingTable/ComparisonTable.tsx +250 -0
- package/templates/marketing/payload/src/blocks/PricingTable/Component.tsx +443 -0
- package/templates/marketing/payload/src/blocks/PricingTable/config.ts +142 -0
- package/templates/marketing/payload/src/blocks/ProofBanner/Component.tsx +65 -0
- package/templates/marketing/payload/src/blocks/ProofBanner/config.ts +42 -0
- package/templates/marketing/payload/src/blocks/RelatedPosts/Component.tsx +32 -0
- package/templates/marketing/payload/src/blocks/RenderBlocks.tsx +92 -0
- package/templates/marketing/payload/src/blocks/TestimonialsGrid/Component.tsx +107 -0
- package/templates/marketing/payload/src/blocks/TestimonialsGrid/config.ts +76 -0
- package/templates/marketing/payload/src/blocks/TrustColumns/Component.tsx +83 -0
- package/templates/marketing/payload/src/blocks/TrustColumns/config.ts +70 -0
- package/templates/marketing/payload/src/collections/Categories.ts +28 -0
- package/templates/marketing/payload/src/collections/FAQs/index.ts +100 -0
- package/templates/marketing/payload/src/collections/Media.ts +160 -0
- package/templates/marketing/payload/src/collections/Pages/hooks/revalidatePage.ts +43 -0
- package/templates/marketing/payload/src/collections/Pages/index.ts +168 -0
- package/templates/marketing/payload/src/collections/Posts/hooks/populateAuthors.ts +41 -0
- package/templates/marketing/payload/src/collections/Posts/hooks/revalidatePost.ts +44 -0
- package/templates/marketing/payload/src/collections/Posts/index.ts +259 -0
- package/templates/marketing/payload/src/collections/Users/index.ts +26 -0
- package/templates/marketing/payload/src/components/AdminBar/index.scss +7 -0
- package/templates/marketing/payload/src/components/AdminBar/index.tsx +89 -0
- package/templates/marketing/payload/src/components/Analytics/CTATracker.tsx +33 -0
- package/templates/marketing/payload/src/components/Analytics/FeatureSectionTracker.tsx +47 -0
- package/templates/marketing/payload/src/components/Analytics/PricingViewTracker.tsx +46 -0
- package/templates/marketing/payload/src/components/Analytics/index.tsx +3 -0
- package/templates/marketing/payload/src/components/BeforeDashboard/SeedButton/index.tsx +89 -0
- package/templates/marketing/payload/src/components/BeforeDashboard/index.tsx +69 -0
- package/templates/marketing/payload/src/components/BeforeLogin/index.tsx +14 -0
- package/templates/marketing/payload/src/components/BlogCTA/index.tsx +77 -0
- package/templates/marketing/payload/src/components/Card/index.tsx +85 -0
- package/templates/marketing/payload/src/components/CollectionArchive/index.tsx +32 -0
- package/templates/marketing/payload/src/components/JsonLd/index.tsx +138 -0
- package/templates/marketing/payload/src/components/Link/index.tsx +66 -0
- package/templates/marketing/payload/src/components/LivePreviewListener/index.tsx +10 -0
- package/templates/marketing/payload/src/components/Logo/Logo.tsx +46 -0
- package/templates/marketing/payload/src/components/Media/ImageMedia/index.tsx +80 -0
- package/templates/marketing/payload/src/components/Media/VideoMedia/index.tsx +47 -0
- package/templates/marketing/payload/src/components/Media/index.tsx +26 -0
- package/templates/marketing/payload/src/components/Media/types.ts +22 -0
- package/templates/marketing/payload/src/components/PageRange/index.tsx +57 -0
- package/templates/marketing/payload/src/components/Pagination/index.tsx +101 -0
- package/templates/marketing/payload/src/components/PayloadRedirects/index.tsx +48 -0
- package/templates/marketing/payload/src/components/RichText/index.tsx +152 -0
- package/templates/marketing/payload/src/components/TableOfContents/index.tsx +128 -0
- package/templates/marketing/payload/src/components/ui/accordion.tsx +64 -0
- package/templates/marketing/payload/src/components/ui/button.tsx +52 -0
- package/templates/marketing/payload/src/components/ui/card.tsx +48 -0
- package/templates/marketing/payload/src/components/ui/checkbox.tsx +27 -0
- package/templates/marketing/payload/src/components/ui/input.tsx +22 -0
- package/templates/marketing/payload/src/components/ui/label.tsx +19 -0
- package/templates/marketing/payload/src/components/ui/pagination.tsx +92 -0
- package/templates/marketing/payload/src/components/ui/select.tsx +144 -0
- package/templates/marketing/payload/src/components/ui/textarea.tsx +21 -0
- package/templates/marketing/payload/src/endpoints/seed/contact-form.ts +111 -0
- package/templates/marketing/payload/src/endpoints/seed/contact-page.ts +56 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/about.ts +281 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/faqs.ts +224 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/automation.ts +229 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/custom-fields.ts +229 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/dashboard.ts +228 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/index.ts +6 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/monetization.ts +230 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/seo.ts +229 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/templates.ts +218 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/home.ts +555 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/index.ts +767 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/posts.ts +623 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/pricing.ts +251 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/privacy.ts +457 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/richtext-helper.ts +88 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/terms.ts +478 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/use-cases/b2b-vendor-hubs.ts +229 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/use-cases/communities.ts +230 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/use-cases/index.ts +4 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/use-cases/local-services.ts +230 -0
- package/templates/marketing/payload/src/endpoints/seed/directoryhub/use-cases/marketplaces.ts +230 -0
- package/templates/marketing/payload/src/endpoints/seed/home-static.ts +691 -0
- package/templates/marketing/payload/src/endpoints/seed/home.ts +675 -0
- package/templates/marketing/payload/src/endpoints/seed/image-1.ts +67 -0
- package/templates/marketing/payload/src/endpoints/seed/image-2.ts +67 -0
- package/templates/marketing/payload/src/endpoints/seed/image-3.ts +67 -0
- package/templates/marketing/payload/src/endpoints/seed/image-hero-1.ts +5 -0
- package/templates/marketing/payload/src/endpoints/seed/image-hero1.webp +0 -0
- package/templates/marketing/payload/src/endpoints/seed/image-post1.webp +0 -0
- package/templates/marketing/payload/src/endpoints/seed/image-post2.webp +0 -0
- package/templates/marketing/payload/src/endpoints/seed/image-post3.webp +0 -0
- package/templates/marketing/payload/src/endpoints/seed/index.ts +335 -0
- package/templates/marketing/payload/src/endpoints/seed/post-1.ts +315 -0
- package/templates/marketing/payload/src/endpoints/seed/post-2.ts +232 -0
- package/templates/marketing/payload/src/endpoints/seed/post-3.ts +268 -0
- package/templates/marketing/payload/src/fields/defaultLexical.ts +73 -0
- package/templates/marketing/payload/src/fields/link.ts +139 -0
- package/templates/marketing/payload/src/fields/linkGroup.ts +28 -0
- package/templates/marketing/payload/src/heros/HighImpact/index.tsx +56 -0
- package/templates/marketing/payload/src/heros/LowImpact/index.tsx +48 -0
- package/templates/marketing/payload/src/heros/MediumImpact/index.tsx +50 -0
- package/templates/marketing/payload/src/heros/PostHero/index.tsx +73 -0
- package/templates/marketing/payload/src/heros/ProductShowcase/AnimatedMockup.tsx +241 -0
- package/templates/marketing/payload/src/heros/ProductShowcase/index.tsx +108 -0
- package/templates/marketing/payload/src/heros/{RenderHero.tsx.hbs → RenderHero.tsx} +9 -9
- package/templates/marketing/payload/src/heros/config.ts +121 -0
- package/templates/marketing/payload/src/hooks/populatePublishedAt.ts +15 -0
- package/templates/marketing/payload/src/hooks/{revalidateRedirects.ts.hbs → revalidateRedirects.ts} +3 -3
- package/templates/marketing/payload/src/lib/convex.ts +13 -0
- package/templates/marketing/payload/src/lib/docs-source.ts +138 -0
- package/templates/marketing/payload/src/lib/mdx.tsx +191 -0
- package/templates/marketing/payload/src/payload.config.ts.hbs +95 -145
- package/templates/marketing/payload/src/plugins/index.ts +107 -0
- package/templates/marketing/payload/src/providers/HeaderTheme/index.tsx +34 -0
- package/templates/marketing/payload/src/providers/PostHogProvider.tsx +33 -0
- package/templates/marketing/payload/src/providers/Theme/InitTheme/{index.tsx.hbs → index.tsx} +11 -10
- package/templates/marketing/payload/src/providers/Theme/ThemeSelector/index.tsx +133 -0
- package/templates/marketing/payload/src/providers/Theme/ThemeSelector/types.ts +7 -0
- package/templates/marketing/payload/src/providers/Theme/index.tsx +60 -0
- package/templates/marketing/payload/src/providers/Theme/shared.ts +17 -0
- package/templates/marketing/payload/src/providers/Theme/{types.ts.hbs → types.ts} +3 -3
- package/templates/marketing/payload/src/providers/index.tsx +17 -0
- package/templates/marketing/payload/src/search/Component.tsx +42 -0
- package/templates/marketing/payload/src/search/beforeSync.ts +56 -0
- package/templates/marketing/payload/src/search/fieldOverrides.ts +61 -0
- package/templates/marketing/payload/src/utilities/deepMerge.ts +35 -0
- package/templates/marketing/payload/src/utilities/extractHeadings.ts +78 -0
- package/templates/marketing/payload/src/utilities/formatAuthors.ts +24 -0
- package/templates/marketing/payload/src/utilities/formatDateTime.ts +20 -0
- package/templates/marketing/payload/src/utilities/generateMeta.ts +93 -0
- package/templates/marketing/payload/src/utilities/generatePreviewPath.ts +33 -0
- package/templates/marketing/payload/src/utilities/getDocument.ts +32 -0
- package/templates/marketing/payload/src/utilities/getGlobals.ts +26 -0
- package/templates/marketing/payload/src/utilities/getMeUser.ts +43 -0
- package/templates/marketing/payload/src/utilities/getMediaUrl.ts +24 -0
- package/templates/marketing/payload/src/utilities/getRedirects.ts +26 -0
- package/templates/marketing/payload/src/utilities/getURL.ts +26 -0
- package/templates/marketing/payload/src/utilities/mergeOpenGraph.ts +26 -0
- package/templates/marketing/payload/src/utilities/toKebabCase.ts +5 -0
- package/templates/marketing/payload/src/utilities/ui.ts +12 -0
- package/templates/marketing/payload/src/utilities/useClickableCard.ts +108 -0
- package/templates/marketing/payload/src/utilities/useDebounce.ts +17 -0
- package/templates/packages/ui/src/components/button.tsx.hbs +53 -0
- package/templates/packages/ui/src/components/card.tsx.hbs +76 -0
- package/templates/packages/ui/src/components/separator.tsx.hbs +26 -0
- package/templates/marketing/payload/src/Footer/config.ts.hbs +0 -178
- package/templates/marketing/payload/src/Footer/index.ts.hbs +0 -1
- package/templates/marketing/payload/src/Header/RowLabel.tsx.hbs +0 -21
- package/templates/marketing/payload/src/Header/config.ts.hbs +0 -208
- package/templates/marketing/payload/src/Header/index.ts.hbs +0 -1
- package/templates/marketing/payload/src/access/index.ts.hbs +0 -3
- package/templates/marketing/payload/src/app/(frontend)/layout.tsx.hbs +0 -19
- package/templates/marketing/payload/src/app/(frontend)/next/seed/route.ts.hbs +0 -31
- package/templates/marketing/payload/src/app/(frontend)/page.tsx.hbs +0 -83
- package/templates/marketing/payload/src/app/(payload)/admin/[[...segments]]/not-found.tsx.hbs +0 -24
- package/templates/marketing/payload/src/app/(payload)/admin/[[...segments]]/page.tsx.hbs +0 -24
- package/templates/marketing/payload/src/app/(payload)/admin/importMap.js.hbs +0 -1
- package/templates/marketing/payload/src/app/(payload)/custom.scss.hbs +0 -1
- package/templates/marketing/payload/src/app/(payload)/layout.tsx.hbs +0 -31
- package/templates/marketing/payload/src/app/globals.css.hbs +0 -83
- package/templates/marketing/payload/src/app/layout.tsx.hbs +0 -10
- package/templates/marketing/payload/src/blocks/Benefits.ts.hbs +0 -34
- package/templates/marketing/payload/src/blocks/CTA.ts.hbs +0 -39
- package/templates/marketing/payload/src/blocks/Content.ts.hbs +0 -9
- package/templates/marketing/payload/src/blocks/FAQ.ts.hbs +0 -18
- package/templates/marketing/payload/src/blocks/Features.ts.hbs +0 -34
- package/templates/marketing/payload/src/blocks/Hero.ts.hbs +0 -40
- package/templates/marketing/payload/src/blocks/LogoBanner.ts.hbs +0 -17
- package/templates/marketing/payload/src/blocks/Pricing.ts.hbs +0 -37
- package/templates/marketing/payload/src/blocks/Testimonials.ts.hbs +0 -21
- package/templates/marketing/payload/src/blocks/index.ts.hbs +0 -9
- package/templates/marketing/payload/src/collections/Categories/index.ts.hbs +0 -28
- package/templates/marketing/payload/src/collections/FAQs/index.ts.hbs +0 -100
- package/templates/marketing/payload/src/collections/Media.ts.hbs +0 -164
- package/templates/marketing/payload/src/collections/Pages/hooks/revalidatePage.ts.hbs +0 -43
- package/templates/marketing/payload/src/collections/Pages/index.ts.hbs +0 -142
- package/templates/marketing/payload/src/collections/Posts/hooks/populateAuthors.ts.hbs +0 -41
- package/templates/marketing/payload/src/collections/Posts/hooks/revalidatePost.ts.hbs +0 -44
- package/templates/marketing/payload/src/collections/Posts/index.ts.hbs +0 -244
- package/templates/marketing/payload/src/collections/Users/index.ts.hbs +0 -26
- package/templates/marketing/payload/src/collections/index.ts.hbs +0 -6
- package/templates/marketing/payload/src/components/BeforeDashboard/SeedButton/index.tsx.hbs +0 -89
- package/templates/marketing/payload/src/components/BeforeDashboard/index.tsx.hbs +0 -69
- package/templates/marketing/payload/src/components/BeforeLogin/index.tsx.hbs +0 -14
- package/templates/marketing/payload/src/components/Link/index.tsx.hbs +0 -79
- package/templates/marketing/payload/src/components/Media/index.tsx.hbs +0 -67
- package/templates/marketing/payload/src/components/RichText/index.tsx.hbs +0 -44
- package/templates/marketing/payload/src/endpoints/seed/home.ts.hbs +0 -76
- package/templates/marketing/payload/src/endpoints/seed/image-1.ts.hbs +0 -5
- package/templates/marketing/payload/src/endpoints/seed/image-2.ts.hbs +0 -5
- package/templates/marketing/payload/src/endpoints/seed/image-hero.ts.hbs +0 -5
- package/templates/marketing/payload/src/endpoints/seed/index.ts.hbs +0 -235
- package/templates/marketing/payload/src/endpoints/seed/post-1.ts.hbs +0 -252
- package/templates/marketing/payload/src/fields/defaultLexical.ts.hbs +0 -73
- package/templates/marketing/payload/src/fields/link.ts.hbs +0 -139
- package/templates/marketing/payload/src/fields/linkGroup.ts.hbs +0 -28
- package/templates/marketing/payload/src/globals/index.ts.hbs +0 -2
- package/templates/marketing/payload/src/heros/HighImpact/index.tsx.hbs +0 -53
- package/templates/marketing/payload/src/heros/LowImpact/index.tsx.hbs +0 -48
- package/templates/marketing/payload/src/heros/MediumImpact/index.tsx.hbs +0 -46
- package/templates/marketing/payload/src/heros/PostHero/index.tsx.hbs +0 -68
- package/templates/marketing/payload/src/heros/ProductShowcase/index.tsx.hbs +0 -88
- package/templates/marketing/payload/src/heros/config.ts.hbs +0 -112
- package/templates/marketing/payload/src/heros/index.ts.hbs +0 -7
- package/templates/marketing/payload/src/hooks/index.ts.hbs +0 -2
- package/templates/marketing/payload/src/hooks/populatePublishedAt.ts.hbs +0 -15
- package/templates/marketing/payload/src/providers/HeaderTheme/index.tsx.hbs +0 -34
- package/templates/marketing/payload/src/providers/Theme/index.tsx.hbs +0 -60
- package/templates/marketing/payload/src/providers/Theme/shared.ts.hbs +0 -17
- package/templates/marketing/payload/src/providers/index.tsx.hbs +0 -18
- package/templates/marketing/payload/src/utilities/deepMerge.ts.hbs +0 -35
- package/templates/marketing/payload/src/utilities/formatAuthors.ts.hbs +0 -24
- package/templates/marketing/payload/src/utilities/formatDateTime.ts.hbs +0 -13
- package/templates/marketing/payload/src/utilities/generateMeta.ts.hbs +0 -87
- package/templates/marketing/payload/src/utilities/generatePreviewPath.ts.hbs +0 -33
- package/templates/marketing/payload/src/utilities/getURL.ts.hbs +0 -26
- package/templates/marketing/payload/src/utilities/index.ts.hbs +0 -8
- package/templates/marketing/payload/src/utilities/mergeOpenGraph.ts.hbs +0 -26
- /package/templates/marketing/payload/src/access/{anyone.ts.hbs → anyone.ts} +0 -0
- /package/templates/marketing/payload/src/components/BeforeDashboard/SeedButton/{index.scss.hbs → index.scss} +0 -0
- /package/templates/marketing/payload/src/components/BeforeDashboard/{index.scss.hbs → index.scss} +0 -0
- /package/templates/marketing/payload/src/fields/{index.ts.hbs → index.ts} +0 -0
- /package/templates/marketing/payload/src/utilities/{canUseDOM.ts.hbs → canUseDOM.ts} +0 -0
|
@@ -0,0 +1,555 @@
|
|
|
1
|
+
import type { Media, Page } from "@/payload-types"
|
|
2
|
+
import { createParagraph } from "./richtext-helper"
|
|
3
|
+
|
|
4
|
+
interface HomePageParams {
|
|
5
|
+
heroImage?: Media | null
|
|
6
|
+
testimonialImages?: (Media | null)[]
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const directoryHubHome = ({
|
|
10
|
+
heroImage,
|
|
11
|
+
testimonialImages = [],
|
|
12
|
+
}: HomePageParams = {}): Partial<Page> => {
|
|
13
|
+
return {
|
|
14
|
+
slug: "home",
|
|
15
|
+
_status: "published",
|
|
16
|
+
hero: {
|
|
17
|
+
type: "productShowcase",
|
|
18
|
+
// Include media reference if heroImage was uploaded
|
|
19
|
+
...(heroImage && { media: heroImage.id }),
|
|
20
|
+
richText: {
|
|
21
|
+
root: {
|
|
22
|
+
type: "root",
|
|
23
|
+
children: [
|
|
24
|
+
{
|
|
25
|
+
type: "heading",
|
|
26
|
+
children: [
|
|
27
|
+
{
|
|
28
|
+
type: "text",
|
|
29
|
+
detail: 0,
|
|
30
|
+
format: 0,
|
|
31
|
+
mode: "normal",
|
|
32
|
+
style: "",
|
|
33
|
+
text: "Launch, monetize, and scale directories fast",
|
|
34
|
+
version: 1,
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
direction: "ltr",
|
|
38
|
+
format: "",
|
|
39
|
+
indent: 0,
|
|
40
|
+
tag: "h1",
|
|
41
|
+
version: 1,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
type: "paragraph",
|
|
45
|
+
children: [
|
|
46
|
+
{
|
|
47
|
+
type: "text",
|
|
48
|
+
detail: 0,
|
|
49
|
+
format: 0,
|
|
50
|
+
mode: "normal",
|
|
51
|
+
style: "",
|
|
52
|
+
text: "The platform that accelerates directory launches, automates operations, and grows revenue.",
|
|
53
|
+
version: 1,
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
direction: "ltr",
|
|
57
|
+
format: "",
|
|
58
|
+
indent: 0,
|
|
59
|
+
textFormat: 0,
|
|
60
|
+
version: 1,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
direction: "ltr",
|
|
64
|
+
format: "",
|
|
65
|
+
indent: 0,
|
|
66
|
+
version: 1,
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
links: [
|
|
70
|
+
{
|
|
71
|
+
link: {
|
|
72
|
+
type: "custom",
|
|
73
|
+
appearance: "default",
|
|
74
|
+
label: "Get started",
|
|
75
|
+
url: "/sign-up",
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
link: {
|
|
80
|
+
type: "custom",
|
|
81
|
+
appearance: "outline",
|
|
82
|
+
label: "View templates",
|
|
83
|
+
url: "/templates",
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
layout: [
|
|
89
|
+
// 1. Logo Banner - Social proof strip (KEEP)
|
|
90
|
+
{
|
|
91
|
+
blockType: "logoBanner",
|
|
92
|
+
blockName: "Trusted By",
|
|
93
|
+
heading: "Built for businesses where directories matter",
|
|
94
|
+
style: "scroll",
|
|
95
|
+
logos: [
|
|
96
|
+
{ name: "Northwind Market" },
|
|
97
|
+
{ name: "Acme Listings" },
|
|
98
|
+
{ name: "Evergreen HQ" },
|
|
99
|
+
{ name: "Atlas Network" },
|
|
100
|
+
{ name: "Beacon Partners" },
|
|
101
|
+
{ name: "Cascade Labs" },
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
// 2. Value Proposition - Bird-style headline section
|
|
106
|
+
{
|
|
107
|
+
blockType: "proofBanner",
|
|
108
|
+
blockName: "Value Proposition",
|
|
109
|
+
style: "centered",
|
|
110
|
+
headline: "Turn your niche expertise into a revenue-generating directory",
|
|
111
|
+
subtext:
|
|
112
|
+
"Every interaction feeds into a powerful platform that powers personalized experiences, targeted discovery, and intelligent automation across every touchpoint.",
|
|
113
|
+
links: [
|
|
114
|
+
{
|
|
115
|
+
link: {
|
|
116
|
+
type: "custom",
|
|
117
|
+
appearance: "default",
|
|
118
|
+
label: "Start for free",
|
|
119
|
+
url: "/sign-up",
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
link: {
|
|
124
|
+
type: "custom",
|
|
125
|
+
appearance: "outline",
|
|
126
|
+
label: "Book a demo",
|
|
127
|
+
url: "/contact",
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
|
|
133
|
+
// 3. Bento Features - Asymmetric bento grid with 8 cards
|
|
134
|
+
{
|
|
135
|
+
blockType: "bentoFeatures",
|
|
136
|
+
blockName: "Get to know DirectoryHub",
|
|
137
|
+
heading: "Get to know DirectoryHub",
|
|
138
|
+
subheading: "Everything you need to launch and monetize directories",
|
|
139
|
+
features: [
|
|
140
|
+
// Position 1: Small (1x1) - top left
|
|
141
|
+
{
|
|
142
|
+
size: "small",
|
|
143
|
+
style: "gradient",
|
|
144
|
+
icon: "zap",
|
|
145
|
+
stat: "5x",
|
|
146
|
+
title: "Faster launches",
|
|
147
|
+
description: createParagraph("Launch your directory in days, not months."),
|
|
148
|
+
},
|
|
149
|
+
// Position 2: Small (1x1) - top middle
|
|
150
|
+
{
|
|
151
|
+
size: "small",
|
|
152
|
+
style: "accent",
|
|
153
|
+
icon: "rocket",
|
|
154
|
+
title: "Go live quickly",
|
|
155
|
+
description: createParagraph("Pick a template, customize your brand, and publish."),
|
|
156
|
+
},
|
|
157
|
+
// Position 3: Small (1x1) - top right
|
|
158
|
+
{
|
|
159
|
+
size: "small",
|
|
160
|
+
style: "default",
|
|
161
|
+
icon: "dollarSign",
|
|
162
|
+
title: "Monetize instantly",
|
|
163
|
+
description: createParagraph("Stripe payments and subscription tiers built-in."),
|
|
164
|
+
},
|
|
165
|
+
// Position 4: Tall (1x2) - left side spanning 2 rows
|
|
166
|
+
{
|
|
167
|
+
size: "tall",
|
|
168
|
+
style: "primary",
|
|
169
|
+
icon: "shield",
|
|
170
|
+
title: "Enterprise security",
|
|
171
|
+
description: createParagraph(
|
|
172
|
+
"Per-tenant isolation, encrypted data, and complete audit trails for peace of mind.",
|
|
173
|
+
),
|
|
174
|
+
},
|
|
175
|
+
// Position 5: Small (1x1) - row 2, middle
|
|
176
|
+
{
|
|
177
|
+
size: "small",
|
|
178
|
+
style: "default",
|
|
179
|
+
icon: "search",
|
|
180
|
+
stat: "100%",
|
|
181
|
+
title: "SEO ready",
|
|
182
|
+
description: createParagraph("Schema markup and sitemaps generated automatically."),
|
|
183
|
+
},
|
|
184
|
+
// Position 6: Small (1x1) - row 2, right
|
|
185
|
+
{
|
|
186
|
+
size: "small",
|
|
187
|
+
style: "default",
|
|
188
|
+
icon: "globe",
|
|
189
|
+
title: "Global scale",
|
|
190
|
+
description: createParagraph("Multi-tenant with custom domains."),
|
|
191
|
+
},
|
|
192
|
+
// Position 7: Small (1x1) - row 3, middle
|
|
193
|
+
{
|
|
194
|
+
size: "small",
|
|
195
|
+
style: "default",
|
|
196
|
+
icon: "settings",
|
|
197
|
+
title: "Smart automation",
|
|
198
|
+
description: createParagraph("Automated workflows and moderation."),
|
|
199
|
+
},
|
|
200
|
+
// Position 8: Small (1x1) - row 3, right
|
|
201
|
+
{
|
|
202
|
+
size: "small",
|
|
203
|
+
style: "default",
|
|
204
|
+
icon: "layers",
|
|
205
|
+
title: "Custom fields",
|
|
206
|
+
description: createParagraph("Flexible schemas for any directory type."),
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
|
|
211
|
+
// 4. Feature Showcase: Templates (image right)
|
|
212
|
+
{
|
|
213
|
+
blockType: "featureShowcase",
|
|
214
|
+
blockName: "Feature: Templates",
|
|
215
|
+
label: "Directory Templates",
|
|
216
|
+
headline: "Go from idea to live directory in a weekend",
|
|
217
|
+
description: createParagraph(
|
|
218
|
+
"High-converting directory templates designed for every niche. Benefit from schema pre-fills, dynamic UI, smart search, and intelligent optimizations that drive engagement.",
|
|
219
|
+
),
|
|
220
|
+
link: {
|
|
221
|
+
type: "custom",
|
|
222
|
+
label: "Explore templates",
|
|
223
|
+
url: "/templates",
|
|
224
|
+
appearance: "default",
|
|
225
|
+
},
|
|
226
|
+
imagePosition: "right",
|
|
227
|
+
features: [
|
|
228
|
+
{ text: "10+ ready-to-use templates" },
|
|
229
|
+
{ text: "Custom domain in minutes" },
|
|
230
|
+
{ text: "Mobile-first responsive design" },
|
|
231
|
+
{ text: "Deep localization support" },
|
|
232
|
+
],
|
|
233
|
+
},
|
|
234
|
+
|
|
235
|
+
// 5. Feature Showcase: Monetization (image left)
|
|
236
|
+
{
|
|
237
|
+
blockType: "featureShowcase",
|
|
238
|
+
blockName: "Feature: Monetization",
|
|
239
|
+
label: "Revenue Engine",
|
|
240
|
+
headline: "Drive revenue with built-in monetization",
|
|
241
|
+
description: createParagraph(
|
|
242
|
+
"Stop leaving money on the table. Charge for listings, offer premium placements, and run subscription tiers without writing a line of payment code. Automated invoicing and tax handling included.",
|
|
243
|
+
),
|
|
244
|
+
link: {
|
|
245
|
+
type: "custom",
|
|
246
|
+
label: "Learn about monetization",
|
|
247
|
+
url: "/pricing",
|
|
248
|
+
appearance: "default",
|
|
249
|
+
},
|
|
250
|
+
imagePosition: "left",
|
|
251
|
+
features: [
|
|
252
|
+
{ text: "Subscription tiers" },
|
|
253
|
+
{ text: "Featured placements" },
|
|
254
|
+
{ text: "Pay-per-listing options" },
|
|
255
|
+
{ text: "Automated payouts" },
|
|
256
|
+
],
|
|
257
|
+
},
|
|
258
|
+
|
|
259
|
+
// 6. Feature Showcase: SEO (image right)
|
|
260
|
+
{
|
|
261
|
+
blockType: "featureShowcase",
|
|
262
|
+
blockName: "Feature: SEO",
|
|
263
|
+
label: "Search Optimization",
|
|
264
|
+
headline: "Rank on page one without the technical overhead",
|
|
265
|
+
description: createParagraph(
|
|
266
|
+
"Every directory comes with enterprise-grade SEO built-in. Structured data, dynamic sitemaps, and optimized meta tags ensure your listings get discovered by the right audience.",
|
|
267
|
+
),
|
|
268
|
+
link: {
|
|
269
|
+
type: "custom",
|
|
270
|
+
label: "See SEO features",
|
|
271
|
+
url: "/features",
|
|
272
|
+
appearance: "default",
|
|
273
|
+
},
|
|
274
|
+
imagePosition: "right",
|
|
275
|
+
features: [
|
|
276
|
+
{ text: "Automatic schema markup" },
|
|
277
|
+
{ text: "Dynamic XML sitemaps" },
|
|
278
|
+
{ text: "SEO-friendly URLs" },
|
|
279
|
+
{ text: "Social sharing optimization" },
|
|
280
|
+
],
|
|
281
|
+
},
|
|
282
|
+
|
|
283
|
+
// 7. Feature Showcase: Management (image left)
|
|
284
|
+
{
|
|
285
|
+
blockType: "featureShowcase",
|
|
286
|
+
blockName: "Feature: Management",
|
|
287
|
+
label: "Admin Dashboard",
|
|
288
|
+
headline: "Manage everything from one powerful dashboard",
|
|
289
|
+
description: createParagraph(
|
|
290
|
+
"Review submissions, moderate content, track analytics, and manage payments all in one place. Built-in tools help you maintain quality while scaling your directory business.",
|
|
291
|
+
),
|
|
292
|
+
link: {
|
|
293
|
+
type: "custom",
|
|
294
|
+
label: "Explore dashboard",
|
|
295
|
+
url: "/features",
|
|
296
|
+
appearance: "default",
|
|
297
|
+
},
|
|
298
|
+
imagePosition: "left",
|
|
299
|
+
features: [
|
|
300
|
+
{ text: "Submission review queues" },
|
|
301
|
+
{ text: "Bulk moderation tools" },
|
|
302
|
+
{ text: "Real-time analytics" },
|
|
303
|
+
{ text: "User management" },
|
|
304
|
+
],
|
|
305
|
+
},
|
|
306
|
+
|
|
307
|
+
// 8. Industry Tabs - Bird-style tabbed use cases
|
|
308
|
+
{
|
|
309
|
+
blockType: "industryTabs",
|
|
310
|
+
blockName: "Use Cases",
|
|
311
|
+
heading: "Directories that turn data into intelligent experiences",
|
|
312
|
+
subheading:
|
|
313
|
+
"Whether you are building for local services or global marketplaces, DirectoryHub adapts to your model.",
|
|
314
|
+
tabs: [
|
|
315
|
+
{
|
|
316
|
+
name: "Local Services",
|
|
317
|
+
stat: "340%",
|
|
318
|
+
statLabel: "Higher conversion with location-based discovery",
|
|
319
|
+
description:
|
|
320
|
+
"Plumbers, photographers, restaurants. Card grids with reviews, maps, and geo-filtering that help customers find exactly what they need.",
|
|
321
|
+
link: {
|
|
322
|
+
type: "custom",
|
|
323
|
+
label: "Local directory solutions",
|
|
324
|
+
url: "/templates",
|
|
325
|
+
appearance: "default",
|
|
326
|
+
},
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
name: "B2B Vendor Hubs",
|
|
330
|
+
stat: "94%",
|
|
331
|
+
statLabel: "Faster vendor onboarding with smart filters",
|
|
332
|
+
description:
|
|
333
|
+
"SaaS tools, agencies, consultants. Advanced filters, comparison views, and lead capture that convert browsers into buyers.",
|
|
334
|
+
link: {
|
|
335
|
+
type: "custom",
|
|
336
|
+
label: "B2B directory solutions",
|
|
337
|
+
url: "/templates",
|
|
338
|
+
appearance: "default",
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
name: "Communities",
|
|
343
|
+
stat: "+12K",
|
|
344
|
+
statLabel: "Members connected through curated networks",
|
|
345
|
+
description:
|
|
346
|
+
"Member directories, alumni networks, professional associations with gated access and rich member profiles.",
|
|
347
|
+
link: {
|
|
348
|
+
type: "custom",
|
|
349
|
+
label: "Community solutions",
|
|
350
|
+
url: "/templates",
|
|
351
|
+
appearance: "default",
|
|
352
|
+
},
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
name: "Marketplaces",
|
|
356
|
+
stat: "$2M+",
|
|
357
|
+
statLabel: "Revenue processed through integrated payments",
|
|
358
|
+
description:
|
|
359
|
+
"Multi-vendor search, featured slots, automated payouts to sellers. Everything you need to run a thriving marketplace.",
|
|
360
|
+
link: {
|
|
361
|
+
type: "custom",
|
|
362
|
+
label: "Marketplace solutions",
|
|
363
|
+
url: "/templates",
|
|
364
|
+
appearance: "default",
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
],
|
|
368
|
+
},
|
|
369
|
+
|
|
370
|
+
// 9. Testimonials Grid - Bird-style stats with photos
|
|
371
|
+
{
|
|
372
|
+
blockType: "testimonialsGrid",
|
|
373
|
+
blockName: "Customer Stories",
|
|
374
|
+
heading: "Trusted by founders who depend on their directories",
|
|
375
|
+
subheading:
|
|
376
|
+
"See how leading directory builders use DirectoryHub to drive intelligent growth.",
|
|
377
|
+
testimonials: [
|
|
378
|
+
{
|
|
379
|
+
...(testimonialImages[0] && { image: testimonialImages[0].id }),
|
|
380
|
+
stat: "94%",
|
|
381
|
+
statLabel: "Faster launch time",
|
|
382
|
+
quote:
|
|
383
|
+
"We went from idea to collecting payments in 3 days. The templates and Stripe integration saved us months of development time.",
|
|
384
|
+
author: "Sarah Chen",
|
|
385
|
+
company: "Northwind Market",
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
...(testimonialImages[1] && { image: testimonialImages[1].id }),
|
|
389
|
+
stat: "+300%",
|
|
390
|
+
statLabel: "Traffic growth",
|
|
391
|
+
quote:
|
|
392
|
+
"Our niche directory started ranking on page 1 within weeks. The structured data and sitemaps are handled automatically.",
|
|
393
|
+
author: "Marcus Rivera",
|
|
394
|
+
company: "Beacon Partners",
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
...(testimonialImages[2] && { image: testimonialImages[2].id }),
|
|
398
|
+
stat: "161%",
|
|
399
|
+
statLabel: "Revenue increase",
|
|
400
|
+
quote:
|
|
401
|
+
"Featured placements and premium tiers covered our costs in the first month. The monetization tools just work.",
|
|
402
|
+
author: "David Kim",
|
|
403
|
+
company: "Cascade Labs",
|
|
404
|
+
},
|
|
405
|
+
],
|
|
406
|
+
},
|
|
407
|
+
|
|
408
|
+
// 10. Trust Columns - Bird-style two-column section
|
|
409
|
+
{
|
|
410
|
+
blockType: "trustColumns",
|
|
411
|
+
blockName: "Trust & Security",
|
|
412
|
+
columns: [
|
|
413
|
+
{
|
|
414
|
+
label: "Integrations",
|
|
415
|
+
heading: "Connect anywhere",
|
|
416
|
+
description:
|
|
417
|
+
"Plug in and get started immediately with pre-built connectors for every major platform.",
|
|
418
|
+
items: [
|
|
419
|
+
{ icon: "zap", text: "Go live in minutes" },
|
|
420
|
+
{ icon: "plug", text: "Pre-built connectors" },
|
|
421
|
+
{ icon: "database", text: "Complete data sync" },
|
|
422
|
+
{ icon: "cloud", text: "Cloud-native infrastructure" },
|
|
423
|
+
],
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
label: "Security & Compliance",
|
|
427
|
+
heading: "Enterprise-level security",
|
|
428
|
+
description:
|
|
429
|
+
"Keep your data private with encryption, granular access control, and compliance-ready infrastructure.",
|
|
430
|
+
items: [
|
|
431
|
+
{ icon: "shield", text: "SOC 2-minded controls" },
|
|
432
|
+
{ icon: "lock", text: "Per-tenant data isolation" },
|
|
433
|
+
{ icon: "award", text: "Complete audit trails" },
|
|
434
|
+
{ icon: "globe", text: "GDPR-ready infrastructure" },
|
|
435
|
+
],
|
|
436
|
+
},
|
|
437
|
+
],
|
|
438
|
+
},
|
|
439
|
+
|
|
440
|
+
// 11. Integrations Banner (KEEP)
|
|
441
|
+
{
|
|
442
|
+
blockType: "logoBanner",
|
|
443
|
+
blockName: "Integrations",
|
|
444
|
+
heading: "Powered by industry-leading technology",
|
|
445
|
+
style: "grid",
|
|
446
|
+
logos: [
|
|
447
|
+
{ name: "Stripe" },
|
|
448
|
+
{ name: "Vercel" },
|
|
449
|
+
{ name: "AWS" },
|
|
450
|
+
{ name: "Google Analytics" },
|
|
451
|
+
{ name: "Zapier" },
|
|
452
|
+
{ name: "Convex" },
|
|
453
|
+
],
|
|
454
|
+
},
|
|
455
|
+
|
|
456
|
+
// 12. Pricing (KEEP)
|
|
457
|
+
{
|
|
458
|
+
blockType: "pricingTable",
|
|
459
|
+
blockName: "Pricing",
|
|
460
|
+
heading: "Simple, transparent pricing",
|
|
461
|
+
subheading: "Start free, upgrade as you grow. No hidden fees.",
|
|
462
|
+
showComparisonTable: false,
|
|
463
|
+
showViewAllLink: true,
|
|
464
|
+
maxFeaturesOnCard: 4,
|
|
465
|
+
plans: [
|
|
466
|
+
{
|
|
467
|
+
name: "Free",
|
|
468
|
+
price: "$0/mo",
|
|
469
|
+
description: "Perfect for getting started.",
|
|
470
|
+
features: [
|
|
471
|
+
{ feature: "1 directory site", included: true },
|
|
472
|
+
{ feature: "Basic customization", included: true },
|
|
473
|
+
{ feature: "Community support", included: true },
|
|
474
|
+
],
|
|
475
|
+
link: {
|
|
476
|
+
type: "custom",
|
|
477
|
+
label: "Get started free",
|
|
478
|
+
url: "/sign-up",
|
|
479
|
+
appearance: "outline",
|
|
480
|
+
},
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
name: "Pro",
|
|
484
|
+
price: "$29/mo",
|
|
485
|
+
description: "For growing businesses.",
|
|
486
|
+
featured: true,
|
|
487
|
+
features: [
|
|
488
|
+
{ feature: "5 directory sites", included: true },
|
|
489
|
+
{ feature: "Advanced customization", included: true },
|
|
490
|
+
{ feature: "Custom domains", included: true },
|
|
491
|
+
{ feature: "Priority support", included: true },
|
|
492
|
+
],
|
|
493
|
+
link: {
|
|
494
|
+
type: "custom",
|
|
495
|
+
label: "Get Pro",
|
|
496
|
+
url: "/sign-up",
|
|
497
|
+
appearance: "default",
|
|
498
|
+
},
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
name: "Business",
|
|
502
|
+
price: "$99/mo",
|
|
503
|
+
description: "For teams and agencies.",
|
|
504
|
+
features: [
|
|
505
|
+
{ feature: "Unlimited directory sites", included: true },
|
|
506
|
+
{ feature: "White-label branding", included: true },
|
|
507
|
+
{ feature: "API access", included: true },
|
|
508
|
+
{ feature: "Dedicated support", included: true },
|
|
509
|
+
],
|
|
510
|
+
link: {
|
|
511
|
+
type: "custom",
|
|
512
|
+
label: "Get Business",
|
|
513
|
+
url: "/sign-up",
|
|
514
|
+
appearance: "outline",
|
|
515
|
+
},
|
|
516
|
+
},
|
|
517
|
+
],
|
|
518
|
+
},
|
|
519
|
+
|
|
520
|
+
// 13. Final CTA - Bird-style full-width with background
|
|
521
|
+
{
|
|
522
|
+
blockType: "finalCta",
|
|
523
|
+
blockName: "Final CTA",
|
|
524
|
+
headline: "The complete platform that scales with your directory business",
|
|
525
|
+
subheading:
|
|
526
|
+
"Join hundreds of founders who chose the faster path to a profitable directory business. Start free, upgrade as you grow.",
|
|
527
|
+
style: "dark",
|
|
528
|
+
links: [
|
|
529
|
+
{
|
|
530
|
+
link: {
|
|
531
|
+
type: "custom",
|
|
532
|
+
appearance: "outline",
|
|
533
|
+
label: "Get started",
|
|
534
|
+
url: "/sign-up",
|
|
535
|
+
},
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
link: {
|
|
539
|
+
type: "custom",
|
|
540
|
+
appearance: "default",
|
|
541
|
+
label: "Book a demo",
|
|
542
|
+
url: "/contact",
|
|
543
|
+
},
|
|
544
|
+
},
|
|
545
|
+
],
|
|
546
|
+
},
|
|
547
|
+
],
|
|
548
|
+
meta: {
|
|
549
|
+
description:
|
|
550
|
+
"Launch a profitable directory business in minutes with built-in payments, SEO, and automation. Free to start.",
|
|
551
|
+
title: "DirectoryHub — Launch revenue-first directories fast",
|
|
552
|
+
},
|
|
553
|
+
title: "Home",
|
|
554
|
+
}
|
|
555
|
+
}
|