create-ailk 0.8.0 → 0.10.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 +71 -3
- package/component-catalog.json +279 -45
- 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 +104 -5
- 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/license-key-files.d.ts +9 -0
- package/dist/lib/license-key-files.js +2 -2
- package/dist/lib/module-license-gate.d.ts +48 -32
- package/dist/lib/module-license-gate.js +117 -8
- 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 +67 -23
- package/dist/parse-args.d.ts +12 -2
- package/dist/parse-args.js +74 -13
- package/dist/programmatic.d.ts +30 -6
- package/dist/programmatic.js +216 -19
- 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 +141 -8
- package/dist/starter-grid.d.ts +16 -63
- package/dist/starter-grid.js +102 -84
- package/dist/surfaces.d.ts +41 -9
- package/dist/surfaces.js +200 -83
- package/dist/template-manifest.d.ts +30 -13
- package/dist/template-manifest.js +53 -28
- package/package.json +6 -3
- package/release-scope.json +25 -0
- package/site-templates/_base/content/en/UseCase/persona-1.mdx +7 -6
- package/site-templates/_base/content/en/UseCase/persona-2.mdx +7 -6
- package/site-templates/_base/content/en/UseCase/persona-3.mdx +7 -6
- package/site-templates/designs/minimalism/DESIGN.md +98 -6
- package/site-templates/designs/minimalism/sample/README.md +48 -0
- package/site-templates/{minimalism-site → designs/minimalism/sample}/content/en/HomePage/home.mdx +1 -1
- package/site-templates/designs/standard/DESIGN.md +98 -6
- package/site-templates/marketing-site/DESIGN.md +98 -6
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +60 -27
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +50 -30
- package/site-templates/marketing-site-free/DESIGN.md +98 -6
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +60 -24
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +44 -27
- package/site-templates/marketing-site-free/ailk-template.json +1 -1
- package/site-templates/saas-product/DESIGN.md +98 -6
- package/site-templates/shapes/local-business-service/TEMPLATE-MANIFEST.json +127 -18
- package/site-templates/shapes/local-business-service/TEMPLATE-MANIFEST.md +74 -20
- package/site-templates/shapes/local-business-service/ailk-template.json +1 -1
- package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.json +127 -18
- package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.md +74 -20
- package/site-templates/shapes/organization-service/ailk-template.json +1 -1
- package/site-templates/shapes/person-service/TEMPLATE-MANIFEST.json +127 -18
- package/site-templates/shapes/person-service/TEMPLATE-MANIFEST.md +75 -21
- package/site-templates/shapes/person-service/ailk-template.json +1 -1
- package/site-templates/shapes/person-service/content/en/AboutPage/about.mdx +1 -1
- package/site-templates/shapes/person-service/content/en/HomePage/home.mdx +2 -2
- package/site-templates/shapes/person-service/content/en/PortfolioList/portfolio.mdx +4 -2
- package/site-templates/shapes/person-service/content/en/ServicesList/services.mdx +1 -1
- package/templates/.claude/agents/web.md +10 -8
- package/templates/.claude/rules/architecture.md +17 -7
- package/templates/.claude/skills/README.md +3 -2
- package/templates/.claude/skills/add-auth/SKILL.md +142 -90
- package/templates/.claude/skills/add-auth/references/env-vars.md +32 -17
- package/templates/.claude/skills/add-auth/references/oauth-app-setup.md +17 -8
- package/templates/.claude/skills/add-page/SKILL.md +241 -238
- package/templates/.claude/skills/add-page/references/page-types.md +94 -86
- 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 +51 -18
- package/templates/.claude/skills/check-site/references/common-errors.md +12 -9
- package/templates/.claude/skills/check-site/references/findings-glossary.md +4 -4
- package/templates/.claude/skills/check-site/references/severity-levels.md +3 -3
- 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-deploy/SKILL.md +75 -38
- 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/.env.example +23 -2
- package/templates/.github/workflows/ci.yml +4 -0
- package/templates/.prettierignore +1 -0
- package/templates/CLAUDE.md +146 -103
- package/templates/DESIGN.md +98 -6
- package/templates/README.md +50 -38
- package/templates/apps/api/.env.example +2 -1
- 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/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/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/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 +28 -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/revalidation.ts +60 -15
- package/templates/apps/mcp/__tests__/tools/create_project.test.ts +30 -24
- 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]/{use-cases → for}/[slug]/page.tsx +4 -3
- 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 +35 -19
- package/templates/apps/web/app/[locale]/newsletter/page.tsx +1 -1
- package/templates/apps/web/app/[locale]/portfolio/[slug]/page.tsx +1 -1
- package/templates/apps/web/app/[locale]/portfolio/page.tsx +1 -1
- 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 +14 -13
- package/templates/apps/web/lib/site-brand.tsx +13 -9
- 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 +23 -9
- package/templates/apps/web/middleware.ts +28 -4
- 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 +40 -1
- package/templates/content/en/HomePage/home.mdx +2 -6
- package/templates/content/en/LandingPage/meet.mdx +59 -0
- package/templates/content/en/UseCasesList/{use-cases.mdx → for.mdx} +19 -18
- package/templates/database/CHANGELOG.md +7 -0
- package/templates/database/package.json +1 -1
- package/templates/package.json +4 -1
- package/templates/tools/check-claude-md.ts +128 -0
- package/versions.json +33 -33
- package/dist/modules/commerce/0.6.0.tar.gz +0 -0
- package/dist/modules/commerce/0.6.1.tar.gz +0 -0
- package/dist/modules/docs-blog/0.6.0.tar.gz +0 -0
- package/dist/modules/docs-blog/0.6.1.tar.gz +0 -0
- package/dist/modules/marketing-site/0.6.1.tar.gz +0 -0
- package/dist/modules/minimalism-site/0.6.1.tar.gz +0 -0
- package/dist/modules/multi-tenant/0.6.0.tar.gz +0 -0
- package/dist/modules/multi-tenant/0.6.1.tar.gz +0 -0
- package/dist/modules/saas-product/0.6.1.tar.gz +0 -0
- package/dist/modules/scheduling/0.6.0.tar.gz +0 -0
- package/dist/modules/scheduling/0.6.1.tar.gz +0 -0
- package/dist/modules/signal-collectors/0.6.0.tar.gz +0 -0
- package/dist/modules/signal-collectors/0.6.1.tar.gz +0 -0
- package/dist/modules/simple-service/0.6.1.tar.gz +0 -0
- package/dist/modules/workspace/0.6.0.tar.gz +0 -0
- package/dist/modules/workspace/0.6.1.tar.gz +0 -0
- package/site-templates/_base/content/en/BookCall/book-call.mdx +0 -52
- package/site-templates/minimalism-site/DESIGN.md +0 -162
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.json +0 -506
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.md +0 -458
- 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 -52
- 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/PurchasePolicyPage/purchase-policy.mdx +0 -123
- 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/content/en/Service/first-engagement.mdx +0 -38
- package/site-templates/minimalism-site/content/en/Service/second-engagement.mdx +0 -38
- package/site-templates/minimalism-site/content/en/Service/third-engagement.mdx +0 -38
- package/site-templates/minimalism-site/content/en/ServicesList/services.mdx +0 -73
- package/site-templates/minimalism-site/flows/referral.flow.json +0 -71
- package/site-templates/minimalism-site/provenance.json +0 -4
- package/templates/.claude/skills/add-page/templates/route.tsx.tmpl +0 -28
- package/templates/.claude/skills/setup-deploy/references/env-vars-template.md +0 -175
- package/templates/apps/api/.ailk/inbox/2026-09-20T14-57-31.552Z-fallback-1789916251590-037e9005.json +0 -8
- package/templates/apps/api/.ailk/inbox/2026-09-20T14-57-33.840Z-fallback-1789916253842-b52659e9.json +0 -12
- package/templates/apps/api/.ailk/inbox/2026-09-20T14-57-33.844Z-fallback-1789916253845-6b266f8c.json +0 -12
- package/templates/apps/web/app/[locale]/book-a-call/page.tsx +0 -50
- package/templates/apps/web/app/[locale]/use-cases/__tests__/page-renderer-migration.test.tsx +0 -72
- /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
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"categories": ["accounting", "legal", "technology"],
|
|
5
5
|
"shape": "organization-product",
|
|
6
6
|
"design": "standard",
|
|
7
|
-
"generatedHash": "
|
|
7
|
+
"generatedHash": "54b11878a0ad8b1f1dccae73ba4580c08b7135bec274bd52182ffd431a6108ee",
|
|
8
8
|
"layout": {
|
|
9
9
|
"nav": "full",
|
|
10
10
|
"footer": "columns",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"sections": []
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
|
-
"route": "/
|
|
163
|
+
"route": "/for",
|
|
164
164
|
"kind": "page",
|
|
165
165
|
"pageType": "UseCasesList",
|
|
166
166
|
"schema": "UseCasesList",
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
]
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
|
-
"route": "/
|
|
203
|
+
"route": "/for/[slug]",
|
|
204
204
|
"kind": "page",
|
|
205
205
|
"contentDir": "content/en/UseCase",
|
|
206
206
|
"seeds": [
|
|
@@ -329,6 +329,13 @@
|
|
|
329
329
|
{
|
|
330
330
|
"type": "hero",
|
|
331
331
|
"component": "Hero"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"type": "items",
|
|
335
|
+
"component": "Items",
|
|
336
|
+
"options": {
|
|
337
|
+
"columns": 2
|
|
338
|
+
}
|
|
332
339
|
}
|
|
333
340
|
]
|
|
334
341
|
},
|
|
@@ -368,27 +375,6 @@
|
|
|
368
375
|
}
|
|
369
376
|
]
|
|
370
377
|
},
|
|
371
|
-
{
|
|
372
|
-
"route": "/book-a-call",
|
|
373
|
-
"kind": "page",
|
|
374
|
-
"pageType": "BookCall",
|
|
375
|
-
"schema": "BookCall",
|
|
376
|
-
"shell": "MarketingShell",
|
|
377
|
-
"chrome": "on",
|
|
378
|
-
"sections": [
|
|
379
|
-
{
|
|
380
|
-
"type": "hero",
|
|
381
|
-
"component": "Hero"
|
|
382
|
-
},
|
|
383
|
-
{
|
|
384
|
-
"type": "items",
|
|
385
|
-
"component": "Items",
|
|
386
|
-
"options": {
|
|
387
|
-
"columns": 3
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
]
|
|
391
|
-
},
|
|
392
378
|
{
|
|
393
379
|
"route": "/sign-in",
|
|
394
380
|
"kind": "route",
|
|
@@ -490,6 +476,56 @@
|
|
|
490
476
|
}
|
|
491
477
|
]
|
|
492
478
|
},
|
|
479
|
+
{
|
|
480
|
+
"route": "/meet",
|
|
481
|
+
"kind": "page",
|
|
482
|
+
"pageType": "LandingPage",
|
|
483
|
+
"schema": "WebPage",
|
|
484
|
+
"shell": "MarketingShell",
|
|
485
|
+
"chrome": "on",
|
|
486
|
+
"sections": [
|
|
487
|
+
{
|
|
488
|
+
"type": "hero",
|
|
489
|
+
"component": "Hero"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"type": "items",
|
|
493
|
+
"component": "Items",
|
|
494
|
+
"options": {
|
|
495
|
+
"columns": 2
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
]
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"route": "/meet/[slug]",
|
|
502
|
+
"kind": "page",
|
|
503
|
+
"pageType": "BookCall",
|
|
504
|
+
"schema": "BookCall",
|
|
505
|
+
"shell": "MarketingShell",
|
|
506
|
+
"chrome": "on",
|
|
507
|
+
"sections": [
|
|
508
|
+
{
|
|
509
|
+
"type": "hero",
|
|
510
|
+
"component": "Hero"
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"type": "cta",
|
|
514
|
+
"component": "CTA"
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
"type": "items",
|
|
518
|
+
"component": "Items",
|
|
519
|
+
"options": {
|
|
520
|
+
"columns": 3
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
"type": "content-block",
|
|
525
|
+
"component": "ContentBlock"
|
|
526
|
+
}
|
|
527
|
+
]
|
|
528
|
+
},
|
|
493
529
|
{
|
|
494
530
|
"route": "/portfolio",
|
|
495
531
|
"kind": "page",
|
|
@@ -99,28 +99,28 @@ Reference: `screenshots/home.png`, `copy/home.txt`. Ten page sections; the newsl
|
|
|
99
99
|
|
|
100
100
|
<!-- generated:end -->
|
|
101
101
|
|
|
102
|
-
### `/
|
|
102
|
+
### `/for` — UseCasesList · schema `CollectionPage` · chrome on
|
|
103
103
|
|
|
104
|
-
Rendered by the `/
|
|
104
|
+
Rendered by the `/for` route over `content/en/UseCasesList/for.mdx` — a UseCasesList page composing `sections[]` (operator ruling 2026-09-23), emitting the UseCasesList builder's `CollectionPage`. Since #6658 D4 it is a real list: one `items` section of three cards, each linking a `UseCase` page and titled with that page's title, so the `ItemList` names the three pages. The how-it-works steps moved to the product page.
|
|
105
105
|
|
|
106
|
-
<!-- generated:begin page=/
|
|
106
|
+
<!-- generated:begin page=/for -->
|
|
107
107
|
|
|
108
108
|
| # | Section | Component | Copy (first line) |
|
|
109
109
|
| --- | -------------------------------------------------------- | -------------- | ----------------------------------------------------------------- |
|
|
110
|
-
| 1 | `hero` (eyebrow "
|
|
111
|
-
| 2 | `items` (columns=3 · items ×3) | `Items` | {The jobs customers hire your product to do}
|
|
110
|
+
| 1 | `hero` (eyebrow "Customers" · 2 CTAs) | `Hero` | {Customers: who your product or service is for} |
|
|
111
|
+
| 2 | `items` (columns=3 · items ×3) | `Items` | {The jobs customers hire your product or service to do} |
|
|
112
112
|
| 3 | `logoCloud` (layout=inline · logos ×6) | `LogoCloud` | Don’t just take our word for it |
|
|
113
113
|
| 4 | `testimonials` (quote · items ×1) | `Testimonials` | {A customer quote, in their own words, about the result they got} |
|
|
114
|
-
| 5 | `cta` (box · checklist ×3 · 2 CTAs · closingLine) | `CTA` | {Switch to your product in time amount or less}
|
|
114
|
+
| 5 | `cta` (box · checklist ×3 · 2 CTAs · closingLine) | `CTA` | {Switch to your product or service in time amount or less} |
|
|
115
115
|
| 6 | `faq` (accordion · items ×5 · 1 CTA · initialOpen first) | `FAQ` | FAQs |
|
|
116
116
|
|
|
117
117
|
<!-- generated:end -->
|
|
118
118
|
|
|
119
|
-
### `/
|
|
119
|
+
### `/for/<slug>` — UseCase · schema `WebPage` → `Article` · chrome on
|
|
120
120
|
|
|
121
|
-
Three placeholder use cases from the base layer (#6658 D4): `first-use-case`, `second-use-case` and `third-use-case`, rendered as prose by the `/
|
|
121
|
+
Three placeholder use cases from the base layer (#6658 D4): `first-use-case`, `second-use-case` and `third-use-case`, rendered as prose by the `/for/[slug]` route.
|
|
122
122
|
|
|
123
|
-
<!-- generated:begin page=/
|
|
123
|
+
<!-- generated:begin page=/for/[slug] -->
|
|
124
124
|
|
|
125
125
|
_Detail route over `content/en/UseCase/` — 3 seed pages: `persona-1.mdx`, `persona-2.mdx`, `persona-3.mdx`._
|
|
126
126
|
<!-- generated:end -->
|
|
@@ -141,7 +141,7 @@ Lists every `SoftwareProduct` page by slug. The route is core since #6658: the p
|
|
|
141
141
|
|
|
142
142
|
### `/features/<slug>` (seeds: `feature-1` · `feature-2` · `feature-3`) — Feature · schema `WebPage` → `SoftwareApplication` (named for the feature, `featureList: [it]`) · chrome on
|
|
143
143
|
|
|
144
|
-
Reference: `screenshots/features.png`, `copy/features.txt`, plus the how-it-works steps. One page per feature (#6721, reversing #6658 D5), rendered by the `/features/[slug]` route over `content/en/Feature/<slug>.mdx`; the `/features` hub (`FeaturesList`) lists them. Its JSON-LD is a `WebPage` whose `mainEntity` is a `SoftwareApplication` named by the page title; its feature titles become the site's `featureList` when `_site.mdx` declares a `SoftwareApplication` secondary. It carries the former `/features` sections, with their links re-pointed to in-page anchors, and the how-it-works steps that moved off `/
|
|
144
|
+
Reference: `screenshots/features.png`, `copy/features.txt`, plus the how-it-works steps. One page per feature (#6721, reversing #6658 D5), rendered by the `/features/[slug]` route over `content/en/Feature/<slug>.mdx`; the `/features` hub (`FeaturesList`) lists them. Its JSON-LD is a `WebPage` whose `mainEntity` is a `SoftwareApplication` named by the page title; its feature titles become the site's `featureList` when `_site.mdx` declares a `SoftwareApplication` secondary. It carries the former `/features` sections, with their links re-pointed to in-page anchors, and the how-it-works steps that moved off `/for` (the brief's "how-it-works folds into the product page"). The nav's Features links and the home page's feature links point here.
|
|
145
145
|
|
|
146
146
|
<!-- generated:begin page=/features/[slug] -->
|
|
147
147
|
|
|
@@ -201,9 +201,10 @@ Reference: `screenshots/contact.png`, `copy/contact.txt`. The reference is a spl
|
|
|
201
201
|
|
|
202
202
|
<!-- generated:begin page=/contact -->
|
|
203
203
|
|
|
204
|
-
| # | Section | Component | Copy (first line)
|
|
205
|
-
| --- | --------------------------------------------------------- | --------- |
|
|
206
|
-
| 1 | `hero` (split · eyebrow "Contact" · checklist ×3 · 1 CTA) | `Hero` | Get every message in your email, free
|
|
204
|
+
| # | Section | Component | Copy (first line) |
|
|
205
|
+
| --- | --------------------------------------------------------- | --------- | ----------------------------------------- |
|
|
206
|
+
| 1 | `hero` (split · eyebrow "Contact" · checklist ×3 · 1 CTA) | `Hero` | Get every message in your email, free |
|
|
207
|
+
| 2 | `items` (tiles · columns=2 · items ×4) | `Items` | {Add appointment scheduling to your site} |
|
|
207
208
|
|
|
208
209
|
<!-- generated:end -->
|
|
209
210
|
|
|
@@ -233,16 +234,31 @@ A base-layer seed every starter carries (#6658 D5). The form posts to lead captu
|
|
|
233
234
|
|
|
234
235
|
<!-- generated:end -->
|
|
235
236
|
|
|
236
|
-
### `/
|
|
237
|
+
### `/meet` — LandingPage · schema `WebPage` · chrome on
|
|
237
238
|
|
|
238
|
-
|
|
239
|
+
An always-copied overlay seed (#6897 D3): a meeting-types hub, served by the generic `[slug]` route, listing the four `/meet/<slug>` tiles below through the same `items` `tiles` variant Contact uses. A template carrying the scheduling module serves its own `meet/` route directory instead, by Next.js static-segment precedence.
|
|
239
240
|
|
|
240
|
-
<!-- generated:begin page=/
|
|
241
|
+
<!-- generated:begin page=/meet -->
|
|
241
242
|
|
|
242
|
-
| # | Section | Component | Copy (first line)
|
|
243
|
-
| --- | -------------------------------------- | --------- |
|
|
244
|
-
| 1 | `hero` (eyebrow "
|
|
245
|
-
| 2 | `items` (columns=
|
|
243
|
+
| # | Section | Component | Copy (first line) |
|
|
244
|
+
| --- | -------------------------------------- | --------- | --------------------- |
|
|
245
|
+
| 1 | `hero` (eyebrow "Meet") | `Hero` | {Book a time with us} |
|
|
246
|
+
| 2 | `items` (tiles · columns=2 · items ×4) | `Items` | |
|
|
247
|
+
|
|
248
|
+
<!-- generated:end -->
|
|
249
|
+
|
|
250
|
+
### `/meet/[slug]` — BookCall · schema `WebPage` -> `Offer` · chrome on
|
|
251
|
+
|
|
252
|
+
Four always-copied overlay seeds (#6897 D4/D5), served by the new `[slug]/[detail]` route: each carries a visitor-facing "{Get in touch}" CTA to `/contact`, an owner-placeholder upgrade block linking the pricing page in place of the calendar, and a "<- All meeting types" link back to `/meet`. `book-a-call` also carries the retired `/book-a-call` page's "What happens on the call?" section, moved here verbatim (#6897 D10). Linked from the footer's Site pages column (`/meet/book-a-call`, always rendered - never gated on a surface, the same `/blog` precedent).
|
|
253
|
+
|
|
254
|
+
<!-- generated:begin page=/meet/[slug] -->
|
|
255
|
+
|
|
256
|
+
| # | Section | Component | Copy (first line) |
|
|
257
|
+
| --- | -------------------------------------- | -------------- | ------------------------------------------------ |
|
|
258
|
+
| 1 | `hero` (eyebrow "Book a Call" · 1 CTA) | `Hero` | Book a Call |
|
|
259
|
+
| 2 | `cta` (box · 1 CTA) | `CTA` | {What booking a call would do for your visitors} |
|
|
260
|
+
| 3 | `items` (columns=3 · items ×3) | `Items` | What happens on the call? |
|
|
261
|
+
| 4 | `content-block` (1 CTA) | `ContentBlock` | |
|
|
246
262
|
|
|
247
263
|
<!-- generated:end -->
|
|
248
264
|
|
|
@@ -389,21 +405,22 @@ marketing-site-free:
|
|
|
389
405
|
- { route: "/", kind: page, content: ["content/en/HomePage/home.mdx"] }
|
|
390
406
|
- { route: "/features", kind: page, content: ["content/en/FeaturesList/features.mdx"] }
|
|
391
407
|
- { route: "/features/[slug]", kind: page, contentDir: "content/en/Feature" }
|
|
392
|
-
- { route: "/
|
|
393
|
-
- { route: "/
|
|
408
|
+
- { route: "/for", kind: page, content: ["content/en/UseCasesList/for.mdx"] }
|
|
409
|
+
- { route: "/for/[slug]", kind: page, contentDir: "content/en/UseCase" }
|
|
394
410
|
- { route: "/pricing", kind: page, content: ["content/en/Pricing/pricing.mdx"] }
|
|
395
411
|
- { route: "/about", kind: page, content: ["content/en/AboutPage/about.mdx"] }
|
|
396
412
|
- { route: "/faq", kind: page, content: ["content/en/FAQPage/faq.mdx"] }
|
|
397
413
|
- { route: "/contact", kind: page, content: ["content/en/ContactPage/contact.mdx"] }
|
|
398
414
|
- { route: "/glossary", kind: page, content: ["content/en/GlossaryList/glossary.mdx"] }
|
|
399
415
|
- { route: "/newsletter", kind: page, content: ["content/en/NewsletterSignup/newsletter.mdx"] }
|
|
400
|
-
- { route: "/book-a-call", kind: page, content: ["content/en/BookCall/book-call.mdx"] }
|
|
401
416
|
- { route: "/sign-in", kind: route }
|
|
402
417
|
- { route: "/sign-up", kind: route }
|
|
403
418
|
- { route: "/privacy", kind: page, content: ["content/en/PrivacyPage/privacy.mdx"] }
|
|
404
419
|
- { route: "/terms", kind: page, content: ["content/en/TermsPage/terms.mdx"] }
|
|
405
420
|
- { route: "/purchase-policy", kind: page, content: ["content/en/PurchasePolicyPage/purchase-policy.mdx"] }
|
|
406
421
|
- { route: "/blog", kind: page, content: ["content/en/BlogList/blog.mdx"] }
|
|
422
|
+
- { route: "/meet", kind: page, content: ["content/en/LandingPage/meet.mdx"] }
|
|
423
|
+
- { route: "/meet/[slug]", kind: page, content: ["content/en/BookCall/book-a-call.mdx", "content/en/BookCall/onsite-estimate.mdx", "content/en/BookCall/start-project.mdx", "content/en/BookCall/onsite-service.mdx"] }
|
|
407
424
|
- { route: "/portfolio", kind: page, content: ["content/en/PortfolioList/portfolio.mdx"] }
|
|
408
425
|
- { route: "/portfolio/[slug]", kind: page, contentDir: "content/en/PortfolioItem" }
|
|
409
426
|
```
|
|
@@ -432,10 +449,10 @@ reversed (`docs/decisions/starter-roster-page-set.md` D4, D7).
|
|
|
432
449
|
| `Integration` | a placeholder starter has no integrations to list |
|
|
433
450
|
| `CoursesList` | there is no course offering |
|
|
434
451
|
| `Course` | there is no course offering |
|
|
435
|
-
| `CaseStudiesList` | proof pages need real customers; the
|
|
436
|
-
| `CaseStudy` | proof pages need real customers; the
|
|
437
|
-
| `TestimonialsList` | proof pages need real customers; the
|
|
438
|
-
| `ClientsList` | proof pages need real customers; the
|
|
452
|
+
| `CaseStudiesList` | proof pages need real customers; the customers page carries one placeholder testimonial and one logo strip instead |
|
|
453
|
+
| `CaseStudy` | proof pages need real customers; the customers page carries one placeholder testimonial and one logo strip instead |
|
|
454
|
+
| `TestimonialsList` | proof pages need real customers; the customers page carries one placeholder testimonial and one logo strip instead |
|
|
455
|
+
| `ClientsList` | proof pages need real customers; the customers page carries one placeholder testimonial and one logo strip instead |
|
|
439
456
|
|
|
440
457
|
**Rows added:**
|
|
441
458
|
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
"provenance.json": ".ailk-template.json",
|
|
7
7
|
"TEMPLATE-MANIFEST.json": ".ailk-site-manifest.json"
|
|
8
8
|
},
|
|
9
|
-
"postInstall": "Template marketing-site-free installed. Its /pricing, /privacy, /terms, /glossary, /newsletter
|
|
9
|
+
"postInstall": "Template marketing-site-free installed. Its /pricing, /privacy, /terms, /glossary, /newsletter and three /for/<slug> seed pages came with the base layer it extends (content/en/); /meet and its four /meet/<slug> pages came with the always-copied overlay - replace the placeholder copy before you launch."
|
|
10
10
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Standard
|
|
3
|
-
description: The standard design — the black-on-white foundation any shape wears by default: full navigation, a multi-column footer, the document-scroll home.
|
|
3
|
+
description: "The standard design — the black-on-white foundation any shape wears by default: full navigation, a multi-column footer, the document-scroll home."
|
|
4
4
|
colors:
|
|
5
5
|
bg: "#ffffff"
|
|
6
6
|
fg: "#000000"
|
|
@@ -15,6 +15,19 @@ colors:
|
|
|
15
15
|
fg-dark: "#ffffff"
|
|
16
16
|
border-dark: "#ffffff"
|
|
17
17
|
brand-dark: "#ffffff"
|
|
18
|
+
text-muted-dark: "#cccccc"
|
|
19
|
+
treatments:
|
|
20
|
+
corners: square
|
|
21
|
+
eyebrowCase: sentence
|
|
22
|
+
placeholders: fill
|
|
23
|
+
checkmarks: plain
|
|
24
|
+
layout:
|
|
25
|
+
nav: full
|
|
26
|
+
footer: columns
|
|
27
|
+
announcementBanner: false
|
|
28
|
+
home: default
|
|
29
|
+
copy:
|
|
30
|
+
density: standard
|
|
18
31
|
typography:
|
|
19
32
|
display:
|
|
20
33
|
fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
|
|
@@ -69,9 +82,12 @@ spacing:
|
|
|
69
82
|
stays on-system.
|
|
70
83
|
Edit the canonical file, never a copy — a test holds every copy to it.
|
|
71
84
|
|
|
72
|
-
The tokens above describe what the site RENDERS today.
|
|
73
|
-
content/_site.mdx
|
|
74
|
-
|
|
85
|
+
The tokens above describe what the site RENDERS today. The design's own
|
|
86
|
+
colours and shape knobs live in content/_site.mdx `theme:`, which
|
|
87
|
+
`create-ailk apply-design` replaces wholesale; the owner's brand colours and
|
|
88
|
+
fonts live beside it in `brand.colors` and `brand.fonts`, which applying a
|
|
89
|
+
design never rewrites. Radius and spacing are platform defaults a site
|
|
90
|
+
cannot override yet — see "Where this is heading" below.
|
|
75
91
|
-->
|
|
76
92
|
|
|
77
93
|
# Standard
|
|
@@ -84,6 +100,27 @@ Every page is composed from the AI Launch Kit component library (`@working-theor
|
|
|
84
100
|
|
|
85
101
|
## Colors
|
|
86
102
|
|
|
103
|
+
<!-- generated:begin colors -->
|
|
104
|
+
|
|
105
|
+
| Key | Value | Compiles to |
|
|
106
|
+
| ------------------- | --------- | -------------------------------------------------------------------------------------------------------------- |
|
|
107
|
+
| `bg` | `#ffffff` | `light.bg` |
|
|
108
|
+
| `fg` | `#000000` | `light.text` |
|
|
109
|
+
| `surface` | `#ffffff` | `light.surface` |
|
|
110
|
+
| `surface-secondary` | `#ffffff` | `light.bgMuted` |
|
|
111
|
+
| `border` | `#000000` | `light.border` |
|
|
112
|
+
| `text-muted` | `#333333` | `light.textMuted` |
|
|
113
|
+
| `brand` | `#000000` | `light.primary` |
|
|
114
|
+
| `fg-on-brand` | `#ffffff` | `light.primaryFg` |
|
|
115
|
+
| `accent` | `#000000` | `light.accent` |
|
|
116
|
+
| `bg-dark` | `#000000` | `dark.bg`, `dark.bgMuted` (fallback of L1), `dark.surface` (fallback of L2), `dark.primaryFg` (fallback of L4) |
|
|
117
|
+
| `fg-dark` | `#ffffff` | `dark.text` |
|
|
118
|
+
| `border-dark` | `#ffffff` | `dark.border` |
|
|
119
|
+
| `brand-dark` | `#ffffff` | `dark.primary`, `dark.accent` (fallback of L5) |
|
|
120
|
+
| `text-muted-dark` | `#cccccc` | `dark.textMuted` |
|
|
121
|
+
|
|
122
|
+
<!-- generated:end -->
|
|
123
|
+
|
|
87
124
|
### Primary
|
|
88
125
|
|
|
89
126
|
**Black** (`brand` `#000000`) fills the primary button; its label is white. The secondary button is white with a black hairline and black label.
|
|
@@ -100,6 +137,18 @@ Dark mode inverts: black ground, white ink, white rules, white primary button wi
|
|
|
100
137
|
|
|
101
138
|
## Typography
|
|
102
139
|
|
|
140
|
+
<!-- generated:begin typography -->
|
|
141
|
+
|
|
142
|
+
| Role | Family | Size | Weight | Line height | Tracking |
|
|
143
|
+
| ----------------- | ------------------------------------------------------------------------ | ---------- | ------ | ----------- | -------- |
|
|
144
|
+
| `display` | `system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif` | `3.5rem` | 700 | 1.1 | `normal` |
|
|
145
|
+
| `heading-section` | `system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif` | `3rem` | 700 | 1.1 | `normal` |
|
|
146
|
+
| `heading-item` | — | `2rem` | 700 | 1.375 | `normal` |
|
|
147
|
+
| `body` | `system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif` | `1.125rem` | 400 | 1.5 | — |
|
|
148
|
+
| `eyebrow` | — | `0.875rem` | 600 | 1.4 | `0.05em` |
|
|
149
|
+
|
|
150
|
+
<!-- generated:end -->
|
|
151
|
+
|
|
103
152
|
System sans throughout; no web font.
|
|
104
153
|
|
|
105
154
|
### Hierarchy
|
|
@@ -118,10 +167,53 @@ The small label above a section heading is **kept** as part of this foundation's
|
|
|
118
167
|
|
|
119
168
|
## Layout
|
|
120
169
|
|
|
170
|
+
<!-- generated:begin layout -->
|
|
171
|
+
|
|
172
|
+
| Knob | Value |
|
|
173
|
+
| -------------------- | --------- |
|
|
174
|
+
| `nav` | `full` |
|
|
175
|
+
| `footer` | `columns` |
|
|
176
|
+
| `announcementBanner` | `false` |
|
|
177
|
+
| `home` | `default` |
|
|
178
|
+
|
|
179
|
+
| Spacing | Value |
|
|
180
|
+
| ---------------- | -------- |
|
|
181
|
+
| `section` | `7rem` |
|
|
182
|
+
| `section-mobile` | `4rem` |
|
|
183
|
+
| `card` | `1.5rem` |
|
|
184
|
+
| `grid` | `1.5rem` |
|
|
185
|
+
| `container` | `1280px` |
|
|
186
|
+
| `measure` | `36rem` |
|
|
187
|
+
|
|
188
|
+
<!-- generated:end -->
|
|
189
|
+
|
|
121
190
|
Full navigation; a multi-column footer; the default home. The home-only announcement banner is off by default (`layout.announcementBanner`). Every page this site carries is listed in its roster of record, `.ailk-site-manifest.json` at the site root. Shared foundation: a 1280px container, sections at 7rem (4rem below 1024px), card grids at 1.5rem, breakpoints 320 / 768 / 1024 / 1440.
|
|
122
191
|
|
|
192
|
+
## Copy
|
|
193
|
+
|
|
194
|
+
<!-- generated:begin copy -->
|
|
195
|
+
|
|
196
|
+
Copy density: standard — pages carry the ordinary amount of body copy for their section.
|
|
197
|
+
<!-- generated:end -->
|
|
198
|
+
|
|
123
199
|
## Shapes
|
|
124
200
|
|
|
201
|
+
<!-- generated:begin shapes -->
|
|
202
|
+
|
|
203
|
+
| Rounded | Value |
|
|
204
|
+
| -------- | --------- |
|
|
205
|
+
| `button` | `0.5rem` |
|
|
206
|
+
| `card` | `0.75rem` |
|
|
207
|
+
|
|
208
|
+
| Treatment | Value |
|
|
209
|
+
| ------------------------- | ---------- |
|
|
210
|
+
| `treatments.corners` | `square` |
|
|
211
|
+
| `treatments.eyebrowCase` | `sentence` |
|
|
212
|
+
| `treatments.placeholders` | `fill` |
|
|
213
|
+
| `treatments.checkmarks` | `plain` |
|
|
214
|
+
|
|
215
|
+
<!-- generated:end -->
|
|
216
|
+
|
|
125
217
|
Square corners everywhere (`theme.corners: square`) — buttons, cards, the auth card, image placeholders; the tokens above are the base foundation's defaults a site overrides.
|
|
126
218
|
|
|
127
219
|
## Components
|
|
@@ -156,8 +248,8 @@ The foundation's pinned direction is the pacing of a classic wireframe marketing
|
|
|
156
248
|
## Do's and Don'ts
|
|
157
249
|
|
|
158
250
|
- **Do** keep every page built from registered sections. If a section you need does not exist, request it rather than writing one-off markup.
|
|
159
|
-
- **Do**
|
|
160
|
-
- **Don't** add a colour accent. The foundation's one idea is black on white; a brand pass adds colour deliberately, through
|
|
251
|
+
- **Do** set your brand colours (`primary`, `primaryFg`, `accent`, per mode) in `content/_site.mdx` `brand.colors` and your fonts (`display`, `body`) in `brand.fonts`; they reach every section and survive applying another design, which replaces `theme:`.
|
|
252
|
+
- **Don't** add a colour accent. The foundation's one idea is black on white; a brand pass adds colour deliberately, through `brand.colors`.
|
|
161
253
|
- **Don't** replace a black rule with a shadow or a grey fill.
|
|
162
254
|
- **Don't** hard-code the "heading toward" values above into a page. They arrive through the platform, or not at all.
|
|
163
255
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
],
|
|
12
12
|
"shape": "local-business-service",
|
|
13
13
|
"design": "standard",
|
|
14
|
-
"generatedHash": "
|
|
14
|
+
"generatedHash": "1251ff7dc2a780c9725c97571ca27979704a2f08dc968df2b789e93d20698b9a",
|
|
15
15
|
"layout": {
|
|
16
16
|
"nav": "full",
|
|
17
17
|
"footer": "columns",
|
|
@@ -114,6 +114,61 @@
|
|
|
114
114
|
"chrome": "on",
|
|
115
115
|
"sections": []
|
|
116
116
|
},
|
|
117
|
+
{
|
|
118
|
+
"route": "/for",
|
|
119
|
+
"kind": "page",
|
|
120
|
+
"pageType": "UseCasesList",
|
|
121
|
+
"schema": "UseCasesList",
|
|
122
|
+
"shell": "MarketingShell",
|
|
123
|
+
"chrome": "on",
|
|
124
|
+
"sections": [
|
|
125
|
+
{
|
|
126
|
+
"type": "hero",
|
|
127
|
+
"component": "Hero"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"type": "items",
|
|
131
|
+
"component": "Items",
|
|
132
|
+
"options": {
|
|
133
|
+
"columns": 3
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"type": "logoCloud",
|
|
138
|
+
"component": "LogoCloud",
|
|
139
|
+
"options": {
|
|
140
|
+
"layout": "inline"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"type": "testimonials",
|
|
145
|
+
"component": "Testimonials"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"type": "cta",
|
|
149
|
+
"component": "CTA"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"type": "faq",
|
|
153
|
+
"component": "FAQ"
|
|
154
|
+
}
|
|
155
|
+
]
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"route": "/for/[slug]",
|
|
159
|
+
"kind": "page",
|
|
160
|
+
"contentDir": "content/en/UseCase",
|
|
161
|
+
"seeds": [
|
|
162
|
+
"content/en/UseCase/persona-1.mdx",
|
|
163
|
+
"content/en/UseCase/persona-2.mdx",
|
|
164
|
+
"content/en/UseCase/persona-3.mdx"
|
|
165
|
+
],
|
|
166
|
+
"pageType": "UseCase",
|
|
167
|
+
"schema": "UseCase",
|
|
168
|
+
"shell": "MarketingShell",
|
|
169
|
+
"chrome": "on",
|
|
170
|
+
"sections": []
|
|
171
|
+
},
|
|
117
172
|
{
|
|
118
173
|
"route": "/about",
|
|
119
174
|
"kind": "page",
|
|
@@ -143,6 +198,13 @@
|
|
|
143
198
|
{
|
|
144
199
|
"type": "hero",
|
|
145
200
|
"component": "Hero"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"type": "items",
|
|
204
|
+
"component": "Items",
|
|
205
|
+
"options": {
|
|
206
|
+
"columns": 2
|
|
207
|
+
}
|
|
146
208
|
}
|
|
147
209
|
]
|
|
148
210
|
},
|
|
@@ -208,25 +270,22 @@
|
|
|
208
270
|
]
|
|
209
271
|
},
|
|
210
272
|
{
|
|
211
|
-
"route": "/
|
|
212
|
-
"kind": "
|
|
213
|
-
"pageType":
|
|
214
|
-
"schema":
|
|
273
|
+
"route": "/sign-in",
|
|
274
|
+
"kind": "route",
|
|
275
|
+
"pageType": null,
|
|
276
|
+
"schema": null,
|
|
215
277
|
"shell": "MarketingShell",
|
|
216
278
|
"chrome": "on",
|
|
217
|
-
"sections": [
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
]
|
|
279
|
+
"sections": []
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"route": "/sign-up",
|
|
283
|
+
"kind": "route",
|
|
284
|
+
"pageType": null,
|
|
285
|
+
"schema": null,
|
|
286
|
+
"shell": "MarketingShell",
|
|
287
|
+
"chrome": "on",
|
|
288
|
+
"sections": []
|
|
230
289
|
},
|
|
231
290
|
{
|
|
232
291
|
"route": "/purchase-policy",
|
|
@@ -311,6 +370,56 @@
|
|
|
311
370
|
}
|
|
312
371
|
]
|
|
313
372
|
},
|
|
373
|
+
{
|
|
374
|
+
"route": "/meet",
|
|
375
|
+
"kind": "page",
|
|
376
|
+
"pageType": "LandingPage",
|
|
377
|
+
"schema": "WebPage",
|
|
378
|
+
"shell": "MarketingShell",
|
|
379
|
+
"chrome": "on",
|
|
380
|
+
"sections": [
|
|
381
|
+
{
|
|
382
|
+
"type": "hero",
|
|
383
|
+
"component": "Hero"
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"type": "items",
|
|
387
|
+
"component": "Items",
|
|
388
|
+
"options": {
|
|
389
|
+
"columns": 2
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
]
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"route": "/meet/[slug]",
|
|
396
|
+
"kind": "page",
|
|
397
|
+
"pageType": "BookCall",
|
|
398
|
+
"schema": "BookCall",
|
|
399
|
+
"shell": "MarketingShell",
|
|
400
|
+
"chrome": "on",
|
|
401
|
+
"sections": [
|
|
402
|
+
{
|
|
403
|
+
"type": "hero",
|
|
404
|
+
"component": "Hero"
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"type": "cta",
|
|
408
|
+
"component": "CTA"
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"type": "items",
|
|
412
|
+
"component": "Items",
|
|
413
|
+
"options": {
|
|
414
|
+
"columns": 3
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"type": "content-block",
|
|
419
|
+
"component": "ContentBlock"
|
|
420
|
+
}
|
|
421
|
+
]
|
|
422
|
+
},
|
|
314
423
|
{
|
|
315
424
|
"route": "/portfolio",
|
|
316
425
|
"kind": "page",
|