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
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
"categories": [
|
|
5
5
|
"accounting",
|
|
6
6
|
"legal",
|
|
7
|
+
"consulting",
|
|
7
8
|
"hvac",
|
|
8
9
|
"roofing",
|
|
9
10
|
"plumbing",
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
],
|
|
17
18
|
"shape": "organization-product",
|
|
18
19
|
"design": "standard",
|
|
19
|
-
"generatedHash": "
|
|
20
|
+
"generatedHash": "bc9ceb909dc92d2f442fd5cadddc073363a7be19e780f36e26b703d99c6e680a",
|
|
20
21
|
"layout": {
|
|
21
22
|
"nav": "full",
|
|
22
23
|
"footer": "columns",
|
|
@@ -132,27 +133,47 @@
|
|
|
132
133
|
]
|
|
133
134
|
},
|
|
134
135
|
{
|
|
135
|
-
"route": "/
|
|
136
|
-
"kind": "
|
|
137
|
-
"pageType":
|
|
138
|
-
"schema":
|
|
136
|
+
"route": "/features",
|
|
137
|
+
"kind": "page",
|
|
138
|
+
"pageType": "FeaturesList",
|
|
139
|
+
"schema": "FeaturesList",
|
|
139
140
|
"shell": "MarketingShell",
|
|
140
141
|
"chrome": "on",
|
|
141
|
-
"sections": [
|
|
142
|
+
"sections": [
|
|
143
|
+
{
|
|
144
|
+
"type": "hero",
|
|
145
|
+
"component": "Hero"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"type": "items",
|
|
149
|
+
"component": "Items",
|
|
150
|
+
"options": {
|
|
151
|
+
"columns": 3
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"type": "cta",
|
|
156
|
+
"component": "CTA"
|
|
157
|
+
}
|
|
158
|
+
]
|
|
142
159
|
},
|
|
143
160
|
{
|
|
144
|
-
"route": "/
|
|
161
|
+
"route": "/features/[slug]",
|
|
145
162
|
"kind": "page",
|
|
146
|
-
"contentDir": "content/en/
|
|
147
|
-
"seeds": [
|
|
148
|
-
|
|
149
|
-
|
|
163
|
+
"contentDir": "content/en/Feature",
|
|
164
|
+
"seeds": [
|
|
165
|
+
"content/en/Feature/feature-1.mdx",
|
|
166
|
+
"content/en/Feature/feature-2.mdx",
|
|
167
|
+
"content/en/Feature/feature-3.mdx"
|
|
168
|
+
],
|
|
169
|
+
"pageType": "Feature",
|
|
170
|
+
"schema": "Feature",
|
|
150
171
|
"shell": "MarketingShell",
|
|
151
172
|
"chrome": "on",
|
|
152
173
|
"sections": []
|
|
153
174
|
},
|
|
154
175
|
{
|
|
155
|
-
"route": "/
|
|
176
|
+
"route": "/for",
|
|
156
177
|
"kind": "page",
|
|
157
178
|
"pageType": "UseCasesList",
|
|
158
179
|
"schema": "UseCasesList",
|
|
@@ -192,13 +213,13 @@
|
|
|
192
213
|
]
|
|
193
214
|
},
|
|
194
215
|
{
|
|
195
|
-
"route": "/
|
|
216
|
+
"route": "/for/[slug]",
|
|
196
217
|
"kind": "page",
|
|
197
218
|
"contentDir": "content/en/UseCase",
|
|
198
219
|
"seeds": [
|
|
199
|
-
"content/en/UseCase/
|
|
200
|
-
"content/en/UseCase/
|
|
201
|
-
"content/en/UseCase/
|
|
220
|
+
"content/en/UseCase/persona-1.mdx",
|
|
221
|
+
"content/en/UseCase/persona-2.mdx",
|
|
222
|
+
"content/en/UseCase/persona-3.mdx"
|
|
202
223
|
],
|
|
203
224
|
"pageType": "UseCase",
|
|
204
225
|
"schema": "UseCase",
|
|
@@ -316,15 +337,11 @@
|
|
|
316
337
|
"component": "Hero"
|
|
317
338
|
},
|
|
318
339
|
{
|
|
319
|
-
"type": "
|
|
320
|
-
"component": "
|
|
340
|
+
"type": "items",
|
|
341
|
+
"component": "Items",
|
|
321
342
|
"options": {
|
|
322
|
-
"
|
|
343
|
+
"columns": 2
|
|
323
344
|
}
|
|
324
|
-
},
|
|
325
|
-
{
|
|
326
|
-
"type": "testimonials",
|
|
327
|
-
"component": "Testimonials"
|
|
328
345
|
}
|
|
329
346
|
]
|
|
330
347
|
},
|
|
@@ -368,27 +385,6 @@
|
|
|
368
385
|
}
|
|
369
386
|
]
|
|
370
387
|
},
|
|
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
388
|
{
|
|
393
389
|
"route": "/sign-in",
|
|
394
390
|
"kind": "route",
|
|
@@ -512,6 +508,100 @@
|
|
|
512
508
|
"chrome": "on",
|
|
513
509
|
"sections": []
|
|
514
510
|
},
|
|
511
|
+
{
|
|
512
|
+
"route": "/reports",
|
|
513
|
+
"kind": "page",
|
|
514
|
+
"pageType": "ReportsList",
|
|
515
|
+
"schema": "ReportsList",
|
|
516
|
+
"shell": "MarketingShell",
|
|
517
|
+
"chrome": "on",
|
|
518
|
+
"sections": [
|
|
519
|
+
{
|
|
520
|
+
"type": "hero",
|
|
521
|
+
"component": "Hero"
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
"type": "cta",
|
|
525
|
+
"component": "CTA"
|
|
526
|
+
}
|
|
527
|
+
]
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"route": "/referral",
|
|
531
|
+
"kind": "page",
|
|
532
|
+
"pageType": "LandingPage",
|
|
533
|
+
"schema": "WebPage",
|
|
534
|
+
"shell": "MarketingShell",
|
|
535
|
+
"chrome": "on",
|
|
536
|
+
"sections": [
|
|
537
|
+
{
|
|
538
|
+
"type": "hero",
|
|
539
|
+
"component": "Hero"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"type": "stair-steps",
|
|
543
|
+
"component": "StairSteps"
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"type": "cta",
|
|
547
|
+
"component": "CTA"
|
|
548
|
+
}
|
|
549
|
+
]
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
"route": "/portfolio",
|
|
553
|
+
"kind": "page",
|
|
554
|
+
"pageType": "PortfolioList",
|
|
555
|
+
"schema": "PortfolioList",
|
|
556
|
+
"shell": "MarketingShell",
|
|
557
|
+
"chrome": "on",
|
|
558
|
+
"sections": [
|
|
559
|
+
{
|
|
560
|
+
"type": "hero",
|
|
561
|
+
"component": "Hero",
|
|
562
|
+
"options": {
|
|
563
|
+
"gapBelow": "tight",
|
|
564
|
+
"size": "display",
|
|
565
|
+
"surface": "wash-secondary"
|
|
566
|
+
}
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"type": "items",
|
|
570
|
+
"component": "Items",
|
|
571
|
+
"options": {
|
|
572
|
+
"surface": "none",
|
|
573
|
+
"columns": 2
|
|
574
|
+
}
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
"type": "cta",
|
|
578
|
+
"component": "CTA"
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"type": "faq",
|
|
582
|
+
"component": "FAQ",
|
|
583
|
+
"options": {
|
|
584
|
+
"surface": "gray-100"
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
]
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"route": "/portfolio/[slug]",
|
|
591
|
+
"kind": "page",
|
|
592
|
+
"contentDir": "content/en/PortfolioItem",
|
|
593
|
+
"seeds": [
|
|
594
|
+
"content/en/PortfolioItem/sample-four.mdx",
|
|
595
|
+
"content/en/PortfolioItem/sample-one.mdx",
|
|
596
|
+
"content/en/PortfolioItem/sample-three.mdx",
|
|
597
|
+
"content/en/PortfolioItem/sample-two.mdx"
|
|
598
|
+
],
|
|
599
|
+
"pageType": "PortfolioItem",
|
|
600
|
+
"schema": "PortfolioItem",
|
|
601
|
+
"shell": "MarketingShell",
|
|
602
|
+
"chrome": "on",
|
|
603
|
+
"sections": []
|
|
604
|
+
},
|
|
515
605
|
{
|
|
516
606
|
"route": "/blog",
|
|
517
607
|
"kind": "page",
|
|
@@ -595,9 +685,16 @@
|
|
|
595
685
|
},
|
|
596
686
|
{
|
|
597
687
|
"route": "/reports/[slug]",
|
|
598
|
-
"kind": "
|
|
599
|
-
"
|
|
600
|
-
"
|
|
688
|
+
"kind": "page",
|
|
689
|
+
"contentDir": "content/en/ReportPage",
|
|
690
|
+
"seeds": [
|
|
691
|
+
"content/en/ReportPage/annual-letter-2024.mdx",
|
|
692
|
+
"content/en/ReportPage/field-notes-2023.mdx",
|
|
693
|
+
"content/en/ReportPage/platform-shift-2025.mdx",
|
|
694
|
+
"content/en/ReportPage/state-of-the-market-2026.mdx"
|
|
695
|
+
],
|
|
696
|
+
"pageType": "ReportPage",
|
|
697
|
+
"schema": "ReportPage",
|
|
601
698
|
"shell": "MarketingShell",
|
|
602
699
|
"chrome": "on",
|
|
603
700
|
"sections": []
|
|
@@ -92,40 +92,45 @@ The base rows come first, exactly as the base layer and the always-copied overla
|
|
|
92
92
|
|
|
93
93
|
<!-- generated:end -->
|
|
94
94
|
|
|
95
|
-
`/
|
|
95
|
+
`/for` (a UseCasesList page composing sections — operator ruling 2026-09-23; a list of the three use cases since #6658 D4):
|
|
96
96
|
|
|
97
|
-
<!-- generated:begin page=/
|
|
97
|
+
<!-- generated:begin page=/for -->
|
|
98
98
|
|
|
99
99
|
| # | Section | Component | Copy (first line) |
|
|
100
100
|
| --- | -------------------------------------------------------- | -------------- | ----------------------------------------------------------------- |
|
|
101
|
-
| 1 | `hero` (eyebrow "
|
|
102
|
-
| 2 | `items` (columns=3 · items ×3) | `Items` | {The jobs customers hire your product to do}
|
|
101
|
+
| 1 | `hero` (eyebrow "Customers" · 2 CTAs) | `Hero` | {Customers: who your product or service is for} |
|
|
102
|
+
| 2 | `items` (columns=3 · items ×3) | `Items` | {The jobs customers hire your product or service to do} |
|
|
103
103
|
| 3 | `logoCloud` (layout=inline · logos ×6) | `LogoCloud` | Don’t just take our word for it |
|
|
104
104
|
| 4 | `testimonials` (quote · items ×1) | `Testimonials` | {A customer quote, in their own words, about the result they got} |
|
|
105
|
-
| 5 | `cta` (box · checklist ×3 · 2 CTAs · closingLine) | `CTA` | {Switch to your product in time amount or less}
|
|
105
|
+
| 5 | `cta` (box · checklist ×3 · 2 CTAs · closingLine) | `CTA` | {Switch to your product or service in time amount or less} |
|
|
106
106
|
| 6 | `faq` (accordion · items ×5 · 1 CTA · initialOpen first) | `FAQ` | FAQs |
|
|
107
107
|
|
|
108
108
|
<!-- generated:end -->
|
|
109
109
|
|
|
110
|
-
`/
|
|
110
|
+
`/for/[slug]` (#6658 D4):
|
|
111
111
|
|
|
112
|
-
<!-- generated:begin page=/
|
|
112
|
+
<!-- generated:begin page=/for/[slug] -->
|
|
113
113
|
|
|
114
|
-
_Detail route over `content/en/UseCase/` — 3 seed pages: `
|
|
114
|
+
_Detail route over `content/en/UseCase/` — 3 seed pages: `persona-1.mdx`, `persona-2.mdx`, `persona-3.mdx`._
|
|
115
115
|
<!-- generated:end -->
|
|
116
116
|
|
|
117
117
|
`/software` (code route — the product listing, core since #6658):
|
|
118
118
|
|
|
119
|
-
<!-- generated:begin page=/
|
|
119
|
+
<!-- generated:begin page=/features -->
|
|
120
|
+
|
|
121
|
+
| # | Section | Component | Copy (first line) |
|
|
122
|
+
| --- | ------------------------------------------------- | --------- | ----------------------------------------------- |
|
|
123
|
+
| 1 | `hero` (eyebrow "Features" · 2 CTAs) | `Hero` | {Features: what your product does} |
|
|
124
|
+
| 2 | `items` (columns=3 · items ×3) | `Items` | {Everything your product does for the customer} |
|
|
125
|
+
| 3 | `cta` (box · checklist ×3 · 2 CTAs · closingLine) | `CTA` | {Switch to your product in time amount or less} |
|
|
120
126
|
|
|
121
|
-
_Code route — no content, no sections._
|
|
122
127
|
<!-- generated:end -->
|
|
123
128
|
|
|
124
|
-
`/
|
|
129
|
+
`/features/[slug]` (one page per feature — #6721, reversing #6658 D3's single product page):
|
|
125
130
|
|
|
126
|
-
<!-- generated:begin page=/
|
|
131
|
+
<!-- generated:begin page=/features/[slug] -->
|
|
127
132
|
|
|
128
|
-
_Detail route over `content/en/
|
|
133
|
+
_Detail route over `content/en/Feature/` — 3 seed pages: `feature-1.mdx`, `feature-2.mdx`, `feature-3.mdx`._
|
|
129
134
|
<!-- generated:end -->
|
|
130
135
|
|
|
131
136
|
`/pricing`:
|
|
@@ -172,15 +177,14 @@ _Detail route over `content/en/SoftwareProduct/` — 1 seed page: `product.mdx`.
|
|
|
172
177
|
|
|
173
178
|
<!-- generated:begin page=/contact -->
|
|
174
179
|
|
|
175
|
-
| # | Section
|
|
176
|
-
| --- |
|
|
177
|
-
| 1 | `hero` (split · eyebrow "
|
|
178
|
-
| 2 | `
|
|
179
|
-
| 3 | `testimonials` (quote · items ×1) | `Testimonials` | {A customer quote, in their own words, about the result they got} |
|
|
180
|
+
| # | Section | Component | Copy (first line) |
|
|
181
|
+
| --- | --------------------------------------------------------- | --------- | ----------------------------------------- |
|
|
182
|
+
| 1 | `hero` (split · eyebrow "Contact" · checklist ×3 · 1 CTA) | `Hero` | Get every message in your email, free |
|
|
183
|
+
| 2 | `items` (tiles · columns=2 · items ×4) | `Items` | {Add appointment scheduling to your site} |
|
|
180
184
|
|
|
181
185
|
<!-- generated:end -->
|
|
182
186
|
|
|
183
|
-
`/glossary`, `/newsletter
|
|
187
|
+
`/glossary`, `/newsletter` (#6658 D5 — every starter carries them). `/book-a-call` is retired (#6897 D10); this template's `scheduling` module serves its own live `/meet` and `/meet/[slug]` pages instead.
|
|
184
188
|
|
|
185
189
|
<!-- generated:begin page=/glossary -->
|
|
186
190
|
|
|
@@ -201,15 +205,6 @@ _Detail route over `content/en/SoftwareProduct/` — 1 seed page: `product.mdx`.
|
|
|
201
205
|
|
|
202
206
|
<!-- generated:end -->
|
|
203
207
|
|
|
204
|
-
<!-- generated:begin page=/book-a-call -->
|
|
205
|
-
|
|
206
|
-
| # | Section | Component | Copy (first line) |
|
|
207
|
-
| --- | -------------------------------------- | --------- | ------------------------------------------ |
|
|
208
|
-
| 1 | `hero` (eyebrow "Book a call" · 1 CTA) | `Hero` | {Book a call: what a visitor gets from it} |
|
|
209
|
-
| 2 | `items` (columns=3 · items ×3) | `Items` | What happens on the call? |
|
|
210
|
-
|
|
211
|
-
<!-- generated:end -->
|
|
212
|
-
|
|
213
208
|
`/sign-in`:
|
|
214
209
|
|
|
215
210
|
<!-- generated:begin page=/sign-in -->
|
|
@@ -377,7 +372,7 @@ _Code route — no content, no sections._
|
|
|
377
372
|
|
|
378
373
|
<!-- generated:begin page=/reports/[slug] -->
|
|
379
374
|
|
|
380
|
-
|
|
375
|
+
_Detail route over `content/en/ReportPage/` — 4 seed pages: `annual-letter-2024.mdx`, `field-notes-2023.mdx`, `platform-shift-2025.mdx`, `state-of-the-market-2026.mdx`._
|
|
381
376
|
<!-- generated:end -->
|
|
382
377
|
|
|
383
378
|
### `/projects`, `/projects/<slug>`, `/projects/apply` — CollectionPage / WebPage · schema `ProjectsList` / `Project` · signal-collectors
|
|
@@ -412,6 +407,49 @@ Authored per form (#3960): `contact` (if the Pro contact form redirects), `newsl
|
|
|
412
407
|
_Detail route over `content/en/ThankYouPage/` — 3 seed pages: `apply.mdx`, `contact.mdx`, `newsletter.mdx`._
|
|
413
408
|
<!-- generated:end -->
|
|
414
409
|
|
|
410
|
+
### `/reports` — ReportsList hub · schema `CollectionPage` · signal-collectors
|
|
411
|
+
|
|
412
|
+
Spec 6892 D2/D3 — a signal-collectors module sample, self-seeded alongside its four `ReportPage` spokes at `/reports/<slug>` (below). Its seed carries `hero` and `cta`; the card grid is a generated `reports-list` section the route appends from the module's own seeds (never hand-authored).
|
|
413
|
+
|
|
414
|
+
<!-- generated:begin page=/reports -->
|
|
415
|
+
|
|
416
|
+
| # | Section | Component | Copy (first line) |
|
|
417
|
+
| --- | ------------------------------------- | --------- | ------------------------------------------- |
|
|
418
|
+
| 1 | `hero` (centered · eyebrow "Reports") | `Hero` | Research on {your field}, published in full |
|
|
419
|
+
| 2 | `cta` (minimal · 1 CTA) | `CTA` | Want the next one as it lands? |
|
|
420
|
+
|
|
421
|
+
<!-- generated:end -->
|
|
422
|
+
|
|
423
|
+
### `/referral` — flow landing page · schema `LandingPage` · signal-collectors
|
|
424
|
+
|
|
425
|
+
Spec 6892 D3 — a signal-collectors module sample: the referral magnet, whose CTA opens the `referral` flow at `/flows/referral/start`.
|
|
426
|
+
|
|
427
|
+
<!-- generated:begin page=/referral -->
|
|
428
|
+
|
|
429
|
+
| # | Section | Component | Copy (first line) |
|
|
430
|
+
| --- | -------------------------------------------------------------- | ------------ | ---------------------------------------- |
|
|
431
|
+
| 1 | `hero` (centered · eyebrow "Referrals" · checklist ×3 · 1 CTA) | `Hero` | Know someone who should be on this list? |
|
|
432
|
+
| 2 | `stair-steps` (tiles ×3) | `StairSteps` | Three steps, about a minute |
|
|
433
|
+
| 3 | `cta` (minimal · 1 CTA) | `CTA` | Make an introduction |
|
|
434
|
+
|
|
435
|
+
<!-- generated:end -->
|
|
436
|
+
|
|
437
|
+
<!-- generated:begin page=/portfolio -->
|
|
438
|
+
|
|
439
|
+
| # | Section | Component | Copy (first line) |
|
|
440
|
+
| --- | ---------------------------------------------------------------------------------------------------------- | --------- | --------------------------------------- |
|
|
441
|
+
| 1 | `hero` (default · gapBelow=tight · size=display · surface=wash-secondary · eyebrow "{Portfolio}" · 2 CTAs) | `Hero` | {The work, before and after.} |
|
|
442
|
+
| 2 | `items` (tile · surface=none · columns=2 · items ×4) | `Items` | |
|
|
443
|
+
| 3 | `cta` (beam · chips ×3 · 2 CTAs) | `CTA` | {Is your site the before or the after?} |
|
|
444
|
+
| 4 | `faq` (centered · surface=gray-100 · accordion · items ×3 · initialOpen first) | `FAQ` | Frequently Asked Questions |
|
|
445
|
+
|
|
446
|
+
<!-- generated:end -->
|
|
447
|
+
|
|
448
|
+
<!-- generated:begin page=/portfolio/[slug] -->
|
|
449
|
+
|
|
450
|
+
_Detail route over `content/en/PortfolioItem/` — 4 seed pages: `sample-four.mdx`, `sample-one.mdx`, `sample-three.mdx`, `sample-two.mdx`._
|
|
451
|
+
<!-- generated:end -->
|
|
452
|
+
|
|
415
453
|
## 2a. State and persistence — Pro delta
|
|
416
454
|
|
|
417
455
|
Everything in the Free manifest § 2a applies. Pro adds:
|
|
@@ -436,22 +474,21 @@ Everything in the Free manifest § 2a applies. Pro adds:
|
|
|
436
474
|
```
|
|
437
475
|
marketing-site:
|
|
438
476
|
requires: [marketing, docs-blog, scheduling, signal-collectors]
|
|
439
|
-
categories: [accounting, legal, hvac, roofing, plumbing, electrical, landscaping, auto-repair, real-estate, technology, medical-specialty]
|
|
477
|
+
categories: [accounting, legal, consulting, hvac, roofing, plumbing, electrical, landscaping, auto-repair, real-estate, technology, medical-specialty]
|
|
440
478
|
shape: organization-product
|
|
441
479
|
design: standard
|
|
442
480
|
roster:
|
|
443
481
|
- { route: "/", kind: page, content: ["content/en/HomePage/home.mdx"] }
|
|
444
|
-
- { route: "/
|
|
445
|
-
- { route: "/
|
|
446
|
-
- { route: "/
|
|
447
|
-
- { route: "/
|
|
482
|
+
- { route: "/features", kind: page, content: ["content/en/FeaturesList/features.mdx"] }
|
|
483
|
+
- { route: "/features/[slug]", kind: page, contentDir: "content/en/Feature" }
|
|
484
|
+
- { route: "/for", kind: page, content: ["content/en/UseCasesList/for.mdx"] }
|
|
485
|
+
- { route: "/for/[slug]", kind: page, contentDir: "content/en/UseCase" }
|
|
448
486
|
- { route: "/pricing", kind: page, content: ["content/en/Pricing/pricing.mdx"] }
|
|
449
487
|
- { route: "/about", kind: page, content: ["content/en/AboutPage/about.mdx"] }
|
|
450
488
|
- { route: "/faq", kind: page, content: ["content/en/FAQPage/faq.mdx"] }
|
|
451
489
|
- { route: "/contact", kind: page, content: ["content/en/ContactPage/contact.mdx"] }
|
|
452
490
|
- { route: "/glossary", kind: page, content: ["content/en/GlossaryList/glossary.mdx"] }
|
|
453
491
|
- { route: "/newsletter", kind: page, content: ["content/en/NewsletterSignup/newsletter.mdx"] }
|
|
454
|
-
- { route: "/book-a-call", kind: page, content: ["content/en/BookCall/book-call.mdx"] }
|
|
455
492
|
- { route: "/sign-in", kind: route }
|
|
456
493
|
- { route: "/sign-up", kind: route }
|
|
457
494
|
- { route: "/privacy", kind: page, content: ["content/en/PrivacyPage/privacy.mdx"] }
|
|
@@ -460,6 +497,10 @@ marketing-site:
|
|
|
460
497
|
- { route: "/projects", kind: page, content: ["content/en/ProjectsList/projects.mdx"] }
|
|
461
498
|
- { route: "/projects/[slug]", kind: page, contentDir: "content/en/Project" }
|
|
462
499
|
- { route: "/thanks/[slug]", kind: page, contentDir: "content/en/ThankYouPage" }
|
|
500
|
+
- { route: "/reports", kind: page, content: ["content/en/ReportsList/reports.mdx"] }
|
|
501
|
+
- { route: "/referral", kind: page, content: ["content/en/LandingPage/referral.mdx"] }
|
|
502
|
+
- { route: "/portfolio", kind: page, content: ["content/en/PortfolioList/portfolio.mdx"] }
|
|
503
|
+
- { route: "/portfolio/[slug]", kind: page, contentDir: "content/en/PortfolioItem" }
|
|
463
504
|
- { route: "/blog", kind: page, content: ["apps/web/content/en/blog/index.mdx", "apps/web/content/en/blog/01-8-things-that-prove-coding-skills-are-directly-linked-to-successfully-assembling-ikea-furniture.mdx", "apps/web/content/en/blog/02-5-ways-to-guarantee-your-startup-goes-nowhere-fast.mdx", "apps/web/content/en/blog/03-10-ideas-that-will-guarantee-1000x-growth.mdx", "apps/web/content/en/blog/04-7-keys-to-saas-success-the-elite-doesnt-want-you-to-know.mdx", "apps/web/content/en/blog/launching-ailk.mdx"] }
|
|
464
505
|
- { route: "/docs", kind: page, content: ["apps/web/content/en/docs/getting-started.mdx", "apps/web/content/en/docs/configure.mdx", "apps/web/content/en/docs/deploy.mdx"] }
|
|
465
506
|
- { route: "/meet", kind: route }
|
|
@@ -469,7 +510,7 @@ marketing-site:
|
|
|
469
510
|
- { route: "/flows/[slug]", kind: route }
|
|
470
511
|
- { route: "/flows/[slug]/start", kind: route }
|
|
471
512
|
- { route: "/flows/[slug]/results/[payload]", kind: route }
|
|
472
|
-
- { route: "/reports/[slug]", kind:
|
|
513
|
+
- { route: "/reports/[slug]", kind: page, contentDir: "content/en/ReportPage" }
|
|
473
514
|
```
|
|
474
515
|
|
|
475
516
|
<!-- generated:end -->
|
|
@@ -491,11 +532,11 @@ Every component the roster rows' seed content composes today (generated):
|
|
|
491
532
|
|
|
492
533
|
<!-- generated:begin inventory -->
|
|
493
534
|
|
|
494
|
-
| Tier | Used by this template
|
|
495
|
-
| -------- |
|
|
496
|
-
| Shell | `MarketingShell`
|
|
497
|
-
| Chrome | `Nav`, `Footer`, `Banner` (+ `BannerConsentIsland`, `BannerDismissIsland`)
|
|
498
|
-
| Sections | `ContentBlock`, `CTA`, `DecisionSplit`, `DocumentChassis`, `FAQ`, `Feature`, `GlossaryIndex`, `Hero`, `Items`, `LogoCloud`, `MediaBand`, `Newsletter`, `Pricing`, `Team`, `Testimonials` |
|
|
535
|
+
| Tier | Used by this template |
|
|
536
|
+
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
537
|
+
| Shell | `MarketingShell` |
|
|
538
|
+
| Chrome | `Nav`, `Footer`, `Banner` (+ `BannerConsentIsland`, `BannerDismissIsland`) |
|
|
539
|
+
| Sections | `ContentBlock`, `CTA`, `DecisionSplit`, `DocumentChassis`, `FAQ`, `Feature`, `GlossaryIndex`, `Hero`, `Items`, `LogoCloud`, `MediaBand`, `Newsletter`, `Pricing`, `StairSteps`, `Team`, `Testimonials` |
|
|
499
540
|
|
|
500
541
|
<!-- generated:end -->
|
|
501
542
|
|
|
@@ -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,7 +248,12 @@ 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.
|
|
255
|
+
|
|
256
|
+
## Revisions
|
|
257
|
+
|
|
258
|
+
- **2026-09-24 — tile hover is outline-only (operator ruling, /build-starter live pass, #6687).** A comparison tile (`items` in `variant: tile`) hovers by shifting its border to the accent only — no lift, no glow — matching the Positionary `/alternatives` ruling of 2026-08-29. Expressed as the bounded `tileHover: "outline"` option (Card `wash-outline`); the library default `lift` is unchanged for every other site.
|
|
259
|
+
- **2026-09-25 — the before-after section's rulings (operator, /build-starter live pass, #6687).** One layout, not two variants: a panel body is an image or rows of content under the same label bar. The label bar is the tone's fill (brand → black bar, white text) at the heading-4 role; a `neutral` panel keeps a white bar. The view selector is underline tabs with the underline under the current tab only (no full-width baseline), active black, inactive muted, black on hover. The pager is a ghost "‹ Previous" at the left edge and "Next ›" at the right edge. The catalyst column carries no icon tile — it starts at the arrow, or at an image when one is set. No back-to-all link and no tag chips on the seed pages.
|