create-ailk 0.6.1 → 0.8.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 +87 -14
- package/component-catalog.json +735 -95
- package/component-catalog.md +13 -7
- package/dist/add-module-core.d.ts +22 -0
- package/dist/add-module-core.js +50 -0
- package/dist/add-module.d.ts +89 -0
- package/dist/add-module.js +334 -0
- package/dist/category-profile.d.ts +126 -0
- package/dist/category-profile.js +262 -0
- package/dist/cli.js +89 -29
- package/dist/index.d.ts +4 -2
- package/dist/index.js +6 -1
- package/dist/lib/extract-module-bundle.d.ts +56 -1
- package/dist/lib/extract-module-bundle.js +170 -14
- package/dist/lib/license-key-files.d.ts +15 -0
- package/dist/lib/license-key-files.js +102 -0
- package/dist/lib/module-license-gate.d.ts +79 -0
- package/dist/lib/module-license-gate.js +160 -12
- package/dist/lib/module-tier.d.ts +45 -16
- package/dist/lib/module-tier.js +76 -0
- package/dist/lib/pro-callout.d.ts +16 -10
- package/dist/lib/pro-callout.js +34 -3
- package/dist/license-set.d.ts +34 -0
- package/dist/license-set.js +194 -0
- package/dist/module-architecture.d.ts +20 -0
- package/dist/module-architecture.js +77 -19
- package/dist/modules/commerce/0.6.1.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.1.tar.gz +0 -0
- package/dist/modules/saas-product/0.6.1.tar.gz +0 -0
- package/dist/modules/scheduling/0.6.1.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.1.tar.gz +0 -0
- package/dist/parse-args.d.ts +85 -10
- package/dist/parse-args.js +227 -15
- package/dist/programmatic.d.ts +81 -5
- package/dist/programmatic.js +291 -32
- package/dist/site-chrome.d.ts +18 -7
- package/dist/site-chrome.js +32 -14
- package/dist/site-roster.d.ts +127 -0
- package/dist/site-roster.js +499 -0
- package/dist/starter-grid.d.ts +216 -0
- package/dist/starter-grid.js +449 -0
- package/dist/surfaces.d.ts +20 -7
- package/dist/surfaces.js +204 -24
- package/dist/sync-routes.d.ts +9 -0
- package/dist/sync-routes.js +2 -2
- package/dist/template-manifest.d.ts +94 -19
- package/dist/template-manifest.js +170 -289
- package/dist/template-names.d.ts +14 -12
- package/dist/template-names.js +13 -17
- package/package.json +6 -4
- package/site-templates/_base/content/en/BookCall/book-call.mdx +52 -0
- 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 +65 -0
- package/site-templates/_base/content/en/NewsletterSignup/newsletter.mdx +67 -0
- 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/Pricing/pricing.mdx +71 -62
- package/site-templates/_base/content/en/PrivacyPage/privacy.mdx +17 -3
- package/site-templates/_base/content/en/TermsPage/terms.mdx +2 -3
- package/site-templates/_base/content/en/UseCase/persona-1.mdx +69 -0
- package/site-templates/_base/content/en/UseCase/persona-2.mdx +69 -0
- package/site-templates/_base/content/en/UseCase/persona-3.mdx +69 -0
- package/site-templates/designs/minimalism/DESIGN.md +162 -0
- package/site-templates/designs/standard/DESIGN.md +167 -0
- package/site-templates/marketing-site/DESIGN.md +59 -40
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +376 -57
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +230 -90
- package/site-templates/marketing-site/ailk-template.json +1 -0
- package/site-templates/marketing-site-free/DESIGN.md +59 -40
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +323 -63
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +323 -113
- package/site-templates/marketing-site-free/ailk-template.json +3 -2
- 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/minimalism-site/DESIGN.md +54 -40
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.json +246 -19
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.md +173 -51
- package/site-templates/minimalism-site/ailk-template.json +3 -2
- package/site-templates/minimalism-site/content/en/BookCall/book-call.mdx +52 -0
- package/site-templates/minimalism-site/content/en/ContactPage/contact.mdx +3 -37
- package/site-templates/minimalism-site/content/en/PurchasePolicyPage/purchase-policy.mdx +123 -0
- package/site-templates/saas-product/DESIGN.md +59 -40
- package/site-templates/saas-product/TEMPLATE-MANIFEST.md +9 -1
- package/site-templates/shapes/local-business-service/TEMPLATE-MANIFEST.json +369 -0
- package/site-templates/shapes/local-business-service/TEMPLATE-MANIFEST.md +302 -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/shapes/local-business-service/content/en/PurchasePolicyPage/purchase-policy.mdx +123 -0
- 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 +362 -0
- package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.md +300 -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/shapes/organization-service/content/en/Service/first-engagement.mdx +38 -0
- package/site-templates/shapes/organization-service/content/en/Service/second-engagement.mdx +38 -0
- package/site-templates/shapes/organization-service/content/en/Service/third-engagement.mdx +38 -0
- package/site-templates/shapes/organization-service/content/en/ServicesList/services.mdx +72 -0
- package/site-templates/shapes/organization-service/provenance.json +4 -0
- package/site-templates/shapes/person-service/TEMPLATE-MANIFEST.json +369 -0
- package/site-templates/shapes/person-service/TEMPLATE-MANIFEST.md +299 -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 +169 -0
- package/site-templates/shapes/person-service/content/en/PurchasePolicyPage/purchase-policy.mdx +123 -0
- 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/settings.json +15 -0
- package/templates/.claude/skills/README.md +10 -9
- package/templates/.claude/skills/{scaffold-auth → add-auth}/SKILL.md +7 -7
- package/templates/.claude/skills/{scaffold-auth → add-auth}/references/env-vars.md +2 -2
- package/templates/.claude/skills/{scaffold-auth → add-auth}/references/oauth-app-setup.md +3 -3
- package/templates/.claude/skills/{scaffold-page → add-page}/SKILL.md +76 -62
- package/templates/.claude/skills/add-page/references/page-types.md +115 -0
- package/templates/.claude/skills/{scaffold-page → add-page}/templates/content.mdx.tmpl +4 -4
- package/templates/.claude/skills/{scaffold-page → add-page}/templates/route.tsx.tmpl +1 -1
- package/templates/.claude/skills/{audit-site → check-site}/SKILL.md +16 -17
- package/templates/.claude/skills/{audit-site → check-site}/references/common-errors.md +3 -3
- package/templates/.claude/skills/{audit-site → check-site}/references/findings-glossary.md +16 -14
- package/templates/.claude/skills/{audit-site → check-site}/references/severity-levels.md +1 -1
- package/templates/.claude/skills/fill-page/SKILL.md +180 -0
- package/templates/.claude/skills/fill-page/profiles/plumbing.yaml +80 -0
- package/templates/.claude/skills/fill-page/references/section-sources.md +41 -0
- 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/{provision-config → setup-deploy}/SKILL.md +73 -41
- package/templates/.claude/skills/{provision-config → setup-deploy}/references/env-vars-template.md +21 -30
- package/templates/.claude/skills/setup-deploy/references/runbook-template.md +204 -0
- package/templates/.claude/skills/{provision-config → setup-deploy}/references/vercel-json-template.md +1 -1
- package/templates/.claude/skills/upgrade-plan/SKILL.md +117 -0
- package/templates/.claude/skills/upgrade-plan/references/options.md +24 -0
- package/templates/.claude/skills/upgrade-plan/scripts/upgrade-plan.ts +527 -0
- package/templates/.github/workflows/ci.yml +5 -0
- package/templates/CLAUDE.md +8 -2
- package/templates/DESIGN.md +56 -44
- package/templates/README.md +116 -46
- package/templates/apps/api/.env.example +2 -1
- package/templates/apps/api/CLAUDE.md +3 -2
- package/templates/apps/api/package.json +1 -1
- package/templates/apps/api/src/config/__tests__/index.test.ts +146 -10
- package/templates/apps/api/src/config/index.ts +46 -14
- 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/license-key-store.ts +45 -0
- package/templates/apps/api/src/lib/site.ts +5 -3
- package/templates/apps/api/src/middleware/__tests__/auth.database-not-configured.test.ts +97 -0
- package/templates/apps/api/src/middleware/auth.ts +9 -0
- package/templates/apps/api/src/openapi/spec.ts +63 -12
- package/templates/apps/api/src/routes/content/__tests__/get-page.test.ts +127 -5
- package/templates/apps/api/src/routes/content/get-page.ts +86 -2
- 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/server.ts +13 -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/lead-routing.ts +140 -30
- package/templates/apps/api/src/services/leads-inbox.ts +48 -11
- package/templates/apps/mcp/__tests__/audit-single-page.test.ts +75 -1
- package/templates/apps/mcp/__tests__/lib/audit-single-page-readiness-scan.test.ts +57 -9
- package/templates/apps/mcp/__tests__/parity.test.ts +5 -4
- package/templates/apps/mcp/package.json +2 -1
- package/templates/apps/mcp/src/index.ts +7 -0
- package/templates/apps/mcp/src/lib/audit-single-page.ts +36 -10
- package/templates/apps/mcp/src/lib/license-key-store.ts +45 -0
- package/templates/apps/mcp/src/tools/create_project.ts +21 -6
- package/templates/apps/web/__tests__/setup.ts +18 -0
- package/templates/apps/web/app/[locale]/(auth)/forgot-password/forgot-password-card.tsx +10 -2
- package/templates/apps/web/app/[locale]/(auth)/layout.tsx +2 -2
- package/templates/apps/web/app/[locale]/(auth)/reset-password/reset-password-card.tsx +10 -4
- package/templates/apps/web/app/[locale]/(auth)/sign-in/sign-in-card.tsx +22 -14
- package/templates/apps/web/app/[locale]/(auth)/sign-up/sign-up-card.tsx +26 -18
- package/templates/apps/web/app/[locale]/(authed)/account/page.tsx +12 -4
- package/templates/apps/web/app/[locale]/[slug]/__tests__/page.test.tsx +35 -4
- package/templates/apps/web/app/[locale]/[slug]/page.tsx +49 -9
- package/templates/apps/web/app/[locale]/book-a-call/page.tsx +50 -0
- package/templates/apps/web/app/[locale]/careers/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/case-studies/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/clients/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/contact/ConversationalIntakeWrapper.tsx +67 -29
- package/templates/apps/web/app/[locale]/contact/__tests__/ConversationalIntakeWrapper.test.tsx +94 -11
- 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 +228 -86
- 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 +115 -7
- package/templates/apps/web/app/[locale]/contact/site-contact-email.ts +54 -0
- package/templates/apps/web/app/[locale]/courses/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/downloads/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/events/__tests__/page-renderer-migration.test.tsx +4 -5
- 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]/glossary/page.tsx +50 -0
- package/templates/apps/web/app/[locale]/how-to/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/how-to/page.tsx +25 -15
- package/templates/apps/web/app/[locale]/integrations/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/layout.tsx +146 -52
- 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 +142 -0
- package/templates/apps/web/app/[locale]/partners/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/portfolio/[slug]/page.tsx +59 -0
- package/templates/apps/web/app/[locale]/portfolio/page.tsx +49 -0
- package/templates/apps/web/app/[locale]/products/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/projects/__tests__/page-renderer-migration.test.tsx +4 -5
- package/templates/apps/web/app/[locale]/{cancellation → purchase-policy}/page.tsx +15 -10
- package/templates/apps/web/app/[locale]/resources/__tests__/page-renderer-migration.test.tsx +4 -5
- package/templates/apps/web/app/[locale]/services/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/software/[slug]/page.tsx +14 -1
- package/templates/apps/web/app/[locale]/software/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/software/page.tsx +25 -15
- package/templates/apps/web/app/[locale]/tech-articles/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/tech-articles/page.tsx +25 -15
- package/templates/apps/web/app/[locale]/testimonials/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/use-cases/[slug]/page.tsx +63 -0
- package/templates/apps/web/app/[locale]/use-cases/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/use-cases/page.tsx +15 -2
- package/templates/apps/web/app/[locale]/whitepapers/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/whitepapers/page.tsx +25 -15
- package/templates/apps/web/app/error-fallback.tsx +17 -45
- package/templates/apps/web/app/not-found.tsx +14 -38
- package/templates/apps/web/app/og/route.tsx +6 -0
- package/templates/apps/web/eslint.config.mjs +3 -0
- package/templates/apps/web/instrumentation.ts +14 -0
- package/templates/apps/web/lib/__tests__/structured-data.test.tsx +38 -0
- package/templates/apps/web/lib/license-key-store.ts +52 -0
- package/templates/apps/web/lib/nav-config.ts +82 -18
- package/templates/apps/web/lib/prisma-for-auth.ts +9 -6
- package/templates/apps/web/lib/site-brand.tsx +1 -1
- package/templates/apps/web/lib/site-chrome.ts +3 -3
- package/templates/apps/web/lib/site-identity.ts +148 -0
- package/templates/apps/web/lib/site-theme.ts +11 -0
- package/templates/apps/web/messages/en.json +78 -37
- package/templates/apps/web/public/android-chrome-192x192.png +0 -0
- package/templates/apps/web/public/android-chrome-512x512.png +0 -0
- package/templates/apps/web/public/apple-touch-icon.png +0 -0
- package/templates/apps/web/public/favicon-16x16.png +0 -0
- package/templates/apps/web/public/favicon-32x32.png +0 -0
- package/templates/apps/web/public/favicon.ico +0 -0
- package/templates/apps/web/public/favicon.svg +3 -3
- package/templates/apps/web/public/logomark.svg +6 -3
- package/templates/apps/web/public/logos/ai-launch-kit-light.svg +4 -0
- package/templates/apps/web/public/logos/ai-launch-kit.svg +4 -0
- package/templates/apps/web/public/logos/atomic-agent-light.svg +4 -0
- package/templates/apps/web/public/logos/atomic-agent.svg +4 -0
- package/templates/apps/web/public/logos/salessmyth-light.svg +4 -0
- package/templates/apps/web/public/logos/salessmyth.svg +4 -0
- package/templates/apps/web/public/site.webmanifest +4 -4
- package/templates/apps/web/public/wordmark-light.svg +4 -0
- package/templates/apps/web/public/wordmark.svg +3 -3
- package/templates/apps/web/security-headers.config.ts +5 -1
- package/templates/content/_site.mdx +25 -0
- package/templates/content/en/AboutPage/about.mdx +150 -144
- package/templates/content/en/BlogList/blog.mdx +126 -0
- package/templates/content/en/ContactPage/contact.mdx +21 -92
- package/templates/content/en/FAQPage/faq.mdx +86 -57
- package/templates/content/en/HomePage/home.mdx +268 -217
- package/templates/content/en/PurchasePolicyPage/purchase-policy.mdx +181 -0
- package/templates/content/en/UseCasesList/use-cases.mdx +170 -0
- package/templates/database/CHANGELOG.md +14 -0
- package/templates/database/package.json +1 -1
- package/templates/package.json +3 -1
- package/templates/tools/lint-architecture.ts +315 -0
- package/templates/tools/tsconfig.json +14 -0
- package/versions.json +33 -33
- package/site-templates/simple-service/DESIGN.md +0 -148
- package/site-templates/simple-service/TEMPLATE-MANIFEST.json +0 -240
- package/site-templates/simple-service/TEMPLATE-MANIFEST.md +0 -278
- package/site-templates/simple-service/ailk-template.json +0 -10
- package/site-templates/simple-service/content/en/ContactPage/contact.mdx +0 -67
- 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-schema/SKILL.md +0 -277
- package/templates/.claude/skills/add-schema/references/conflict-handling.md +0 -200
- package/templates/.claude/skills/add-schema/references/file-finding.md +0 -123
- package/templates/.claude/skills/add-schema/references/schema-types.md +0 -234
- package/templates/.claude/skills/provision-config/references/runbook-template.md +0 -248
- package/templates/.claude/skills/scaffold-page/references/page-types.md +0 -169
- package/templates/.claude/skills/suggest-site-pages/SKILL.md +0 -242
- package/templates/.claude/skills/suggest-site-pages/references/categories.md +0 -287
- package/templates/apps/web/app/[locale]/contact/ContactForm.tsx +0 -150
- package/templates/apps/web/app/[locale]/returns/page.tsx +0 -44
- package/templates/apps/web/app/[locale]/shipping/page.tsx +0 -44
- package/templates/content/en/CancellationPolicyPage/cancellation.mdx +0 -108
- package/templates/content/en/LandingPage/blog.mdx +0 -83
- package/templates/content/en/LandingPage/features.mdx +0 -103
- package/templates/content/en/LandingPage/how-it-works.mdx +0 -143
- package/templates/content/en/ReturnsPolicyPage/returns.mdx +0 -108
- package/templates/content/en/ShippingPolicyPage/shipping.mdx +0 -108
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"requires": ["marketing"],
|
|
4
4
|
"extends": "_base",
|
|
5
5
|
"installMap": {
|
|
6
|
-
"provenance.json": ".ailk-template.json"
|
|
6
|
+
"provenance.json": ".ailk-template.json",
|
|
7
|
+
"TEMPLATE-MANIFEST.json": ".ailk-site-manifest.json"
|
|
7
8
|
},
|
|
8
|
-
"postInstall": "Template marketing-site-free installed. Its /pricing, /privacy and /
|
|
9
|
+
"postInstall": "Template marketing-site-free installed. Its /pricing, /privacy, /terms, /glossary, /newsletter, /book-a-call and three /use-cases/<slug> seed pages came with the base layer it extends (content/en/) - replace the placeholder copy before you launch."
|
|
9
10
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "NewsletterSignup"
|
|
3
|
+
slug: "newsletter"
|
|
4
|
+
title: "{Start a free newsletter with Substack}"
|
|
5
|
+
description: "{Or upgrade to Pro to capture every subscriber and build your own marketing database.}"
|
|
6
|
+
schema:
|
|
7
|
+
mainEntity:
|
|
8
|
+
"@type": "Offer"
|
|
9
|
+
name: "{Your newsletter name}"
|
|
10
|
+
price: 0
|
|
11
|
+
priceCurrency: "USD"
|
|
12
|
+
sections:
|
|
13
|
+
[
|
|
14
|
+
{
|
|
15
|
+
"id": "hero",
|
|
16
|
+
"type": "hero",
|
|
17
|
+
"data":
|
|
18
|
+
{
|
|
19
|
+
"eyebrow": "Newsletter",
|
|
20
|
+
"headline": "{Start a free newsletter with Substack}",
|
|
21
|
+
"subheadline": "{Or upgrade to Pro to capture every subscriber and build your own marketing database.}",
|
|
22
|
+
"primaryCta":
|
|
23
|
+
{ "label": "{Connect Substack}", "href": "https://substack.com" },
|
|
24
|
+
"secondaryCta":
|
|
25
|
+
{
|
|
26
|
+
"label": "{Upgrade to Pro}",
|
|
27
|
+
"href": "https://ailaunchkit.ai/pricing",
|
|
28
|
+
"variant": "outline",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "faq",
|
|
34
|
+
"type": "faq",
|
|
35
|
+
"data":
|
|
36
|
+
{
|
|
37
|
+
"headline": "FAQs",
|
|
38
|
+
"presentation": "expanded",
|
|
39
|
+
"items":
|
|
40
|
+
[
|
|
41
|
+
{
|
|
42
|
+
"question": "{How often will I hear from you?}",
|
|
43
|
+
"answer": "{Answer in one or two plain sentences}",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"question": "{What will I get?}",
|
|
47
|
+
"answer": "{Answer in one or two plain sentences}",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"question": "{Can I unsubscribe?}",
|
|
51
|
+
"answer": "{Answer in one or two plain sentences}",
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
]
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
{/* Rendered from frontmatter `sections[]` by the /newsletter route. The Free template has no signup form: the hero points the owner to Substack, or to Pro for subscriber capture. The `schema:` Offer is the page's JSON-LD main entity — a free subscription. Placeholder copy — replace every {brace} with your own words before you launch. */}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "Pricing"
|
|
3
|
+
slug: "pricing"
|
|
4
|
+
title: "{Upgrade to Pro with Commerce}"
|
|
5
|
+
description: "{Checkout isn't included on the Free template. Upgrade to Pro with Commerce and take payments on your site with Stripe.}"
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "hero",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"variant": "centered",
|
|
14
|
+
"gapBelow": "tight",
|
|
15
|
+
"eyebrow": "Pricing",
|
|
16
|
+
"headline": "{Upgrade to Pro with Commerce}",
|
|
17
|
+
"subheadline": "{Checkout isn't included on the Free template. Upgrade to Pro with Commerce and take payments on your site with Stripe.}",
|
|
18
|
+
"primaryCta":
|
|
19
|
+
{
|
|
20
|
+
"label": "{Add Commerce for SMB}",
|
|
21
|
+
"href": "https://ailaunchkit.ai/pricing",
|
|
22
|
+
},
|
|
23
|
+
"secondaryCta":
|
|
24
|
+
{
|
|
25
|
+
"label": "{Add Commerce for SaaS}",
|
|
26
|
+
"href": "https://ailaunchkit.ai/pricing",
|
|
27
|
+
"variant": "outline",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "plans",
|
|
33
|
+
"type": "pricing",
|
|
34
|
+
"data":
|
|
35
|
+
{
|
|
36
|
+
"variant": "three-tiers-with-toggle",
|
|
37
|
+
"billingToggle": true,
|
|
38
|
+
"toggleStyle": "switch",
|
|
39
|
+
"gapAbove": "tight",
|
|
40
|
+
"cardLayout": "centered",
|
|
41
|
+
"plans":
|
|
42
|
+
[
|
|
43
|
+
{
|
|
44
|
+
"name": "Basic plan",
|
|
45
|
+
"price": { "monthly": "{price}/mo", "annual": "{price}/yr" },
|
|
46
|
+
"features":
|
|
47
|
+
[
|
|
48
|
+
"{A feature this plan includes}",
|
|
49
|
+
"{A feature this plan includes}",
|
|
50
|
+
"{A feature this plan includes}",
|
|
51
|
+
],
|
|
52
|
+
"cta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "Business plan",
|
|
56
|
+
"price": { "monthly": "{price}/mo", "annual": "{price}/yr" },
|
|
57
|
+
"features":
|
|
58
|
+
[
|
|
59
|
+
"{A feature this plan adds}",
|
|
60
|
+
"{A feature this plan includes}",
|
|
61
|
+
"{A feature this plan includes}",
|
|
62
|
+
"{A feature this plan includes}",
|
|
63
|
+
],
|
|
64
|
+
"cta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "Enterprise plan",
|
|
68
|
+
"price": { "monthly": "{price}/mo", "annual": "{price}/yr" },
|
|
69
|
+
"features":
|
|
70
|
+
[
|
|
71
|
+
"{A feature this plan adds}",
|
|
72
|
+
"{A feature this plan includes}",
|
|
73
|
+
"{A feature this plan includes}",
|
|
74
|
+
"{A feature this plan includes}",
|
|
75
|
+
"{A feature this plan includes}",
|
|
76
|
+
],
|
|
77
|
+
"cta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "logo-cloud",
|
|
84
|
+
"type": "logoCloud",
|
|
85
|
+
"data":
|
|
86
|
+
{
|
|
87
|
+
"headline": "{Don’t just take our word for it}",
|
|
88
|
+
"headlineStyle": "label",
|
|
89
|
+
"logos":
|
|
90
|
+
[
|
|
91
|
+
{
|
|
92
|
+
"name": "SalesSmyth",
|
|
93
|
+
"src": "/logos/salessmyth.svg",
|
|
94
|
+
"darkSrc": "/logos/salessmyth-light.svg",
|
|
95
|
+
"width": 1118,
|
|
96
|
+
"height": 147,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"name": "AI Launch Kit",
|
|
100
|
+
"src": "/logos/ai-launch-kit.svg",
|
|
101
|
+
"darkSrc": "/logos/ai-launch-kit-light.svg",
|
|
102
|
+
"width": 1248,
|
|
103
|
+
"height": 144,
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "Atomic Agent",
|
|
107
|
+
"src": "/logos/atomic-agent.svg",
|
|
108
|
+
"darkSrc": "/logos/atomic-agent-light.svg",
|
|
109
|
+
"width": 1320,
|
|
110
|
+
"height": 148,
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
"layout": "inline",
|
|
114
|
+
"treatment": "monochrome",
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "testimonial",
|
|
119
|
+
"type": "testimonials",
|
|
120
|
+
"data":
|
|
121
|
+
{
|
|
122
|
+
"variant": "quote",
|
|
123
|
+
"items":
|
|
124
|
+
[
|
|
125
|
+
{
|
|
126
|
+
"quote": "{A customer quote, in their own words, about the result they got}",
|
|
127
|
+
"author": "{Customer name}",
|
|
128
|
+
"role": "{Their title, their company}",
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"id": "switch",
|
|
135
|
+
"type": "cta",
|
|
136
|
+
"data":
|
|
137
|
+
{
|
|
138
|
+
"variant": "box",
|
|
139
|
+
"headline": "{Switch to your product in time amount or less}",
|
|
140
|
+
"description": "{You shouldn't have to experience a painful problem. With your product, you can finally achieve a value outcome or get a big improvement.}",
|
|
141
|
+
"checklist":
|
|
142
|
+
["No credit card required", "Cancel any time", "Live chat support"],
|
|
143
|
+
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
144
|
+
"secondaryCta":
|
|
145
|
+
{
|
|
146
|
+
"label": "{Secondary CTA}",
|
|
147
|
+
"href": "/pricing",
|
|
148
|
+
"variant": "outline",
|
|
149
|
+
},
|
|
150
|
+
"closingLine": "{Social Proof goes here}",
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "faq",
|
|
155
|
+
"type": "faq",
|
|
156
|
+
"data":
|
|
157
|
+
{
|
|
158
|
+
"headline": "{FAQs}",
|
|
159
|
+
"description": "{One sentence that invites visitors to ask what this list does not answer}",
|
|
160
|
+
"actions":
|
|
161
|
+
[
|
|
162
|
+
{
|
|
163
|
+
"kind": "button",
|
|
164
|
+
"label": "Contact",
|
|
165
|
+
"href": "/contact",
|
|
166
|
+
"variant": "outline",
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
"presentation": "accordion",
|
|
170
|
+
"initialOpen": "none",
|
|
171
|
+
"items":
|
|
172
|
+
[
|
|
173
|
+
{
|
|
174
|
+
"question": "{A question your customers actually ask}",
|
|
175
|
+
"answer": "{Answer the question in two or three plain sentences}",
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"question": "{A question your customers actually ask}",
|
|
179
|
+
"answer": "{Answer the question in two or three plain sentences}",
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"question": "{A question your customers actually ask}",
|
|
183
|
+
"answer": "{Answer the question in two or three plain sentences}",
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"question": "{A question your customers actually ask}",
|
|
187
|
+
"answer": "{Answer the question in two or three plain sentences}",
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"question": "{A question your customers actually ask}",
|
|
191
|
+
"answer": "{Answer the question in two or three plain sentences}",
|
|
192
|
+
},
|
|
193
|
+
],
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
]
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
{/* Rendered from frontmatter `sections[]`. Seed content — replace the plan names, prices and features above with your own before you launch. */}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: Minimalism
|
|
3
|
-
description:
|
|
2
|
+
name: Minimalism
|
|
3
|
+
description: The minimalism design — the same black-on-white foundation, presented as a nine-slide scroll-snap deck home with a mark-only navigation and a centred footer.
|
|
4
4
|
colors:
|
|
5
5
|
bg: "#ffffff"
|
|
6
6
|
fg: "#000000"
|
|
@@ -18,20 +18,21 @@ colors:
|
|
|
18
18
|
typography:
|
|
19
19
|
display:
|
|
20
20
|
fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
|
|
21
|
-
fontSize: "
|
|
22
|
-
fontWeight:
|
|
23
|
-
lineHeight: 1
|
|
24
|
-
letterSpacing: "
|
|
21
|
+
fontSize: "3.5rem"
|
|
22
|
+
fontWeight: 700
|
|
23
|
+
lineHeight: 1.1
|
|
24
|
+
letterSpacing: "normal"
|
|
25
25
|
heading-section:
|
|
26
26
|
fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
|
|
27
|
-
fontSize: "
|
|
28
|
-
fontWeight:
|
|
29
|
-
lineHeight: 1.
|
|
30
|
-
letterSpacing: "
|
|
27
|
+
fontSize: "3rem"
|
|
28
|
+
fontWeight: 700
|
|
29
|
+
lineHeight: 1.1
|
|
30
|
+
letterSpacing: "normal"
|
|
31
31
|
heading-item:
|
|
32
|
-
fontSize: "
|
|
33
|
-
fontWeight:
|
|
32
|
+
fontSize: "2rem"
|
|
33
|
+
fontWeight: 700
|
|
34
34
|
lineHeight: 1.375
|
|
35
|
+
letterSpacing: "normal"
|
|
35
36
|
body:
|
|
36
37
|
fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
|
|
37
38
|
fontSize: "1.125rem"
|
|
@@ -43,32 +44,43 @@ typography:
|
|
|
43
44
|
lineHeight: 1.4
|
|
44
45
|
letterSpacing: "0.05em"
|
|
45
46
|
rounded:
|
|
46
|
-
button: "0.
|
|
47
|
+
button: "0.5rem"
|
|
47
48
|
card: "0.75rem"
|
|
48
49
|
spacing:
|
|
49
|
-
section: "
|
|
50
|
+
section: "7rem"
|
|
51
|
+
section-mobile: "4rem"
|
|
50
52
|
card: "1.5rem"
|
|
51
53
|
grid: "1.5rem"
|
|
52
54
|
container: "1280px"
|
|
55
|
+
measure: "36rem"
|
|
53
56
|
---
|
|
54
57
|
|
|
55
58
|
<!--
|
|
56
59
|
Source template: minimalism-site
|
|
60
|
+
Design: minimalism
|
|
57
61
|
Version: create-ailk {{CREATE_AILK_VERSION}}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
|
|
63
|
+
This is the `minimalism` design's DESIGN.md. Its one authored source is
|
|
64
|
+
create-ailk's site-templates/designs/minimalism/DESIGN.md; every template on
|
|
65
|
+
this design ships a copy of it that differs only in the "Source template"
|
|
66
|
+
line above, and a template installed with `--template <name>` replaces the
|
|
67
|
+
base scaffold's DESIGN.md with its own. The impeccable design skill reads
|
|
68
|
+
it at the start of every design session, so an agent building a new page
|
|
69
|
+
stays on-system.
|
|
70
|
+
Edit the canonical file, never a copy — a test holds every copy to it.
|
|
61
71
|
|
|
62
72
|
The tokens above describe what the site RENDERS today. Colours come from
|
|
63
73
|
content/_site.mdx (`theme.colors`); type, radius and spacing are platform
|
|
64
74
|
defaults a site cannot override yet — see "Where this is heading" below.
|
|
65
75
|
-->
|
|
66
76
|
|
|
67
|
-
# Minimalism
|
|
77
|
+
# Minimalism
|
|
68
78
|
|
|
69
79
|
## Overview
|
|
70
80
|
|
|
71
|
-
|
|
81
|
+
The minimalism design is the standard foundation — the same black-on-white wireframe, the same type and the same components — presented as a deck. The home page is a nine-slide deck that snaps one slide per scroll, so the site reads like a presentation before it reads like a website; the rest of the site is quiet and document-like. Its character comes from structure, not a palette: it carries no theme of its own.
|
|
82
|
+
|
|
83
|
+
Every page is composed from the AI Launch Kit component library (`@working-theory/ui`). Nothing is hand-built: a page is a list of registered sections, each with a bounded set of variants.
|
|
72
84
|
|
|
73
85
|
## Colors
|
|
74
86
|
|
|
@@ -92,31 +104,31 @@ System sans throughout; no web font.
|
|
|
92
104
|
|
|
93
105
|
### Hierarchy
|
|
94
106
|
|
|
95
|
-
| Role | Size | Weight | Notes
|
|
96
|
-
| --------------- | -------- | ------ |
|
|
97
|
-
| Hero headline |
|
|
98
|
-
| Section heading |
|
|
99
|
-
| Item heading |
|
|
100
|
-
| Body | 1.125rem | 400 | `#333333`, line-height 1.5
|
|
101
|
-
| Section label | 0.875rem | 600 | Uppercase, +0.05em tracking today — the small label above a section heading
|
|
107
|
+
| Role | Size | Weight | Notes |
|
|
108
|
+
| --------------- | -------- | ------ | ------------------------------------------------------------------------------------- |
|
|
109
|
+
| Hero headline | 3.5rem | 700 | Normal tracking, line-height 1.1; 2.5rem below 1024px |
|
|
110
|
+
| Section heading | 3rem | 700 | Normal tracking, line-height 1.1; 2.25rem below 1024px, always under the hero |
|
|
111
|
+
| Item heading | 2rem | 700 | Card, feature and step titles; 1.5rem below 1024px |
|
|
112
|
+
| Body | 1.125rem | 400 | `#333333`, line-height 1.5; section copy capped at 36rem (about 70 characters a line) |
|
|
113
|
+
| Section label | 0.875rem | 600 | Uppercase, +0.05em tracking today — the small label above a section heading |
|
|
102
114
|
|
|
103
|
-
Measured from the rendered scaffold (1440px wide), not transcribed from tokens.
|
|
115
|
+
Measured from the rendered scaffold (1440px and 390px wide), not transcribed from tokens. Bold headings at normal tracking follow the foundation's pinned direction (#6493).
|
|
104
116
|
|
|
105
117
|
The small label above a section heading is **kept** as part of this foundation's voice (operator-disposed 2026-09-22) and is headed toward the treatment below.
|
|
106
118
|
|
|
107
119
|
## Layout
|
|
108
120
|
|
|
109
|
-
Home is the `deck` layout: nine full-viewport slides with scroll-snap. The navigation is `mark-only`, the footer is `centered`, and there is no announcement banner.
|
|
121
|
+
Home is the `deck` layout: nine full-viewport slides with scroll-snap. The navigation is `mark-only`, the footer is `centered`, and there is no announcement banner (`layout.home: deck`, `layout.nav: mark-only`, `layout.footer: centered` — the design's own knobs, which any template on this design gets without declaring a `layout`). 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.
|
|
110
122
|
|
|
111
123
|
## Shapes
|
|
112
124
|
|
|
113
|
-
|
|
125
|
+
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.
|
|
114
126
|
|
|
115
127
|
## Components
|
|
116
128
|
|
|
117
129
|
### Buttons
|
|
118
130
|
|
|
119
|
-
Primary: black fill, white label, 0.
|
|
131
|
+
Primary: black fill, white label, 0.5rem corners. Secondary: transparent with a black 1px outline and black label. Both are the library `Button`.
|
|
120
132
|
|
|
121
133
|
### Cards / Containers
|
|
122
134
|
|
|
@@ -128,16 +140,18 @@ Mark-only: the logomark alone, top left. No link row and no buttons in the heade
|
|
|
128
140
|
|
|
129
141
|
## Where this is heading
|
|
130
142
|
|
|
131
|
-
The foundation's pinned direction is the pacing of a classic wireframe marketing kit — `standardissue.webflow.io` is the reference for rhythm, type scale, spacing density and section pacing only; no image, copy or code is taken from it.
|
|
132
|
-
|
|
133
|
-
|
|
|
134
|
-
|
|
|
135
|
-
| Square corners on buttons, cards and inputs
|
|
136
|
-
|
|
|
137
|
-
|
|
|
138
|
-
|
|
|
139
|
-
|
|
|
140
|
-
|
|
|
143
|
+
The foundation's pinned direction is the pacing of a classic wireframe marketing kit — `standardissue.webflow.io` is the reference for rhythm, type scale, spacing density and section pacing only; no image, copy or code is taken from it. The four traits this section used to list as blocked now ship as settings, so the rendered site matches the reference:
|
|
144
|
+
|
|
145
|
+
| Trait | How it is set |
|
|
146
|
+
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
|
|
147
|
+
| Square corners on buttons, cards and inputs | `theme.corners: square` in `_site.mdx` |
|
|
148
|
+
| Section label in sentence case, bold, no tracking | `theme.eyebrowCase: sentence` |
|
|
149
|
+
| Solid grey image placeholders, no outline | `theme.placeholders: fill` |
|
|
150
|
+
| Bare check and cross marks, no circle badge | `theme.checkmarks: plain` |
|
|
151
|
+
| Plain, uncarded feature and step items | per section: `itemStyle: plain`, and `variant: steps` for an image beside a numbered list |
|
|
152
|
+
| A left hero whose headline wraps at half the container | `measure: narrow` on the hero (pricing); `gapBelow: tight` where a list follows the hero directly |
|
|
153
|
+
| A three-up post grid on the blog index | `blog-list` `variant: grid` (cover · date · read time · title · excerpt · Read more) |
|
|
154
|
+
| A plans section that leads its page | drop the hero; the pricing section owns the `<h1>` (`ownsPageTitle`) |
|
|
141
155
|
|
|
142
156
|
## Do's and Don'ts
|
|
143
157
|
|