kofi-stack-template-generator 2.1.37 → 2.1.39
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 +124 -0
- package/templates/marketing/payload/src/blocks/FeatureGrid/config.ts +120 -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,230 @@
|
|
|
1
|
+
import type { Page } from "@/payload-types"
|
|
2
|
+
import { createParagraph } from "../richtext-helper"
|
|
3
|
+
|
|
4
|
+
export const monetizationPage = (): Partial<Page> => {
|
|
5
|
+
return {
|
|
6
|
+
slug: "features/monetization",
|
|
7
|
+
_status: "published",
|
|
8
|
+
title: "Monetization",
|
|
9
|
+
hero: {
|
|
10
|
+
type: "lowImpact",
|
|
11
|
+
richText: {
|
|
12
|
+
root: {
|
|
13
|
+
type: "root",
|
|
14
|
+
children: [
|
|
15
|
+
{
|
|
16
|
+
type: "heading",
|
|
17
|
+
children: [
|
|
18
|
+
{
|
|
19
|
+
type: "text",
|
|
20
|
+
detail: 0,
|
|
21
|
+
format: 0,
|
|
22
|
+
mode: "normal",
|
|
23
|
+
style: "",
|
|
24
|
+
text: "Turn your directory into a revenue machine",
|
|
25
|
+
version: 1,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
direction: "ltr" as const,
|
|
29
|
+
format: "" as const,
|
|
30
|
+
indent: 0,
|
|
31
|
+
tag: "h1",
|
|
32
|
+
version: 1,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
type: "paragraph",
|
|
36
|
+
children: [
|
|
37
|
+
{
|
|
38
|
+
type: "text",
|
|
39
|
+
detail: 0,
|
|
40
|
+
format: 0,
|
|
41
|
+
mode: "normal",
|
|
42
|
+
style: "",
|
|
43
|
+
text: "Built-in payment processing, subscription management, and premium placements. Start earning from day one without writing payment code.",
|
|
44
|
+
version: 1,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
direction: "ltr" as const,
|
|
48
|
+
format: "" as const,
|
|
49
|
+
indent: 0,
|
|
50
|
+
textFormat: 0,
|
|
51
|
+
version: 1,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
direction: "ltr" as const,
|
|
55
|
+
format: "" as const,
|
|
56
|
+
indent: 0,
|
|
57
|
+
version: 1,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
links: [
|
|
61
|
+
{
|
|
62
|
+
link: {
|
|
63
|
+
type: "custom",
|
|
64
|
+
appearance: "default",
|
|
65
|
+
label: "Start monetizing",
|
|
66
|
+
url: "/sign-up",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
link: {
|
|
71
|
+
type: "custom",
|
|
72
|
+
appearance: "outline",
|
|
73
|
+
label: "See pricing",
|
|
74
|
+
url: "/pricing",
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
layout: [
|
|
80
|
+
{
|
|
81
|
+
blockType: "featureShowcase",
|
|
82
|
+
blockName: "Subscription Tiers",
|
|
83
|
+
label: "Subscription Management",
|
|
84
|
+
headline: "Create recurring revenue with subscription tiers",
|
|
85
|
+
description: createParagraph(
|
|
86
|
+
"Set up multiple subscription tiers with different features and pricing. Let businesses choose the plan that fits their needs while you collect recurring payments automatically.",
|
|
87
|
+
),
|
|
88
|
+
link: {
|
|
89
|
+
type: "custom",
|
|
90
|
+
label: "Learn about subscriptions",
|
|
91
|
+
url: "/pricing",
|
|
92
|
+
appearance: "default",
|
|
93
|
+
},
|
|
94
|
+
imagePosition: "right",
|
|
95
|
+
features: [
|
|
96
|
+
{ text: "Unlimited subscription tiers" },
|
|
97
|
+
{ text: "Annual and monthly billing" },
|
|
98
|
+
{ text: "Free trial periods" },
|
|
99
|
+
{ text: "Automatic renewals" },
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
blockType: "featureShowcase",
|
|
104
|
+
blockName: "Featured Placements",
|
|
105
|
+
label: "Premium Placements",
|
|
106
|
+
headline: "Sell premium visibility",
|
|
107
|
+
description: createParagraph(
|
|
108
|
+
"Offer featured spots, homepage placements, and category highlights. Businesses pay for premium visibility, you collect the revenue. Simple pricing, instant upgrades.",
|
|
109
|
+
),
|
|
110
|
+
link: {
|
|
111
|
+
type: "custom",
|
|
112
|
+
label: "Explore placement options",
|
|
113
|
+
url: "/features",
|
|
114
|
+
appearance: "default",
|
|
115
|
+
},
|
|
116
|
+
imagePosition: "left",
|
|
117
|
+
features: [
|
|
118
|
+
{ text: "Featured listing badges" },
|
|
119
|
+
{ text: "Homepage spotlight sections" },
|
|
120
|
+
{ text: "Category top placements" },
|
|
121
|
+
{ text: "Search result boosting" },
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
blockType: "featureShowcase",
|
|
126
|
+
blockName: "Payment Processing",
|
|
127
|
+
label: "Stripe Integration",
|
|
128
|
+
headline: "Payments powered by Stripe",
|
|
129
|
+
description: createParagraph(
|
|
130
|
+
"Secure payment processing with Stripe handles everything from card payments to invoicing. Accept payments globally with support for 135+ currencies and dozens of payment methods.",
|
|
131
|
+
),
|
|
132
|
+
link: {
|
|
133
|
+
type: "custom",
|
|
134
|
+
label: "View payment options",
|
|
135
|
+
url: "/features",
|
|
136
|
+
appearance: "default",
|
|
137
|
+
},
|
|
138
|
+
imagePosition: "right",
|
|
139
|
+
features: [
|
|
140
|
+
{ text: "Credit cards and digital wallets" },
|
|
141
|
+
{ text: "Automatic invoicing" },
|
|
142
|
+
{ text: "135+ currencies supported" },
|
|
143
|
+
{ text: "PCI compliant security" },
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
blockType: "bentoFeatures",
|
|
148
|
+
blockName: "Revenue Features",
|
|
149
|
+
heading: "Everything you need to generate revenue",
|
|
150
|
+
subheading: "From one-time payments to complex subscription models",
|
|
151
|
+
features: [
|
|
152
|
+
{
|
|
153
|
+
size: "small",
|
|
154
|
+
style: "gradient",
|
|
155
|
+
icon: "dollarSign",
|
|
156
|
+
stat: "$0",
|
|
157
|
+
title: "Setup fees",
|
|
158
|
+
description: createParagraph("Start collecting payments with no upfront costs."),
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
size: "small",
|
|
162
|
+
style: "accent",
|
|
163
|
+
icon: "zap",
|
|
164
|
+
title: "Instant payouts",
|
|
165
|
+
description: createParagraph("Get paid directly to your bank account."),
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
size: "small",
|
|
169
|
+
style: "default",
|
|
170
|
+
icon: "shield",
|
|
171
|
+
title: "Fraud protection",
|
|
172
|
+
description: createParagraph("Built-in fraud detection and prevention."),
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
size: "small",
|
|
176
|
+
style: "primary",
|
|
177
|
+
icon: "barChart",
|
|
178
|
+
title: "Revenue analytics",
|
|
179
|
+
description: createParagraph("Track MRR, churn, and growth metrics."),
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
size: "small",
|
|
183
|
+
style: "default",
|
|
184
|
+
icon: "globe",
|
|
185
|
+
title: "Global payments",
|
|
186
|
+
description: createParagraph("Accept payments from anywhere in the world."),
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
size: "small",
|
|
190
|
+
style: "default",
|
|
191
|
+
icon: "settings",
|
|
192
|
+
title: "Tax handling",
|
|
193
|
+
description: createParagraph("Automatic tax calculation and collection."),
|
|
194
|
+
},
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
blockType: "proofBanner",
|
|
199
|
+
blockName: "CTA Section",
|
|
200
|
+
style: "centered",
|
|
201
|
+
headline: "Start generating revenue today",
|
|
202
|
+
subtext:
|
|
203
|
+
"Connect Stripe in minutes and start accepting payments. No payment code to write.",
|
|
204
|
+
links: [
|
|
205
|
+
{
|
|
206
|
+
link: {
|
|
207
|
+
type: "custom",
|
|
208
|
+
appearance: "default",
|
|
209
|
+
label: "Get started free",
|
|
210
|
+
url: "/sign-up",
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
link: {
|
|
215
|
+
type: "custom",
|
|
216
|
+
appearance: "outline",
|
|
217
|
+
label: "Talk to sales",
|
|
218
|
+
url: "/contact",
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
],
|
|
222
|
+
},
|
|
223
|
+
],
|
|
224
|
+
meta: {
|
|
225
|
+
description:
|
|
226
|
+
"Monetize your directory with built-in payments, subscriptions, and premium placements. Stripe integration, automatic invoicing, and revenue analytics included.",
|
|
227
|
+
title: "Monetization Features — DirectoryHub Revenue Tools",
|
|
228
|
+
},
|
|
229
|
+
}
|
|
230
|
+
}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import type { Page } from "@/payload-types"
|
|
2
|
+
import { createParagraph } from "../richtext-helper"
|
|
3
|
+
|
|
4
|
+
export const seoPage = (): Partial<Page> => {
|
|
5
|
+
return {
|
|
6
|
+
slug: "features/seo",
|
|
7
|
+
_status: "published",
|
|
8
|
+
title: "SEO Optimization",
|
|
9
|
+
hero: {
|
|
10
|
+
type: "lowImpact",
|
|
11
|
+
richText: {
|
|
12
|
+
root: {
|
|
13
|
+
type: "root",
|
|
14
|
+
children: [
|
|
15
|
+
{
|
|
16
|
+
type: "heading",
|
|
17
|
+
children: [
|
|
18
|
+
{
|
|
19
|
+
type: "text",
|
|
20
|
+
detail: 0,
|
|
21
|
+
format: 0,
|
|
22
|
+
mode: "normal",
|
|
23
|
+
style: "",
|
|
24
|
+
text: "Rank on page one without the technical overhead",
|
|
25
|
+
version: 1,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
direction: "ltr" as const,
|
|
29
|
+
format: "" as const,
|
|
30
|
+
indent: 0,
|
|
31
|
+
tag: "h1",
|
|
32
|
+
version: 1,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
type: "paragraph",
|
|
36
|
+
children: [
|
|
37
|
+
{
|
|
38
|
+
type: "text",
|
|
39
|
+
detail: 0,
|
|
40
|
+
format: 0,
|
|
41
|
+
mode: "normal",
|
|
42
|
+
style: "",
|
|
43
|
+
text: "Enterprise-grade SEO built into every directory. Structured data, dynamic sitemaps, and optimized meta tags work automatically so your listings get discovered.",
|
|
44
|
+
version: 1,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
direction: "ltr" as const,
|
|
48
|
+
format: "" as const,
|
|
49
|
+
indent: 0,
|
|
50
|
+
textFormat: 0,
|
|
51
|
+
version: 1,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
direction: "ltr" as const,
|
|
55
|
+
format: "" as const,
|
|
56
|
+
indent: 0,
|
|
57
|
+
version: 1,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
links: [
|
|
61
|
+
{
|
|
62
|
+
link: {
|
|
63
|
+
type: "custom",
|
|
64
|
+
appearance: "default",
|
|
65
|
+
label: "Start ranking",
|
|
66
|
+
url: "/sign-up",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
link: {
|
|
71
|
+
type: "custom",
|
|
72
|
+
appearance: "outline",
|
|
73
|
+
label: "See SEO features",
|
|
74
|
+
url: "/features",
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
layout: [
|
|
80
|
+
{
|
|
81
|
+
blockType: "featureShowcase",
|
|
82
|
+
blockName: "Structured Data",
|
|
83
|
+
label: "Schema Markup",
|
|
84
|
+
headline: "Automatic schema markup for rich results",
|
|
85
|
+
description: createParagraph(
|
|
86
|
+
"Every listing gets proper schema.org markup automatically. Local businesses, organizations, products, and services are all structured for Google's rich results and knowledge panels.",
|
|
87
|
+
),
|
|
88
|
+
link: {
|
|
89
|
+
type: "custom",
|
|
90
|
+
label: "Learn about structured data",
|
|
91
|
+
url: "/features",
|
|
92
|
+
appearance: "default",
|
|
93
|
+
},
|
|
94
|
+
imagePosition: "right",
|
|
95
|
+
features: [
|
|
96
|
+
{ text: "LocalBusiness schema for local directories" },
|
|
97
|
+
{ text: "Organization schema for B2B" },
|
|
98
|
+
{ text: "Product schema for marketplaces" },
|
|
99
|
+
{ text: "Rich snippets in search results" },
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
blockType: "featureShowcase",
|
|
104
|
+
blockName: "Sitemaps",
|
|
105
|
+
label: "Dynamic Sitemaps",
|
|
106
|
+
headline: "Sitemaps that update automatically",
|
|
107
|
+
description: createParagraph(
|
|
108
|
+
"XML sitemaps are generated and updated automatically as listings are added or changed. Google and other search engines always know about your latest content.",
|
|
109
|
+
),
|
|
110
|
+
link: {
|
|
111
|
+
type: "custom",
|
|
112
|
+
label: "Explore sitemap features",
|
|
113
|
+
url: "/features",
|
|
114
|
+
appearance: "default",
|
|
115
|
+
},
|
|
116
|
+
imagePosition: "left",
|
|
117
|
+
features: [
|
|
118
|
+
{ text: "Auto-generated XML sitemaps" },
|
|
119
|
+
{ text: "Real-time updates" },
|
|
120
|
+
{ text: "Priority and frequency hints" },
|
|
121
|
+
{ text: "Automatic search engine ping" },
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
blockType: "featureShowcase",
|
|
126
|
+
blockName: "Meta Tags",
|
|
127
|
+
label: "Meta Optimization",
|
|
128
|
+
headline: "Optimized meta tags for every page",
|
|
129
|
+
description: createParagraph(
|
|
130
|
+
"Custom meta titles, descriptions, and Open Graph tags for every listing and category. Social sharing previews look great and drive more clicks from search and social.",
|
|
131
|
+
),
|
|
132
|
+
link: {
|
|
133
|
+
type: "custom",
|
|
134
|
+
label: "See meta features",
|
|
135
|
+
url: "/features",
|
|
136
|
+
appearance: "default",
|
|
137
|
+
},
|
|
138
|
+
imagePosition: "right",
|
|
139
|
+
features: [
|
|
140
|
+
{ text: "Custom meta titles and descriptions" },
|
|
141
|
+
{ text: "Open Graph tags for social sharing" },
|
|
142
|
+
{ text: "Twitter Card support" },
|
|
143
|
+
{ text: "Canonical URLs to prevent duplicates" },
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
blockType: "bentoFeatures",
|
|
148
|
+
blockName: "SEO Features",
|
|
149
|
+
heading: "Built-in SEO that works",
|
|
150
|
+
subheading: "Technical SEO handled automatically so you can focus on content",
|
|
151
|
+
features: [
|
|
152
|
+
{
|
|
153
|
+
size: "small",
|
|
154
|
+
style: "gradient",
|
|
155
|
+
icon: "search",
|
|
156
|
+
stat: "100%",
|
|
157
|
+
title: "SEO Coverage",
|
|
158
|
+
description: createParagraph("Every page optimized automatically."),
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
size: "small",
|
|
162
|
+
style: "accent",
|
|
163
|
+
icon: "zap",
|
|
164
|
+
title: "Fast Loading",
|
|
165
|
+
description: createParagraph("Core Web Vitals optimized out of the box."),
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
size: "small",
|
|
169
|
+
style: "default",
|
|
170
|
+
icon: "globe",
|
|
171
|
+
title: "Clean URLs",
|
|
172
|
+
description: createParagraph("SEO-friendly URL structure."),
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
size: "small",
|
|
176
|
+
style: "primary",
|
|
177
|
+
icon: "layout",
|
|
178
|
+
title: "Mobile First",
|
|
179
|
+
description: createParagraph("Mobile-optimized for Google's mobile-first indexing."),
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
size: "small",
|
|
183
|
+
style: "default",
|
|
184
|
+
icon: "database",
|
|
185
|
+
title: "Crawl Efficient",
|
|
186
|
+
description: createParagraph("Optimized for search engine crawlers."),
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
size: "small",
|
|
190
|
+
style: "default",
|
|
191
|
+
icon: "barChart",
|
|
192
|
+
title: "Analytics Ready",
|
|
193
|
+
description: createParagraph("Track rankings and organic traffic."),
|
|
194
|
+
},
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
blockType: "proofBanner",
|
|
199
|
+
blockName: "CTA Section",
|
|
200
|
+
style: "centered",
|
|
201
|
+
headline: "Get discovered by the right audience",
|
|
202
|
+
subtext: "Every directory comes with enterprise-grade SEO. No plugins, no configuration.",
|
|
203
|
+
links: [
|
|
204
|
+
{
|
|
205
|
+
link: {
|
|
206
|
+
type: "custom",
|
|
207
|
+
appearance: "default",
|
|
208
|
+
label: "Start for free",
|
|
209
|
+
url: "/sign-up",
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
link: {
|
|
214
|
+
type: "custom",
|
|
215
|
+
appearance: "outline",
|
|
216
|
+
label: "See all features",
|
|
217
|
+
url: "/features",
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
meta: {
|
|
224
|
+
description:
|
|
225
|
+
"Built-in SEO features including automatic schema markup, dynamic sitemaps, and optimized meta tags. Get your directory listings ranking on Google.",
|
|
226
|
+
title: "SEO Features — DirectoryHub Search Optimization",
|
|
227
|
+
},
|
|
228
|
+
}
|
|
229
|
+
}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import type { Page } from "@/payload-types"
|
|
2
|
+
import { createParagraph } from "../richtext-helper"
|
|
3
|
+
|
|
4
|
+
export const templatesPage = (): Partial<Page> => {
|
|
5
|
+
return {
|
|
6
|
+
slug: "features/templates",
|
|
7
|
+
_status: "published",
|
|
8
|
+
title: "Directory Templates",
|
|
9
|
+
hero: {
|
|
10
|
+
type: "lowImpact",
|
|
11
|
+
richText: {
|
|
12
|
+
root: {
|
|
13
|
+
type: "root",
|
|
14
|
+
children: [
|
|
15
|
+
{
|
|
16
|
+
type: "heading",
|
|
17
|
+
children: [
|
|
18
|
+
{
|
|
19
|
+
type: "text",
|
|
20
|
+
detail: 0,
|
|
21
|
+
format: 0,
|
|
22
|
+
mode: "normal",
|
|
23
|
+
style: "",
|
|
24
|
+
text: "Launch your directory in days, not months",
|
|
25
|
+
version: 1,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
direction: "ltr" as const,
|
|
29
|
+
format: "" as const,
|
|
30
|
+
indent: 0,
|
|
31
|
+
tag: "h1",
|
|
32
|
+
version: 1,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
type: "paragraph",
|
|
36
|
+
children: [
|
|
37
|
+
{
|
|
38
|
+
type: "text",
|
|
39
|
+
detail: 0,
|
|
40
|
+
format: 0,
|
|
41
|
+
mode: "normal",
|
|
42
|
+
style: "",
|
|
43
|
+
text: "Choose from professionally designed directory templates, customize to match your brand, and go live instantly. No coding required.",
|
|
44
|
+
version: 1,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
direction: "ltr" as const,
|
|
48
|
+
format: "" as const,
|
|
49
|
+
indent: 0,
|
|
50
|
+
textFormat: 0,
|
|
51
|
+
version: 1,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
direction: "ltr" as const,
|
|
55
|
+
format: "" as const,
|
|
56
|
+
indent: 0,
|
|
57
|
+
version: 1,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
links: [
|
|
61
|
+
{
|
|
62
|
+
link: {
|
|
63
|
+
type: "custom",
|
|
64
|
+
appearance: "default",
|
|
65
|
+
label: "Get started free",
|
|
66
|
+
url: "/sign-up",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
link: {
|
|
71
|
+
type: "custom",
|
|
72
|
+
appearance: "outline",
|
|
73
|
+
label: "View all templates",
|
|
74
|
+
url: "/templates",
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
layout: [
|
|
80
|
+
// Feature showcase blocks
|
|
81
|
+
{
|
|
82
|
+
blockType: "featureShowcase",
|
|
83
|
+
blockName: "Template Gallery",
|
|
84
|
+
label: "Ready-Made Templates",
|
|
85
|
+
headline: "Pick a template, customize, launch",
|
|
86
|
+
description: createParagraph(
|
|
87
|
+
"Our template library covers every niche from local services to B2B vendor directories. Each template is designed for conversions with optimized layouts, smart filtering, and mobile-first responsive design.",
|
|
88
|
+
),
|
|
89
|
+
link: {
|
|
90
|
+
type: "custom",
|
|
91
|
+
label: "Browse templates",
|
|
92
|
+
url: "/templates",
|
|
93
|
+
appearance: "default",
|
|
94
|
+
},
|
|
95
|
+
imagePosition: "right",
|
|
96
|
+
features: [
|
|
97
|
+
{ text: "10+ professionally designed templates" },
|
|
98
|
+
{ text: "Niche-specific layouts and fields" },
|
|
99
|
+
{ text: "Mobile-first responsive design" },
|
|
100
|
+
{ text: "One-click preview and deploy" },
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
blockType: "featureShowcase",
|
|
105
|
+
blockName: "Customization",
|
|
106
|
+
label: "Brand Customization",
|
|
107
|
+
headline: "Make it yours in minutes",
|
|
108
|
+
description: createParagraph(
|
|
109
|
+
"Every template is fully customizable. Change colors, fonts, layouts, and content without touching a line of code. Our visual editor makes it simple to match your brand identity perfectly.",
|
|
110
|
+
),
|
|
111
|
+
link: {
|
|
112
|
+
type: "custom",
|
|
113
|
+
label: "See customization options",
|
|
114
|
+
url: "/features",
|
|
115
|
+
appearance: "default",
|
|
116
|
+
},
|
|
117
|
+
imagePosition: "left",
|
|
118
|
+
features: [
|
|
119
|
+
{ text: "Visual drag-and-drop editor" },
|
|
120
|
+
{ text: "Custom color schemes and fonts" },
|
|
121
|
+
{ text: "Logo and branding integration" },
|
|
122
|
+
{ text: "Custom domain support" },
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
// Bento features for specific capabilities
|
|
126
|
+
{
|
|
127
|
+
blockType: "bentoFeatures",
|
|
128
|
+
blockName: "Template Features",
|
|
129
|
+
heading: "Built for every directory type",
|
|
130
|
+
subheading:
|
|
131
|
+
"Templates designed for specific use cases with pre-configured schemas and optimized layouts",
|
|
132
|
+
features: [
|
|
133
|
+
{
|
|
134
|
+
size: "small",
|
|
135
|
+
style: "gradient",
|
|
136
|
+
icon: "layout",
|
|
137
|
+
title: "Local Services",
|
|
138
|
+
description: createParagraph(
|
|
139
|
+
"Plumbers, photographers, restaurants with map integration.",
|
|
140
|
+
),
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
size: "small",
|
|
144
|
+
style: "accent",
|
|
145
|
+
icon: "building",
|
|
146
|
+
title: "B2B Directories",
|
|
147
|
+
description: createParagraph(
|
|
148
|
+
"Software vendors, agencies, consultants with comparison views.",
|
|
149
|
+
),
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
size: "small",
|
|
153
|
+
style: "default",
|
|
154
|
+
icon: "users",
|
|
155
|
+
title: "Community Directories",
|
|
156
|
+
description: createParagraph(
|
|
157
|
+
"Member directories, alumni networks, professional groups.",
|
|
158
|
+
),
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
size: "small",
|
|
162
|
+
style: "primary",
|
|
163
|
+
icon: "building",
|
|
164
|
+
title: "Marketplaces",
|
|
165
|
+
description: createParagraph(
|
|
166
|
+
"Multi-vendor platforms with seller profiles and products.",
|
|
167
|
+
),
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
size: "small",
|
|
171
|
+
style: "default",
|
|
172
|
+
icon: "globe",
|
|
173
|
+
title: "Global Ready",
|
|
174
|
+
description: createParagraph("Multi-language support and localization built-in."),
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
size: "small",
|
|
178
|
+
style: "default",
|
|
179
|
+
icon: "zap",
|
|
180
|
+
title: "Fast Loading",
|
|
181
|
+
description: createParagraph("Optimized for speed with edge caching."),
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
},
|
|
185
|
+
// Proof banner
|
|
186
|
+
{
|
|
187
|
+
blockType: "proofBanner",
|
|
188
|
+
blockName: "CTA Section",
|
|
189
|
+
style: "centered",
|
|
190
|
+
headline: "Ready to launch your directory?",
|
|
191
|
+
subtext: "Pick a template and go live today. Free to start, upgrade as you grow.",
|
|
192
|
+
links: [
|
|
193
|
+
{
|
|
194
|
+
link: {
|
|
195
|
+
type: "custom",
|
|
196
|
+
appearance: "default",
|
|
197
|
+
label: "Start for free",
|
|
198
|
+
url: "/sign-up",
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
link: {
|
|
203
|
+
type: "custom",
|
|
204
|
+
appearance: "outline",
|
|
205
|
+
label: "Book a demo",
|
|
206
|
+
url: "/contact",
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
meta: {
|
|
213
|
+
description:
|
|
214
|
+
"Launch your directory website in days with professionally designed templates. Customize colors, layouts, and content without coding. Start free today.",
|
|
215
|
+
title: "Directory Templates — Launch Fast with DirectoryHub",
|
|
216
|
+
},
|
|
217
|
+
}
|
|
218
|
+
}
|