create-ailk 0.7.0 → 0.9.0
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/README.md +112 -10
- package/component-catalog.json +798 -49
- package/component-catalog.md +9 -6
- package/dist/add-module.d.ts +20 -0
- package/dist/add-module.js +43 -7
- package/dist/add-route.d.ts +56 -0
- package/dist/add-route.js +286 -0
- package/dist/apply-design-md.d.ts +7 -0
- package/dist/apply-design-md.js +50 -0
- package/dist/apply-design.d.ts +64 -0
- package/dist/apply-design.js +273 -0
- package/dist/claude-md.d.ts +111 -0
- package/dist/claude-md.js +334 -0
- package/dist/cli.js +114 -28
- package/dist/derive-architecture.js +41 -36
- package/dist/design-compile.d.ts +71 -0
- package/dist/design-compile.js +98 -0
- package/dist/design-package.d.ts +83 -0
- package/dist/design-package.js +468 -0
- package/dist/design-presets.d.ts +86 -0
- package/dist/design-presets.js +642 -0
- package/dist/design-scaffold.d.ts +76 -0
- package/dist/design-scaffold.js +220 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +4 -1
- package/dist/legacy-nav-renderers.d.ts +45 -0
- package/dist/legacy-nav-renderers.js +545 -0
- package/dist/lib/auth-secret-file.d.ts +19 -0
- package/dist/lib/auth-secret-file.js +112 -0
- package/dist/lib/design-checks.d.ts +78 -0
- package/dist/lib/design-checks.js +174 -0
- package/dist/lib/extract-module-bundle.js +5 -1
- package/dist/lib/license-key-files.d.ts +9 -0
- package/dist/lib/license-key-files.js +2 -2
- package/dist/lib/module-license-gate.d.ts +89 -0
- package/dist/lib/module-license-gate.js +171 -12
- package/dist/lib/module-tier.d.ts +45 -16
- package/dist/lib/module-tier.js +76 -0
- package/dist/lib/pro-callout.js +10 -2
- package/dist/lib/render-verdict.d.ts +52 -0
- package/dist/lib/render-verdict.js +77 -0
- package/dist/lib/scaffold-render-sweep.d.ts +105 -0
- package/dist/lib/scaffold-render-sweep.js +236 -0
- package/dist/module-architecture.d.ts +19 -16
- package/dist/module-architecture.js +64 -21
- package/dist/parse-args.d.ts +88 -10
- package/dist/parse-args.js +272 -21
- package/dist/programmatic.d.ts +66 -12
- package/dist/programmatic.js +361 -34
- package/dist/site-chrome.d.ts +19 -9
- package/dist/site-chrome.js +23 -13
- package/dist/site-manifest.d.ts +25 -0
- package/dist/site-manifest.js +254 -0
- package/dist/site-roster.d.ts +41 -0
- package/dist/site-roster.js +149 -11
- package/dist/starter-grid.d.ts +232 -0
- package/dist/starter-grid.js +545 -0
- package/dist/surfaces.d.ts +41 -9
- package/dist/surfaces.js +268 -92
- package/dist/template-manifest.d.ts +65 -29
- package/dist/template-manifest.js +161 -382
- package/dist/template-names.d.ts +14 -12
- package/dist/template-names.js +13 -17
- package/package.json +5 -4
- package/site-templates/_base/content/en/Feature/feature-1.mdx +69 -0
- package/site-templates/_base/content/en/Feature/feature-2.mdx +69 -0
- package/site-templates/_base/content/en/Feature/feature-3.mdx +69 -0
- package/site-templates/_base/content/en/FeaturesList/features.mdx +91 -0
- package/site-templates/_base/content/en/GlossaryList/glossary.mdx +0 -1
- package/site-templates/_base/content/en/NewsletterSignup/newsletter.mdx +0 -1
- package/site-templates/_base/content/en/PortfolioItem/sample-four.mdx +105 -0
- package/site-templates/_base/content/en/PortfolioItem/sample-one.mdx +34 -0
- package/site-templates/_base/content/en/PortfolioItem/sample-three.mdx +94 -0
- package/site-templates/_base/content/en/PortfolioItem/sample-two.mdx +45 -0
- package/site-templates/_base/content/en/PortfolioList/portfolio.mdx +169 -0
- package/site-templates/_base/content/en/PrivacyPage/privacy.mdx +15 -0
- package/site-templates/_base/content/en/UseCase/persona-1.mdx +70 -0
- package/site-templates/_base/content/en/UseCase/persona-2.mdx +70 -0
- package/site-templates/_base/content/en/UseCase/persona-3.mdx +70 -0
- package/site-templates/{minimalism-site/TEMPLATE-MANIFEST.json → aliases/minimalism-site.TEMPLATE-MANIFEST.json} +72 -40
- package/site-templates/designs/minimalism/DESIGN.md +98 -6
- package/site-templates/designs/minimalism/sample/README.md +48 -0
- package/site-templates/designs/standard/DESIGN.md +103 -6
- package/site-templates/marketing-site/DESIGN.md +103 -6
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +144 -47
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +82 -41
- package/site-templates/marketing-site-free/DESIGN.md +103 -6
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +150 -48
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +114 -67
- package/site-templates/marketing-site-free/ailk-template.json +1 -1
- package/site-templates/marketing-site-free/content/en/NewsletterSignup/newsletter.mdx +59 -0
- package/site-templates/marketing-site-free/content/en/Pricing/pricing.mdx +199 -0
- package/site-templates/saas-product/DESIGN.md +103 -6
- package/site-templates/saas-product/TEMPLATE-MANIFEST.md +9 -1
- package/site-templates/{simple-service → shapes/local-business-service}/TEMPLATE-MANIFEST.json +210 -81
- package/site-templates/shapes/local-business-service/TEMPLATE-MANIFEST.md +356 -0
- package/site-templates/shapes/local-business-service/ailk-template.json +10 -0
- package/site-templates/{simple-service → shapes/local-business-service}/content/en/AboutPage/about.mdx +4 -4
- package/site-templates/shapes/local-business-service/content/en/HomePage/home.mdx +70 -0
- package/site-templates/shapes/local-business-service/content/en/NewsletterSignup/newsletter.mdx +59 -0
- package/site-templates/shapes/local-business-service/content/en/PortfolioList/portfolio.mdx +171 -0
- package/site-templates/{minimalism-site → shapes/local-business-service}/content/en/PurchasePolicyPage/purchase-policy.mdx +7 -8
- package/site-templates/shapes/local-business-service/content/en/Service/first-job.mdx +39 -0
- package/site-templates/shapes/local-business-service/content/en/Service/second-job.mdx +39 -0
- package/site-templates/shapes/local-business-service/content/en/Service/third-job.mdx +39 -0
- package/site-templates/shapes/local-business-service/content/en/ServicesList/services.mdx +61 -0
- package/site-templates/shapes/local-business-service/provenance.json +4 -0
- package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.json +471 -0
- package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.md +354 -0
- package/site-templates/shapes/organization-service/ailk-template.json +10 -0
- package/site-templates/shapes/organization-service/content/en/AboutPage/about.mdx +38 -0
- package/site-templates/shapes/organization-service/content/en/HomePage/home.mdx +85 -0
- package/site-templates/shapes/organization-service/content/en/NewsletterSignup/newsletter.mdx +59 -0
- package/site-templates/shapes/organization-service/content/en/PortfolioList/portfolio.mdx +171 -0
- package/site-templates/shapes/organization-service/content/en/PurchasePolicyPage/purchase-policy.mdx +123 -0
- package/site-templates/{minimalism-site → shapes/organization-service}/content/en/ServicesList/services.mdx +3 -4
- package/site-templates/shapes/organization-service/provenance.json +4 -0
- package/site-templates/shapes/person-service/TEMPLATE-MANIFEST.json +478 -0
- package/site-templates/shapes/person-service/TEMPLATE-MANIFEST.md +353 -0
- package/site-templates/shapes/person-service/ailk-template.json +10 -0
- package/site-templates/shapes/person-service/content/_site.mdx +85 -0
- package/site-templates/shapes/person-service/content/en/AboutPage/about.mdx +39 -0
- package/site-templates/shapes/person-service/content/en/HomePage/home.mdx +97 -0
- package/site-templates/shapes/person-service/content/en/NewsletterSignup/newsletter.mdx +59 -0
- package/site-templates/shapes/person-service/content/en/PortfolioList/portfolio.mdx +171 -0
- package/site-templates/{simple-service → shapes/person-service}/content/en/PurchasePolicyPage/purchase-policy.mdx +10 -11
- package/site-templates/shapes/person-service/content/en/Service/first-engagement.mdx +38 -0
- package/site-templates/shapes/person-service/content/en/Service/second-engagement.mdx +38 -0
- package/site-templates/shapes/person-service/content/en/Service/third-engagement.mdx +38 -0
- package/site-templates/{simple-service → shapes/person-service}/content/en/ServicesList/services.mdx +16 -16
- package/site-templates/shapes/person-service/provenance.json +4 -0
- package/templates/.claude/rules/architecture.md +7 -0
- package/templates/.claude/skills/README.md +5 -3
- package/templates/.claude/skills/add-auth/references/env-vars.md +22 -15
- package/templates/.claude/skills/add-auth/references/oauth-app-setup.md +3 -2
- package/templates/.claude/skills/add-page/SKILL.md +241 -238
- package/templates/.claude/skills/add-page/references/page-types.md +85 -72
- package/templates/.claude/skills/add-page/scripts/site-pages.mjs +87 -0
- package/templates/.claude/skills/add-page/templates/comparison-page.mdx.tmpl +99 -0
- package/templates/.claude/skills/add-page/templates/content.mdx.tmpl +8 -18
- package/templates/.claude/skills/add-page/templates/flow-landing-page.mdx.tmpl +43 -0
- package/templates/.claude/skills/add-page/templates/report-page.mdx.tmpl +52 -0
- package/templates/.claude/skills/add-page/templates/reports-list.mdx.tmpl +38 -0
- package/templates/.claude/skills/check-site/SKILL.md +23 -0
- package/templates/.claude/skills/fill-page/SKILL.md +26 -7
- package/templates/.claude/skills/fill-page/profiles/plumbing.yaml +1 -1
- package/templates/.claude/skills/setup-database/SKILL.md +156 -0
- package/templates/.claude/skills/setup-database/scripts/verify-inbox.ts +154 -0
- package/templates/.claude/skills/setup-deploy/SKILL.md +64 -32
- package/templates/.claude/skills/setup-deploy/references/env-vars-template.md +44 -36
- package/templates/.claude/skills/setup-deploy/references/runbook-template.md +58 -102
- package/templates/.claude/skills/update-page/SKILL.md +117 -0
- package/templates/.claude/skills/update-page/scripts/update-page.ts +640 -0
- package/templates/.claude/skills/update-page/templates/redirects.mjs.tmpl +31 -0
- package/templates/.claude/skills/upgrade-plan/SKILL.md +12 -8
- package/templates/.github/workflows/ci.yml +4 -0
- package/templates/.prettierignore +1 -0
- package/templates/CLAUDE.md +146 -103
- package/templates/DESIGN.md +103 -6
- package/templates/README.md +63 -43
- package/templates/apps/api/.env.example +2 -1
- package/templates/apps/api/CLAUDE.md +3 -2
- package/templates/apps/api/src/__tests__/commerce-claim-registration.test.ts +2 -0
- package/templates/apps/api/src/__tests__/server.test.ts +116 -0
- package/templates/apps/api/src/config/__tests__/index.test.ts +115 -14
- package/templates/apps/api/src/config/index.ts +35 -16
- package/templates/apps/api/src/lib/__tests__/lead-capture-store.test.ts +30 -0
- package/templates/apps/api/src/lib/__tests__/lead-delivery.test.ts +96 -0
- package/templates/apps/api/src/lib/lead-capture-store.ts +12 -0
- package/templates/apps/api/src/lib/lead-delivery.ts +52 -0
- package/templates/apps/api/src/lib/stripe.ts +9 -0
- package/templates/apps/api/src/middleware/__tests__/auth.optional-cookie.test.ts +140 -0
- package/templates/apps/api/src/middleware/auth.ts +54 -0
- package/templates/apps/api/src/openapi/spec.ts +63 -12
- package/templates/apps/api/src/routes/checkout/__tests__/session.test.ts +5 -2
- package/templates/apps/api/src/routes/checkout/__tests__/sessions.test.ts +628 -0
- package/templates/apps/api/src/routes/checkout/sessions.ts +222 -24
- package/templates/apps/api/src/routes/leads/__tests__/capture.test.ts +88 -0
- package/templates/apps/api/src/routes/leads/__tests__/index.test.ts +100 -0
- package/templates/apps/api/src/routes/leads/index.ts +46 -1
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-flow-checkout.test.ts +1 -1
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-org-billing.test.ts +5 -1
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe.test.ts +521 -20
- package/templates/apps/api/src/routes/webhooks/stripe.ts +124 -32
- package/templates/apps/api/src/server.ts +35 -0
- package/templates/apps/api/src/services/__tests__/lead-routing.test.ts +194 -0
- package/templates/apps/api/src/services/__tests__/leads-inbox.test.ts +124 -0
- package/templates/apps/api/src/services/__tests__/revalidation.test.ts +90 -15
- package/templates/apps/api/src/services/checkout-buyer.ts +72 -0
- package/templates/apps/api/src/services/lead-routing.ts +140 -30
- package/templates/apps/api/src/services/leads-inbox.ts +48 -11
- package/templates/apps/api/src/services/revalidation.ts +60 -15
- package/templates/apps/mcp/__tests__/parity.test.ts +5 -4
- package/templates/apps/mcp/__tests__/tools/create_project.test.ts +30 -24
- package/templates/apps/mcp/src/tools/create_project.ts +21 -6
- package/templates/apps/mcp/src/tools/purchase.ts +4 -2
- package/templates/apps/web/.env.example +13 -0
- package/templates/apps/web/CLAUDE.md +22 -28
- package/templates/apps/web/app/[locale]/(auth)/layout.tsx +1 -1
- package/templates/apps/web/app/[locale]/(authed)/leads/__tests__/page.test.tsx +24 -0
- package/templates/apps/web/app/[locale]/(authed)/leads/page.tsx +17 -6
- package/templates/apps/web/app/[locale]/[slug]/[detail]/__tests__/page.test.tsx +110 -0
- package/templates/apps/web/app/[locale]/[slug]/[detail]/page.tsx +60 -0
- package/templates/apps/web/app/[locale]/[slug]/page.tsx +1 -1
- package/templates/apps/web/app/[locale]/alternatives/__tests__/page.test.tsx +161 -0
- package/templates/apps/web/app/[locale]/alternatives/page.tsx +104 -0
- package/templates/apps/web/app/[locale]/contact/ConversationalIntakeWrapper.tsx +14 -6
- package/templates/apps/web/app/[locale]/contact/__tests__/ConversationalIntakeWrapper.test.tsx +10 -9
- package/templates/apps/web/app/[locale]/contact/__tests__/contact-form-text.test.ts +32 -0
- package/templates/apps/web/app/[locale]/contact/__tests__/contact.actions.test.ts +129 -0
- package/templates/apps/web/app/[locale]/contact/__tests__/page-renderer-migration.test.tsx +227 -84
- package/templates/apps/web/app/[locale]/contact/contact-form-text.ts +50 -0
- package/templates/apps/web/app/[locale]/contact/contact.actions.ts +73 -20
- package/templates/apps/web/app/[locale]/contact/page.tsx +105 -15
- package/templates/apps/web/app/[locale]/contact/site-contact-email.ts +54 -0
- package/templates/apps/web/app/[locale]/features/[slug]/page.tsx +64 -0
- package/templates/apps/web/app/[locale]/features/page.tsx +52 -0
- package/templates/apps/web/app/[locale]/{use-cases → for}/[slug]/page.tsx +21 -5
- package/templates/apps/web/app/[locale]/for/__tests__/page-renderer-migration.test.tsx +73 -0
- package/templates/apps/web/app/[locale]/{use-cases → for}/page.tsx +8 -7
- package/templates/apps/web/app/[locale]/glossary/page.tsx +1 -1
- package/templates/apps/web/app/[locale]/layout.tsx +65 -17
- package/templates/apps/web/app/[locale]/newsletter/__tests__/newsletter.actions.test.ts +75 -0
- package/templates/apps/web/app/[locale]/newsletter/__tests__/page.test.tsx +163 -0
- package/templates/apps/web/app/[locale]/newsletter/newsletter.actions.ts +66 -0
- package/templates/apps/web/app/[locale]/newsletter/page.tsx +106 -14
- package/templates/apps/web/app/[locale]/portfolio/[slug]/page.tsx +59 -0
- package/templates/apps/web/app/[locale]/{book-a-call → portfolio}/page.tsx +12 -13
- package/templates/apps/web/app/[locale]/vs/[slug]/__tests__/page.test.tsx +112 -0
- package/templates/apps/web/app/[locale]/vs/[slug]/page.tsx +70 -0
- package/templates/apps/web/app/api/revalidate/__tests__/route.test.ts +236 -44
- package/templates/apps/web/app/api/revalidate/route.ts +78 -36
- package/templates/apps/web/lib/__tests__/site-brand.test.ts +79 -0
- package/templates/apps/web/lib/__tests__/site-theme.test.ts +104 -11
- package/templates/apps/web/lib/__tests__/structured-data.test.tsx +21 -4
- package/templates/apps/web/lib/locale-guard.ts +18 -0
- package/templates/apps/web/lib/meet-placeholder.ts +5 -0
- package/templates/apps/web/lib/nav-config.ts +50 -37
- package/templates/apps/web/lib/site-brand.tsx +13 -9
- package/templates/apps/web/lib/site-identity.ts +14 -0
- package/templates/apps/web/lib/site-logo.tsx +36 -0
- package/templates/apps/web/lib/site-theme.ts +46 -26
- package/templates/apps/web/messages/en.json +45 -5
- package/templates/apps/web/middleware.ts +28 -4
- package/templates/content/_site.mdx +4 -2
- package/templates/content/en/BlogList/blog.mdx +37 -16
- package/templates/content/en/BookCall/book-a-call.mdx +80 -0
- package/templates/content/en/BookCall/onsite-estimate.mdx +56 -0
- package/templates/content/en/BookCall/onsite-service.mdx +56 -0
- package/templates/content/en/BookCall/start-project.mdx +56 -0
- package/templates/content/en/ContactPage/contact.mdx +43 -34
- package/templates/content/en/HomePage/home.mdx +10 -22
- package/templates/content/en/LandingPage/meet.mdx +59 -0
- package/templates/content/en/PurchasePolicyPage/purchase-policy.mdx +0 -1
- package/templates/content/en/UseCasesList/{use-cases.mdx → for.mdx} +19 -18
- package/templates/database/CHANGELOG.md +14 -0
- package/templates/database/package.json +1 -1
- package/templates/package.json +2 -1
- package/templates/tools/check-claude-md.ts +128 -0
- package/versions.json +33 -33
- package/site-templates/_base/content/en/BookCall/book-call.mdx +0 -53
- package/site-templates/_base/content/en/UseCase/first-use-case.mdx +0 -23
- package/site-templates/_base/content/en/UseCase/second-use-case.mdx +0 -23
- package/site-templates/_base/content/en/UseCase/third-use-case.mdx +0 -23
- package/site-templates/minimalism-site/DESIGN.md +0 -162
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.md +0 -470
- package/site-templates/minimalism-site/ailk-template.json +0 -23
- package/site-templates/minimalism-site/content/en/AboutPage/about.mdx +0 -110
- package/site-templates/minimalism-site/content/en/BookCall/book-call.mdx +0 -53
- package/site-templates/minimalism-site/content/en/ContactPage/contact.mdx +0 -34
- package/site-templates/minimalism-site/content/en/FAQPage/faq.mdx +0 -57
- package/site-templates/minimalism-site/content/en/LandingPage/referral.mdx +0 -77
- package/site-templates/minimalism-site/content/en/LandingPage/reports.mdx +0 -73
- package/site-templates/minimalism-site/content/en/ReportPage/annual-letter-2024.mdx +0 -52
- package/site-templates/minimalism-site/content/en/ReportPage/field-notes-2023.mdx +0 -52
- package/site-templates/minimalism-site/content/en/ReportPage/platform-shift-2025.mdx +0 -52
- package/site-templates/minimalism-site/content/en/ReportPage/state-of-the-market-2026.mdx +0 -52
- package/site-templates/minimalism-site/flows/referral.flow.json +0 -71
- package/site-templates/minimalism-site/provenance.json +0 -4
- package/site-templates/simple-service/DESIGN.md +0 -162
- package/site-templates/simple-service/TEMPLATE-MANIFEST.md +0 -333
- package/site-templates/simple-service/ailk-template.json +0 -11
- package/site-templates/simple-service/content/en/BookCall/book-call.mdx +0 -53
- package/site-templates/simple-service/content/en/ContactPage/contact.mdx +0 -32
- package/site-templates/simple-service/content/en/FAQPage/faq.mdx +0 -56
- package/site-templates/simple-service/content/en/HomePage/home.mdx +0 -85
- package/site-templates/simple-service/content/en/Service/landscape-design.mdx +0 -40
- package/site-templates/simple-service/content/en/Service/lawn-maintenance.mdx +0 -40
- package/site-templates/simple-service/content/en/Service/seasonal-cleanup.mdx +0 -40
- package/site-templates/simple-service/provenance.json +0 -4
- package/templates/.claude/skills/add-page/templates/route.tsx.tmpl +0 -28
- package/templates/apps/web/app/[locale]/contact/ContactForm.tsx +0 -211
- package/templates/apps/web/app/[locale]/contact/__tests__/ContactForm.test.tsx +0 -96
- package/templates/apps/web/app/[locale]/use-cases/__tests__/page-renderer-migration.test.tsx +0 -72
- package/templates/content/en/SoftwareProduct/product.mdx +0 -175
- /package/site-templates/{minimalism-site → designs/minimalism/sample}/content/en/HomePage/home.mdx +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/avatar-placeholder-1.svg +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/avatar-placeholder-2.svg +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/avatar-placeholder-3.svg +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/avatar-placeholder-4.svg +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/avatar-placeholder-5.svg +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/avatar-placeholder-6.svg +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/hero-backdrop.svg +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/logo-placeholder-1.svg +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/logo-placeholder-2.svg +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/logo-placeholder-3.svg +0 -0
- /package/site-templates/{minimalism-site/assets → designs/minimalism/sample/public}/wordmark-placeholder.svg +0 -0
- /package/site-templates/{minimalism-site → shapes/organization-service}/content/en/Service/first-engagement.mdx +0 -0
- /package/site-templates/{minimalism-site → shapes/organization-service}/content/en/Service/second-engagement.mdx +0 -0
- /package/site-templates/{minimalism-site → shapes/organization-service}/content/en/Service/third-engagement.mdx +0 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "PortfolioList"
|
|
3
|
+
slug: "portfolio"
|
|
4
|
+
title: "{Before and after, compared} | {Company name}"
|
|
5
|
+
description: "{Every project shown as a comparison \u2014 what the client had, what they have now, and what changed in between.}"
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "cases-hero",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"variant": "default",
|
|
14
|
+
"size": "display",
|
|
15
|
+
"surface": "wash-secondary",
|
|
16
|
+
"gapBelow": "tight",
|
|
17
|
+
"eyebrow": "{Portfolio}",
|
|
18
|
+
"eyebrowTone": "brand",
|
|
19
|
+
"headline": "{The work, before and after.}",
|
|
20
|
+
"subheadline": "{Two or three sentences on why the comparison is the honest proof \u2014 what the before cost the client, what the after changed, and how a reader can check it.}",
|
|
21
|
+
"subtitleSize": "lead",
|
|
22
|
+
"ctaSize": "xl",
|
|
23
|
+
"primaryCta": { "label": "{Get started}", "href": "/pricing" },
|
|
24
|
+
"secondaryCta": { "label": "{Book a call}", "href": "/contact" },
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "cases-tiles",
|
|
29
|
+
"type": "items",
|
|
30
|
+
"data":
|
|
31
|
+
{
|
|
32
|
+
"variant": "tile",
|
|
33
|
+
"tileHover": "outline",
|
|
34
|
+
"columns": 2,
|
|
35
|
+
"surface": "none",
|
|
36
|
+
"items":
|
|
37
|
+
[
|
|
38
|
+
{
|
|
39
|
+
"title": "{Example one}: before and after",
|
|
40
|
+
"description": "{One sentence on what example one had, and what they have now}",
|
|
41
|
+
"rows":
|
|
42
|
+
[
|
|
43
|
+
{
|
|
44
|
+
"label": "THE CLIENT",
|
|
45
|
+
"body": "{Who they are and the market they sell into}",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"label": "WHAT CHANGED",
|
|
49
|
+
"body": "{The one thing the after does that the before could not}",
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
"link":
|
|
53
|
+
{
|
|
54
|
+
"label": "See the comparison \u2192",
|
|
55
|
+
"href": "/portfolio/sample-one",
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"title": "{Example two}: before and after",
|
|
60
|
+
"description": "{One sentence on what example two had, and what they have now}",
|
|
61
|
+
"rows":
|
|
62
|
+
[
|
|
63
|
+
{
|
|
64
|
+
"label": "THE CLIENT",
|
|
65
|
+
"body": "{Who they are and the market they sell into}",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"label": "WHAT CHANGED",
|
|
69
|
+
"body": "{The one thing the after does that the before could not}",
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
"link":
|
|
73
|
+
{
|
|
74
|
+
"label": "See the comparison \u2192",
|
|
75
|
+
"href": "/portfolio/sample-two",
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"title": "{Example three}: before and after",
|
|
80
|
+
"description": "{One sentence on what example three had, and what they have now}",
|
|
81
|
+
"rows":
|
|
82
|
+
[
|
|
83
|
+
{
|
|
84
|
+
"label": "THE CLIENT",
|
|
85
|
+
"body": "{Who they are and the market they sell into}",
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"label": "WHAT CHANGED",
|
|
89
|
+
"body": "{The one thing the after does that the before could not}",
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
"link":
|
|
93
|
+
{
|
|
94
|
+
"label": "See the comparison \u2192",
|
|
95
|
+
"href": "/portfolio/sample-three",
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"title": "{Example four}: before and after",
|
|
100
|
+
"description": "{One sentence on what example four had, and what they have now}",
|
|
101
|
+
"rows":
|
|
102
|
+
[
|
|
103
|
+
{
|
|
104
|
+
"label": "THE CLIENT",
|
|
105
|
+
"body": "{Who they are and the market they sell into}",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"label": "WHAT CHANGED",
|
|
109
|
+
"body": "{The one thing the after does that the before could not}",
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
"link":
|
|
113
|
+
{
|
|
114
|
+
"label": "See the comparison \u2192",
|
|
115
|
+
"href": "/portfolio/sample-four",
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "cases-close",
|
|
123
|
+
"type": "cta",
|
|
124
|
+
"data":
|
|
125
|
+
{
|
|
126
|
+
"variant": "beam",
|
|
127
|
+
"headline": "{Is your site the before or the after?}",
|
|
128
|
+
"description": "{One line offering the reader the same comparison for their own site.}",
|
|
129
|
+
"primaryCta": { "label": "{Get started}", "href": "/pricing" },
|
|
130
|
+
"secondaryCta": { "label": "{Book a call}", "href": "/contact" },
|
|
131
|
+
"chips":
|
|
132
|
+
[
|
|
133
|
+
"{Proof you can check}",
|
|
134
|
+
"{Every project shown both ways}",
|
|
135
|
+
"{Re-checked every quarter}",
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"id": "cases-faq",
|
|
141
|
+
"type": "faq",
|
|
142
|
+
"data":
|
|
143
|
+
{
|
|
144
|
+
"headline": "Frequently Asked Questions",
|
|
145
|
+
"variant": "centered",
|
|
146
|
+
"presentation": "accordion",
|
|
147
|
+
"questionSize": "body-lg",
|
|
148
|
+
"initialOpen": "first",
|
|
149
|
+
"containerWidth": "default",
|
|
150
|
+
"surface": "gray-100",
|
|
151
|
+
"items":
|
|
152
|
+
[
|
|
153
|
+
{
|
|
154
|
+
"question": "{How do you pick which projects to show?}",
|
|
155
|
+
"answer": "{Two or three sentences.}",
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"question": "{Are the before screenshots real?}",
|
|
159
|
+
"answer": "{Two or three sentences.}",
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"question": "{Can I see the numbers behind a comparison?}",
|
|
163
|
+
"answer": "{Two or three sentences.}",
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
]
|
|
169
|
+
---
|
|
@@ -54,6 +54,21 @@ sections:
|
|
|
54
54
|
},
|
|
55
55
|
],
|
|
56
56
|
},
|
|
57
|
+
{
|
|
58
|
+
"id": "cookie-settings",
|
|
59
|
+
"heading": "Cookie settings",
|
|
60
|
+
"blocks":
|
|
61
|
+
[
|
|
62
|
+
{
|
|
63
|
+
"kind": "paragraph",
|
|
64
|
+
"text": "Arriving at this section reopens the cookie banner, so a visitor can accept or reject again at any time. Their earlier choice stays in place until they pick again.",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"kind": "paragraph",
|
|
68
|
+
"text": "Replace this with what your site actually sets: which cookies, what each one is for, and what stops working if someone rejects them.",
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
},
|
|
57
72
|
{
|
|
58
73
|
"id": "contact",
|
|
59
74
|
"heading": "How to reach us",
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "UseCase"
|
|
3
|
+
slug: "persona-1"
|
|
4
|
+
placeholder: true
|
|
5
|
+
title: "{Use case 1: the job this customer hires your product or service to do}"
|
|
6
|
+
description: "{Two sentences on who this customer is and the result they get}"
|
|
7
|
+
sections:
|
|
8
|
+
[
|
|
9
|
+
{
|
|
10
|
+
"id": "hero",
|
|
11
|
+
"type": "hero",
|
|
12
|
+
"data":
|
|
13
|
+
{
|
|
14
|
+
"eyebrow": "Customers",
|
|
15
|
+
"headline": "{Use case 1: the job this customer hires your product or service to do}",
|
|
16
|
+
"subheadline": "{Two sentences on who this customer is and the result they get}",
|
|
17
|
+
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
18
|
+
"secondaryCta":
|
|
19
|
+
{
|
|
20
|
+
"label": "{Secondary CTA}",
|
|
21
|
+
"href": "/about",
|
|
22
|
+
"variant": "outline",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "detail",
|
|
28
|
+
"type": "feature",
|
|
29
|
+
"data":
|
|
30
|
+
{
|
|
31
|
+
"headline": "{How this customer uses your product or service}",
|
|
32
|
+
"description": "{Two or three sentences on how it works and what changes for the reader}",
|
|
33
|
+
"features":
|
|
34
|
+
[
|
|
35
|
+
{
|
|
36
|
+
"title": "{First point}",
|
|
37
|
+
"description": "{One sentence that makes the point concrete}",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"title": "{Second point}",
|
|
41
|
+
"description": "{One sentence that makes the point concrete}",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"title": "{Third point}",
|
|
45
|
+
"description": "{One sentence that makes the point concrete}",
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "cta",
|
|
52
|
+
"type": "cta",
|
|
53
|
+
"data":
|
|
54
|
+
{
|
|
55
|
+
"variant": "box",
|
|
56
|
+
"headline": "{Talk to us about your own use case}",
|
|
57
|
+
"description": "{One sentence on what happens when they get in touch}",
|
|
58
|
+
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
59
|
+
"secondaryCta":
|
|
60
|
+
{
|
|
61
|
+
"label": "{Secondary CTA}",
|
|
62
|
+
"href": "/about",
|
|
63
|
+
"variant": "outline",
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
]
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
{/* Rendered from frontmatter `sections[]`. Placeholder copy — replace every {brace} with your own words before you launch. */}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "UseCase"
|
|
3
|
+
slug: "persona-2"
|
|
4
|
+
placeholder: true
|
|
5
|
+
title: "{Use case 2: the job this customer hires your product or service to do}"
|
|
6
|
+
description: "{Two sentences on who this customer is and the result they get}"
|
|
7
|
+
sections:
|
|
8
|
+
[
|
|
9
|
+
{
|
|
10
|
+
"id": "hero",
|
|
11
|
+
"type": "hero",
|
|
12
|
+
"data":
|
|
13
|
+
{
|
|
14
|
+
"eyebrow": "Customers",
|
|
15
|
+
"headline": "{Use case 2: the job this customer hires your product or service to do}",
|
|
16
|
+
"subheadline": "{Two sentences on who this customer is and the result they get}",
|
|
17
|
+
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
18
|
+
"secondaryCta":
|
|
19
|
+
{
|
|
20
|
+
"label": "{Secondary CTA}",
|
|
21
|
+
"href": "/about",
|
|
22
|
+
"variant": "outline",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "detail",
|
|
28
|
+
"type": "feature",
|
|
29
|
+
"data":
|
|
30
|
+
{
|
|
31
|
+
"headline": "{How this customer uses your product or service}",
|
|
32
|
+
"description": "{Two or three sentences on how it works and what changes for the reader}",
|
|
33
|
+
"features":
|
|
34
|
+
[
|
|
35
|
+
{
|
|
36
|
+
"title": "{First point}",
|
|
37
|
+
"description": "{One sentence that makes the point concrete}",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"title": "{Second point}",
|
|
41
|
+
"description": "{One sentence that makes the point concrete}",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"title": "{Third point}",
|
|
45
|
+
"description": "{One sentence that makes the point concrete}",
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "cta",
|
|
52
|
+
"type": "cta",
|
|
53
|
+
"data":
|
|
54
|
+
{
|
|
55
|
+
"variant": "box",
|
|
56
|
+
"headline": "{Talk to us about your own use case}",
|
|
57
|
+
"description": "{One sentence on what happens when they get in touch}",
|
|
58
|
+
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
59
|
+
"secondaryCta":
|
|
60
|
+
{
|
|
61
|
+
"label": "{Secondary CTA}",
|
|
62
|
+
"href": "/about",
|
|
63
|
+
"variant": "outline",
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
]
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
{/* Rendered from frontmatter `sections[]`. Placeholder copy — replace every {brace} with your own words before you launch. */}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "UseCase"
|
|
3
|
+
slug: "persona-3"
|
|
4
|
+
placeholder: true
|
|
5
|
+
title: "{Use case 3: the job this customer hires your product or service to do}"
|
|
6
|
+
description: "{Two sentences on who this customer is and the result they get}"
|
|
7
|
+
sections:
|
|
8
|
+
[
|
|
9
|
+
{
|
|
10
|
+
"id": "hero",
|
|
11
|
+
"type": "hero",
|
|
12
|
+
"data":
|
|
13
|
+
{
|
|
14
|
+
"eyebrow": "Customers",
|
|
15
|
+
"headline": "{Use case 3: the job this customer hires your product or service to do}",
|
|
16
|
+
"subheadline": "{Two sentences on who this customer is and the result they get}",
|
|
17
|
+
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
18
|
+
"secondaryCta":
|
|
19
|
+
{
|
|
20
|
+
"label": "{Secondary CTA}",
|
|
21
|
+
"href": "/about",
|
|
22
|
+
"variant": "outline",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "detail",
|
|
28
|
+
"type": "feature",
|
|
29
|
+
"data":
|
|
30
|
+
{
|
|
31
|
+
"headline": "{How this customer uses your product or service}",
|
|
32
|
+
"description": "{Two or three sentences on how it works and what changes for the reader}",
|
|
33
|
+
"features":
|
|
34
|
+
[
|
|
35
|
+
{
|
|
36
|
+
"title": "{First point}",
|
|
37
|
+
"description": "{One sentence that makes the point concrete}",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"title": "{Second point}",
|
|
41
|
+
"description": "{One sentence that makes the point concrete}",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"title": "{Third point}",
|
|
45
|
+
"description": "{One sentence that makes the point concrete}",
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "cta",
|
|
52
|
+
"type": "cta",
|
|
53
|
+
"data":
|
|
54
|
+
{
|
|
55
|
+
"variant": "box",
|
|
56
|
+
"headline": "{Talk to us about your own use case}",
|
|
57
|
+
"description": "{One sentence on what happens when they get in touch}",
|
|
58
|
+
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
59
|
+
"secondaryCta":
|
|
60
|
+
{
|
|
61
|
+
"label": "{Secondary CTA}",
|
|
62
|
+
"href": "/about",
|
|
63
|
+
"variant": "outline",
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
]
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
{/* Rendered from frontmatter `sections[]`. Placeholder copy — replace every {brace} with your own words before you launch. */}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"categories": ["real-estate", "technology", "legal"],
|
|
5
5
|
"shape": "organization-service",
|
|
6
6
|
"design": "minimalism",
|
|
7
|
-
"generatedHash": "
|
|
7
|
+
"generatedHash": "0aaead8d66a2cfd64f9c89a15154f8a5d857a772dcab6759a15d2dd7e8b63aa5",
|
|
8
8
|
"layout": {
|
|
9
9
|
"nav": "mark-only",
|
|
10
10
|
"footer": "centered",
|
|
@@ -118,8 +118,8 @@
|
|
|
118
118
|
{
|
|
119
119
|
"route": "/reports",
|
|
120
120
|
"kind": "page",
|
|
121
|
-
"pageType": "
|
|
122
|
-
"schema": "
|
|
121
|
+
"pageType": "ReportsList",
|
|
122
|
+
"schema": "ReportsList",
|
|
123
123
|
"shell": "MarketingShell",
|
|
124
124
|
"chrome": "on",
|
|
125
125
|
"sections": [
|
|
@@ -127,10 +127,6 @@
|
|
|
127
127
|
"type": "hero",
|
|
128
128
|
"component": "Hero"
|
|
129
129
|
},
|
|
130
|
-
{
|
|
131
|
-
"type": "reports-list",
|
|
132
|
-
"component": "ReportsList"
|
|
133
|
-
},
|
|
134
130
|
{
|
|
135
131
|
"type": "cta",
|
|
136
132
|
"component": "CTA"
|
|
@@ -149,10 +145,6 @@
|
|
|
149
145
|
"type": "content-block",
|
|
150
146
|
"component": "ContentBlock"
|
|
151
147
|
},
|
|
152
|
-
{
|
|
153
|
-
"type": "team",
|
|
154
|
-
"component": "Team"
|
|
155
|
-
},
|
|
156
148
|
{
|
|
157
149
|
"type": "cta",
|
|
158
150
|
"component": "CTA"
|
|
@@ -199,6 +191,61 @@
|
|
|
199
191
|
"chrome": "on",
|
|
200
192
|
"sections": []
|
|
201
193
|
},
|
|
194
|
+
{
|
|
195
|
+
"route": "/for",
|
|
196
|
+
"kind": "page",
|
|
197
|
+
"pageType": "UseCasesList",
|
|
198
|
+
"schema": "UseCasesList",
|
|
199
|
+
"shell": "MarketingShell",
|
|
200
|
+
"chrome": "on",
|
|
201
|
+
"sections": [
|
|
202
|
+
{
|
|
203
|
+
"type": "hero",
|
|
204
|
+
"component": "Hero"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"type": "items",
|
|
208
|
+
"component": "Items",
|
|
209
|
+
"options": {
|
|
210
|
+
"columns": 3
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"type": "logoCloud",
|
|
215
|
+
"component": "LogoCloud",
|
|
216
|
+
"options": {
|
|
217
|
+
"layout": "inline"
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"type": "testimonials",
|
|
222
|
+
"component": "Testimonials"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"type": "cta",
|
|
226
|
+
"component": "CTA"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"type": "faq",
|
|
230
|
+
"component": "FAQ"
|
|
231
|
+
}
|
|
232
|
+
]
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"route": "/for/[slug]",
|
|
236
|
+
"kind": "page",
|
|
237
|
+
"contentDir": "content/en/UseCase",
|
|
238
|
+
"seeds": [
|
|
239
|
+
"content/en/UseCase/persona-1.mdx",
|
|
240
|
+
"content/en/UseCase/persona-2.mdx",
|
|
241
|
+
"content/en/UseCase/persona-3.mdx"
|
|
242
|
+
],
|
|
243
|
+
"pageType": "UseCase",
|
|
244
|
+
"schema": "UseCase",
|
|
245
|
+
"shell": "MarketingShell",
|
|
246
|
+
"chrome": "on",
|
|
247
|
+
"sections": []
|
|
248
|
+
},
|
|
202
249
|
{
|
|
203
250
|
"route": "/contact",
|
|
204
251
|
"kind": "page",
|
|
@@ -212,8 +259,11 @@
|
|
|
212
259
|
"component": "Hero"
|
|
213
260
|
},
|
|
214
261
|
{
|
|
215
|
-
"type": "
|
|
216
|
-
"component": "
|
|
262
|
+
"type": "items",
|
|
263
|
+
"component": "Items",
|
|
264
|
+
"options": {
|
|
265
|
+
"columns": 2
|
|
266
|
+
}
|
|
217
267
|
}
|
|
218
268
|
]
|
|
219
269
|
},
|
|
@@ -247,13 +297,20 @@
|
|
|
247
297
|
"shell": "MarketingShell",
|
|
248
298
|
"chrome": "on",
|
|
249
299
|
"sections": [
|
|
300
|
+
{
|
|
301
|
+
"type": "hero",
|
|
302
|
+
"component": "Hero",
|
|
303
|
+
"options": {
|
|
304
|
+
"gapBelow": "tight"
|
|
305
|
+
}
|
|
306
|
+
},
|
|
250
307
|
{
|
|
251
308
|
"type": "faq",
|
|
252
309
|
"component": "FAQ"
|
|
253
310
|
},
|
|
254
311
|
{
|
|
255
|
-
"type": "
|
|
256
|
-
"component": "
|
|
312
|
+
"type": "faq",
|
|
313
|
+
"component": "FAQ"
|
|
257
314
|
}
|
|
258
315
|
]
|
|
259
316
|
},
|
|
@@ -287,37 +344,12 @@
|
|
|
287
344
|
"type": "hero",
|
|
288
345
|
"component": "Hero"
|
|
289
346
|
},
|
|
290
|
-
{
|
|
291
|
-
"type": "newsletter",
|
|
292
|
-
"component": "Newsletter"
|
|
293
|
-
},
|
|
294
347
|
{
|
|
295
348
|
"type": "faq",
|
|
296
349
|
"component": "FAQ"
|
|
297
350
|
}
|
|
298
351
|
]
|
|
299
352
|
},
|
|
300
|
-
{
|
|
301
|
-
"route": "/book-a-call",
|
|
302
|
-
"kind": "page",
|
|
303
|
-
"pageType": "BookCall",
|
|
304
|
-
"schema": "BookCall",
|
|
305
|
-
"shell": "MarketingShell",
|
|
306
|
-
"chrome": "on",
|
|
307
|
-
"sections": [
|
|
308
|
-
{
|
|
309
|
-
"type": "hero",
|
|
310
|
-
"component": "Hero"
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
"type": "items",
|
|
314
|
-
"component": "Items",
|
|
315
|
-
"options": {
|
|
316
|
-
"columns": 3
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
]
|
|
320
|
-
},
|
|
321
353
|
{
|
|
322
354
|
"route": "/privacy",
|
|
323
355
|
"kind": "page",
|