create-ailk 0.6.0 → 0.7.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.
Files changed (248) hide show
  1. package/README.md +44 -5
  2. package/component-catalog.json +146 -21
  3. package/component-catalog.md +9 -6
  4. package/dist/add-module-core.d.ts +22 -0
  5. package/dist/add-module-core.js +50 -0
  6. package/dist/add-module.d.ts +89 -0
  7. package/dist/add-module.js +334 -0
  8. package/dist/category-profile.d.ts +126 -0
  9. package/dist/category-profile.js +262 -0
  10. package/dist/cli.js +124 -13
  11. package/dist/copy.d.ts +14 -0
  12. package/dist/copy.js +38 -1
  13. package/dist/index.d.ts +4 -2
  14. package/dist/index.js +6 -1
  15. package/dist/lib/extract-module-bundle.d.ts +76 -2
  16. package/dist/lib/extract-module-bundle.js +219 -8
  17. package/dist/lib/license-key-files.d.ts +15 -0
  18. package/dist/lib/license-key-files.js +102 -0
  19. package/dist/lib/module-license-gate.d.ts +6 -1
  20. package/dist/lib/module-license-gate.js +6 -1
  21. package/dist/lib/pro-callout.d.ts +16 -10
  22. package/dist/lib/pro-callout.js +27 -4
  23. package/dist/license-set.d.ts +34 -0
  24. package/dist/license-set.js +194 -0
  25. package/dist/module-architecture.d.ts +20 -0
  26. package/dist/module-architecture.js +77 -19
  27. package/dist/modules/commerce/0.6.0.tar.gz +0 -0
  28. package/dist/modules/commerce/0.6.1.tar.gz +0 -0
  29. package/dist/modules/docs-blog/0.6.0.tar.gz +0 -0
  30. package/dist/modules/docs-blog/0.6.1.tar.gz +0 -0
  31. package/dist/modules/marketing-site/0.6.1.tar.gz +0 -0
  32. package/dist/modules/minimalism-site/0.6.1.tar.gz +0 -0
  33. package/dist/modules/multi-tenant/0.6.0.tar.gz +0 -0
  34. package/dist/modules/multi-tenant/0.6.1.tar.gz +0 -0
  35. package/dist/modules/saas-product/0.6.1.tar.gz +0 -0
  36. package/dist/modules/scheduling/0.6.0.tar.gz +0 -0
  37. package/dist/modules/scheduling/0.6.1.tar.gz +0 -0
  38. package/dist/modules/signal-collectors/0.6.0.tar.gz +0 -0
  39. package/dist/modules/signal-collectors/0.6.1.tar.gz +0 -0
  40. package/dist/modules/simple-service/0.6.1.tar.gz +0 -0
  41. package/dist/modules/workspace/0.6.0.tar.gz +0 -0
  42. package/dist/modules/workspace/0.6.1.tar.gz +0 -0
  43. package/dist/parse-args.d.ts +7 -0
  44. package/dist/parse-args.js +23 -1
  45. package/dist/programmatic.d.ts +46 -0
  46. package/dist/programmatic.js +144 -19
  47. package/dist/site-chrome.d.ts +18 -7
  48. package/dist/site-chrome.js +32 -14
  49. package/dist/site-roster.d.ts +127 -0
  50. package/dist/site-roster.js +494 -0
  51. package/dist/surfaces.d.ts +20 -7
  52. package/dist/surfaces.js +149 -28
  53. package/dist/sync-routes.d.ts +9 -0
  54. package/dist/sync-routes.js +2 -2
  55. package/dist/template-manifest.d.ts +58 -2
  56. package/dist/template-manifest.js +196 -69
  57. package/package.json +6 -4
  58. package/site-templates/_base/content/en/BookCall/book-call.mdx +53 -0
  59. package/site-templates/_base/content/en/GlossaryList/glossary.mdx +66 -0
  60. package/site-templates/_base/content/en/NewsletterSignup/newsletter.mdx +68 -0
  61. package/site-templates/_base/content/en/Pricing/pricing.mdx +71 -62
  62. package/site-templates/_base/content/en/PrivacyPage/privacy.mdx +2 -3
  63. package/site-templates/_base/content/en/TermsPage/terms.mdx +2 -3
  64. package/site-templates/_base/content/en/UseCase/first-use-case.mdx +23 -0
  65. package/site-templates/_base/content/en/UseCase/second-use-case.mdx +23 -0
  66. package/site-templates/_base/content/en/UseCase/third-use-case.mdx +23 -0
  67. package/site-templates/designs/minimalism/DESIGN.md +162 -0
  68. package/site-templates/designs/standard/DESIGN.md +162 -0
  69. package/site-templates/marketing-site/DESIGN.md +162 -0
  70. package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +312 -57
  71. package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +209 -90
  72. package/site-templates/marketing-site/ailk-template.json +1 -0
  73. package/site-templates/marketing-site-free/DESIGN.md +162 -0
  74. package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +260 -66
  75. package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +294 -114
  76. package/site-templates/marketing-site-free/ailk-template.json +3 -2
  77. package/site-templates/minimalism-site/DESIGN.md +162 -0
  78. package/site-templates/minimalism-site/TEMPLATE-MANIFEST.json +246 -19
  79. package/site-templates/minimalism-site/TEMPLATE-MANIFEST.md +185 -51
  80. package/site-templates/minimalism-site/ailk-template.json +3 -2
  81. package/site-templates/minimalism-site/content/en/BookCall/book-call.mdx +53 -0
  82. package/site-templates/minimalism-site/content/en/ContactPage/contact.mdx +3 -37
  83. package/site-templates/minimalism-site/content/en/PurchasePolicyPage/purchase-policy.mdx +124 -0
  84. package/site-templates/saas-product/DESIGN.md +162 -0
  85. package/site-templates/simple-service/DESIGN.md +162 -0
  86. package/site-templates/simple-service/TEMPLATE-MANIFEST.json +135 -26
  87. package/site-templates/simple-service/TEMPLATE-MANIFEST.md +114 -59
  88. package/site-templates/simple-service/ailk-template.json +4 -3
  89. package/site-templates/simple-service/content/en/BookCall/book-call.mdx +53 -0
  90. package/site-templates/simple-service/content/en/ContactPage/contact.mdx +1 -36
  91. package/site-templates/simple-service/content/en/PurchasePolicyPage/purchase-policy.mdx +124 -0
  92. package/templates/.claude/settings.json +15 -0
  93. package/templates/.claude/skills/README.md +8 -8
  94. package/templates/.claude/skills/{scaffold-auth → add-auth}/SKILL.md +7 -7
  95. package/templates/.claude/skills/{scaffold-auth → add-auth}/references/env-vars.md +2 -2
  96. package/templates/.claude/skills/{scaffold-auth → add-auth}/references/oauth-app-setup.md +3 -3
  97. package/templates/.claude/skills/{scaffold-page → add-page}/SKILL.md +76 -62
  98. package/templates/.claude/skills/add-page/references/page-types.md +111 -0
  99. package/templates/.claude/skills/{scaffold-page → add-page}/templates/content.mdx.tmpl +4 -4
  100. package/templates/.claude/skills/{scaffold-page → add-page}/templates/route.tsx.tmpl +1 -1
  101. package/templates/.claude/skills/{audit-site → check-site}/SKILL.md +16 -17
  102. package/templates/.claude/skills/{audit-site → check-site}/references/common-errors.md +3 -3
  103. package/templates/.claude/skills/{audit-site → check-site}/references/findings-glossary.md +16 -14
  104. package/templates/.claude/skills/{audit-site → check-site}/references/severity-levels.md +1 -1
  105. package/templates/.claude/skills/fill-page/SKILL.md +180 -0
  106. package/templates/.claude/skills/fill-page/profiles/plumbing.yaml +80 -0
  107. package/templates/.claude/skills/fill-page/references/section-sources.md +41 -0
  108. package/templates/.claude/skills/{provision-config → setup-deploy}/SKILL.md +8 -8
  109. package/templates/.claude/skills/{provision-config → setup-deploy}/references/env-vars-template.md +2 -2
  110. package/templates/.claude/skills/{provision-config → setup-deploy}/references/runbook-template.md +8 -8
  111. package/templates/.claude/skills/{provision-config → setup-deploy}/references/vercel-json-template.md +1 -1
  112. package/templates/.claude/skills/upgrade-plan/SKILL.md +117 -0
  113. package/templates/.claude/skills/upgrade-plan/references/options.md +24 -0
  114. package/templates/.claude/skills/upgrade-plan/scripts/upgrade-plan.ts +527 -0
  115. package/templates/.github/workflows/ci.yml +5 -0
  116. package/templates/CLAUDE.md +10 -5
  117. package/templates/DESIGN.md +162 -0
  118. package/templates/README.md +134 -38
  119. package/templates/apps/api/.env.example +2 -1
  120. package/templates/apps/api/package.json +1 -1
  121. package/templates/apps/api/src/config/__tests__/index.test.ts +37 -2
  122. package/templates/apps/api/src/config/index.ts +19 -6
  123. package/templates/apps/api/src/lib/license-key-store.ts +45 -0
  124. package/templates/apps/api/src/lib/site.ts +5 -3
  125. package/templates/apps/api/src/middleware/__tests__/auth.database-not-configured.test.ts +97 -0
  126. package/templates/apps/api/src/middleware/auth.ts +9 -0
  127. package/templates/apps/api/src/routes/content/__tests__/get-page.test.ts +127 -5
  128. package/templates/apps/api/src/routes/content/get-page.ts +86 -2
  129. package/templates/apps/api/src/server.ts +6 -0
  130. package/templates/apps/mcp/__tests__/audit-single-page.test.ts +75 -1
  131. package/templates/apps/mcp/__tests__/lib/audit-single-page-readiness-scan.test.ts +57 -9
  132. package/templates/apps/mcp/package.json +2 -1
  133. package/templates/apps/mcp/src/index.ts +7 -0
  134. package/templates/apps/mcp/src/lib/audit-single-page.ts +36 -10
  135. package/templates/apps/mcp/src/lib/license-key-store.ts +45 -0
  136. package/templates/apps/web/PRODUCT.md +86 -0
  137. package/templates/apps/web/__tests__/setup.ts +18 -0
  138. package/templates/apps/web/app/[locale]/(auth)/forgot-password/forgot-password-card.tsx +10 -2
  139. package/templates/apps/web/app/[locale]/(auth)/layout.tsx +2 -2
  140. package/templates/apps/web/app/[locale]/(auth)/reset-password/reset-password-card.tsx +10 -4
  141. package/templates/apps/web/app/[locale]/(auth)/sign-in/sign-in-card.tsx +22 -14
  142. package/templates/apps/web/app/[locale]/(auth)/sign-up/sign-up-card.tsx +26 -18
  143. package/templates/apps/web/app/[locale]/(authed)/account/page.tsx +12 -4
  144. package/templates/apps/web/app/[locale]/[slug]/__tests__/page.test.tsx +35 -4
  145. package/templates/apps/web/app/[locale]/[slug]/page.tsx +49 -9
  146. package/templates/apps/web/app/[locale]/book-a-call/page.tsx +50 -0
  147. package/templates/apps/web/app/[locale]/careers/__tests__/page-renderer-migration.test.tsx +3 -3
  148. package/templates/apps/web/app/[locale]/case-studies/__tests__/page-renderer-migration.test.tsx +3 -3
  149. package/templates/apps/web/app/[locale]/clients/__tests__/page-renderer-migration.test.tsx +3 -4
  150. package/templates/apps/web/app/[locale]/contact/ContactForm.tsx +94 -33
  151. package/templates/apps/web/app/[locale]/contact/ConversationalIntakeWrapper.tsx +53 -23
  152. package/templates/apps/web/app/[locale]/contact/__tests__/ContactForm.test.tsx +96 -0
  153. package/templates/apps/web/app/[locale]/contact/__tests__/ConversationalIntakeWrapper.test.tsx +84 -2
  154. package/templates/apps/web/app/[locale]/contact/__tests__/page-renderer-migration.test.tsx +5 -6
  155. package/templates/apps/web/app/[locale]/contact/page.tsx +25 -7
  156. package/templates/apps/web/app/[locale]/courses/__tests__/page-renderer-migration.test.tsx +3 -3
  157. package/templates/apps/web/app/[locale]/downloads/__tests__/page-renderer-migration.test.tsx +3 -4
  158. package/templates/apps/web/app/[locale]/events/__tests__/page-renderer-migration.test.tsx +4 -5
  159. package/templates/apps/web/app/[locale]/glossary/page.tsx +50 -0
  160. package/templates/apps/web/app/[locale]/how-to/__tests__/page-renderer-migration.test.tsx +1 -1
  161. package/templates/apps/web/app/[locale]/how-to/page.tsx +25 -15
  162. package/templates/apps/web/app/[locale]/integrations/__tests__/page-renderer-migration.test.tsx +3 -3
  163. package/templates/apps/web/app/[locale]/layout.tsx +113 -51
  164. package/templates/apps/web/app/[locale]/newsletter/page.tsx +50 -0
  165. package/templates/apps/web/app/[locale]/partners/__tests__/page-renderer-migration.test.tsx +3 -3
  166. package/templates/apps/web/app/[locale]/products/__tests__/page-renderer-migration.test.tsx +3 -3
  167. package/templates/apps/web/app/[locale]/projects/__tests__/page-renderer-migration.test.tsx +4 -5
  168. package/templates/apps/web/app/[locale]/{shipping → purchase-policy}/page.tsx +15 -10
  169. package/templates/apps/web/app/[locale]/resources/__tests__/page-renderer-migration.test.tsx +4 -5
  170. package/templates/apps/web/app/[locale]/services/__tests__/page-renderer-migration.test.tsx +3 -3
  171. package/templates/apps/web/app/[locale]/software/[slug]/page.tsx +14 -1
  172. package/templates/apps/web/app/[locale]/software/__tests__/page-renderer-migration.test.tsx +1 -1
  173. package/templates/apps/web/app/[locale]/software/page.tsx +25 -15
  174. package/templates/apps/web/app/[locale]/tech-articles/__tests__/page-renderer-migration.test.tsx +1 -1
  175. package/templates/apps/web/app/[locale]/tech-articles/page.tsx +25 -15
  176. package/templates/apps/web/app/[locale]/testimonials/__tests__/page-renderer-migration.test.tsx +3 -4
  177. package/templates/apps/web/app/[locale]/use-cases/[slug]/page.tsx +48 -0
  178. package/templates/apps/web/app/[locale]/use-cases/__tests__/page-renderer-migration.test.tsx +3 -4
  179. package/templates/apps/web/app/[locale]/use-cases/page.tsx +15 -2
  180. package/templates/apps/web/app/[locale]/whitepapers/__tests__/page-renderer-migration.test.tsx +1 -1
  181. package/templates/apps/web/app/[locale]/whitepapers/page.tsx +25 -15
  182. package/templates/apps/web/app/error-fallback.tsx +17 -45
  183. package/templates/apps/web/app/not-found.tsx +14 -38
  184. package/templates/apps/web/app/og/route.tsx +6 -0
  185. package/templates/apps/web/eslint.config.mjs +3 -0
  186. package/templates/apps/web/instrumentation.ts +14 -0
  187. package/templates/apps/web/lib/__tests__/site-theme.test.ts +135 -20
  188. package/templates/apps/web/lib/__tests__/structured-data.test.tsx +38 -0
  189. package/templates/apps/web/lib/license-key-store.ts +52 -0
  190. package/templates/apps/web/lib/nav-config.ts +64 -12
  191. package/templates/apps/web/lib/prisma-for-auth.ts +9 -6
  192. package/templates/apps/web/lib/site-brand.tsx +4 -8
  193. package/templates/apps/web/lib/site-chrome.ts +3 -3
  194. package/templates/apps/web/lib/site-identity.ts +134 -0
  195. package/templates/apps/web/lib/site-theme.ts +11 -0
  196. package/templates/apps/web/messages/en.json +52 -37
  197. package/templates/apps/web/middleware.ts +1 -1
  198. package/templates/apps/web/public/android-chrome-192x192.png +0 -0
  199. package/templates/apps/web/public/android-chrome-512x512.png +0 -0
  200. package/templates/apps/web/public/apple-touch-icon.png +0 -0
  201. package/templates/apps/web/public/favicon-16x16.png +0 -0
  202. package/templates/apps/web/public/favicon-32x32.png +0 -0
  203. package/templates/apps/web/public/favicon.ico +0 -0
  204. package/templates/apps/web/public/favicon.svg +3 -3
  205. package/templates/apps/web/public/logomark.svg +6 -3
  206. package/templates/apps/web/public/logos/ai-launch-kit-light.svg +4 -0
  207. package/templates/apps/web/public/logos/ai-launch-kit.svg +4 -0
  208. package/templates/apps/web/public/logos/atomic-agent-light.svg +4 -0
  209. package/templates/apps/web/public/logos/atomic-agent.svg +4 -0
  210. package/templates/apps/web/public/logos/salessmyth-light.svg +4 -0
  211. package/templates/apps/web/public/logos/salessmyth.svg +4 -0
  212. package/templates/apps/web/public/site.webmanifest +4 -4
  213. package/templates/apps/web/public/wordmark-light.svg +4 -0
  214. package/templates/apps/web/public/wordmark.svg +3 -3
  215. package/templates/apps/web/security-headers.config.ts +5 -1
  216. package/templates/apps/web/src/lib/commerce-sections.ts +35 -3
  217. package/templates/content/_site.mdx +41 -3
  218. package/templates/content/en/AboutPage/about.mdx +150 -144
  219. package/templates/content/en/BlogList/blog.mdx +105 -0
  220. package/templates/content/en/ContactPage/contact.mdx +44 -85
  221. package/templates/content/en/FAQPage/faq.mdx +86 -57
  222. package/templates/content/en/HomePage/home.mdx +276 -217
  223. package/templates/content/en/PurchasePolicyPage/purchase-policy.mdx +182 -0
  224. package/templates/content/en/SoftwareProduct/product.mdx +175 -0
  225. package/templates/content/en/UseCasesList/use-cases.mdx +170 -0
  226. package/templates/database/CHANGELOG.md +14 -0
  227. package/templates/database/package.json +3 -2
  228. package/templates/package.json +3 -1
  229. package/templates/tools/lint-architecture.ts +315 -0
  230. package/templates/tools/tsconfig.json +14 -0
  231. package/versions.json +33 -33
  232. package/templates/.claude/skills/add-schema/SKILL.md +0 -277
  233. package/templates/.claude/skills/add-schema/references/conflict-handling.md +0 -200
  234. package/templates/.claude/skills/add-schema/references/file-finding.md +0 -123
  235. package/templates/.claude/skills/add-schema/references/schema-types.md +0 -234
  236. package/templates/.claude/skills/scaffold-page/references/page-types.md +0 -169
  237. package/templates/.claude/skills/suggest-site-pages/SKILL.md +0 -242
  238. package/templates/.claude/skills/suggest-site-pages/references/categories.md +0 -287
  239. package/templates/apps/web/app/[locale]/cancellation/page.tsx +0 -44
  240. package/templates/apps/web/app/[locale]/returns/page.tsx +0 -44
  241. package/templates/apps/web/public/logo-dark.svg +0 -21
  242. package/templates/apps/web/public/logo-light.svg +0 -21
  243. package/templates/content/en/CancellationPolicyPage/cancellation.mdx +0 -108
  244. package/templates/content/en/LandingPage/blog.mdx +0 -83
  245. package/templates/content/en/LandingPage/features.mdx +0 -103
  246. package/templates/content/en/LandingPage/how-it-works.mdx +0 -143
  247. package/templates/content/en/ReturnsPolicyPage/returns.mdx +0 -108
  248. package/templates/content/en/ShippingPolicyPage/shipping.mdx +0 -108
@@ -2,264 +2,323 @@
2
2
  type: "HomePage"
3
3
  slug: "home"
4
4
  title: "{{COMPANY_NAME}}"
5
- description: "The only {product descriptor} for {target market} to help you {product benefit}."
5
+ description: "{The only product for your target market to help you achieve product benefit.}"
6
6
  sections:
7
7
  [
8
8
  {
9
9
  "id": "hero",
10
10
  "type": "hero",
11
- "data": {
12
- "variant": "split",
13
- "headline": "How to get {outcome} without {problem}",
14
- "subheadline": "The only {product descriptor} for {target market} to help you {product benefit}.",
15
- "checklist": [
16
- "Bullet point about feature",
17
- "Bullet point about benefit",
18
- "Bullet point about getting start"
19
- ],
20
- "primaryCta": {
21
- "label": "{Primary CTA}",
22
- "href": "/contact"
23
- },
24
- "secondaryCta": {
25
- "label": "{Secondary CTA}",
26
- "href": "/how-it-works",
27
- "variant": "outline"
11
+ "data":
12
+ {
13
+ "variant": "illustration",
14
+ "headline": "{How to get outcome without problem}",
15
+ "subheadline": "{The only product for your target market to help you achieve product benefit.}",
16
+ "checklist":
17
+ [
18
+ "{One line about a feature}",
19
+ "{One line about a benefit}",
20
+ "{One line about getting started}",
21
+ ],
22
+ "primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
23
+ "secondaryCta":
24
+ {
25
+ "label": "{Secondary CTA}",
26
+ "href": "/use-cases",
27
+ "variant": "outline",
28
+ },
29
+ "closingLine": "{Risk Reversal goes here}",
30
+ "imagerySlot": true,
28
31
  },
29
- "closingLine": "{Risk Reversal goes here}",
30
- "imagerySlot": true
31
- }
32
32
  },
33
33
  {
34
34
  "id": "logo-cloud",
35
35
  "type": "logoCloud",
36
- "data": {
37
- "headline": "Don’t just take our word for it",
38
- "logos": [
39
- {
40
- "name": "Placeholder logo",
41
- "src": "/logomark.svg"
42
- },
43
- {
44
- "name": "Placeholder logo",
45
- "src": "/logomark.svg"
46
- },
47
- {
48
- "name": "Placeholder logo",
49
- "src": "/logomark.svg"
50
- },
51
- {
52
- "name": "Placeholder logo",
53
- "src": "/logomark.svg"
54
- },
55
- {
56
- "name": "Placeholder logo",
57
- "src": "/logomark.svg"
58
- },
59
- {
60
- "name": "Placeholder logo",
61
- "src": "/logomark.svg"
62
- }
63
- ],
64
- "layout": "inline",
65
- "treatment": "monochrome"
66
- }
36
+ "data":
37
+ {
38
+ "headline": "Don’t just take our word for it",
39
+ "headlineStyle": "label",
40
+ "logos":
41
+ [
42
+ {
43
+ "name": "SalesSmyth",
44
+ "src": "/logos/salessmyth.svg",
45
+ "darkSrc": "/logos/salessmyth-light.svg",
46
+ "width": 1118,
47
+ "height": 147,
48
+ },
49
+ {
50
+ "name": "AI Launch Kit",
51
+ "src": "/logos/ai-launch-kit.svg",
52
+ "darkSrc": "/logos/ai-launch-kit-light.svg",
53
+ "width": 1248,
54
+ "height": 144,
55
+ },
56
+ {
57
+ "name": "Atomic Agent",
58
+ "src": "/logos/atomic-agent.svg",
59
+ "darkSrc": "/logos/atomic-agent-light.svg",
60
+ "width": 1320,
61
+ "height": 148,
62
+ },
63
+ ],
64
+ "layout": "inline",
65
+ "treatment": "monochrome",
66
+ },
67
67
  },
68
68
  {
69
69
  "id": "comparison",
70
70
  "type": "decision-split",
71
- "data": {
72
- "headline": "There's a better way to {fix problem / get result}",
73
- "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
74
- "panels": [
75
- {
76
- "eyebrow": "Old Way",
77
- "title": "Medium length section heading goes here",
78
- "checklist": [
79
- "{Feature the old way does not have}",
80
- "{Feature the old way does not have}",
81
- "{Feature the old way does not have}"
82
- ],
83
- "glyph": "cross"
84
- },
85
- {
86
- "eyebrow": "New Way",
87
- "title": "Medium length section heading goes here",
88
- "checklist": [
89
- "{Feature the new way has}",
90
- "{Feature the new way has}",
91
- "{Feature the new way has}"
71
+ "data":
72
+ {
73
+ "eyebrow": "Comparison",
74
+ "imagerySlot": true,
75
+ "headline": "{There's a better way to fix problem / get result}",
76
+ "description": "{One sentence on why the old way falls short}",
77
+ "panels":
78
+ [
79
+ {
80
+ "eyebrow": "Old Way",
81
+ "title": "{Name the old way people do this}",
82
+ "checklist":
83
+ [
84
+ "{Feature the old way does not have}",
85
+ "{Feature the old way does not have}",
86
+ "{Feature the old way does not have}",
87
+ ],
88
+ "glyph": "cross",
89
+ },
90
+ {
91
+ "eyebrow": "New Way",
92
+ "title": "{Name your new way}",
93
+ "checklist":
94
+ [
95
+ "{Feature the new way has}",
96
+ "{Feature the new way has}",
97
+ "{Feature the new way has}",
98
+ ],
99
+ "glyph": "check",
100
+ },
92
101
  ],
93
- "glyph": "check",
94
- "highlighted": true
95
- }
96
- ]
97
- }
102
+ },
98
103
  },
99
104
  {
100
105
  "id": "core-features",
101
106
  "type": "feature",
102
- "data": {
103
- "eyebrow": "Core Features",
104
- "headline": "Everything you need to {achieve a desired outcome}",
105
- "description": "But don't take our word for it. We'll let the product do the talking.",
106
- "features": [
107
- {
108
- "title": "Feature 1",
109
- "description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
110
- "link": {
111
- "label": "Learn More",
112
- "href": "/features"
113
- }
114
- },
115
- {
116
- "title": "Feature 2",
117
- "description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
118
- "link": {
119
- "label": "Learn More",
120
- "href": "/features"
121
- }
122
- },
123
- {
124
- "title": "Feature 3",
125
- "description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
126
- "link": {
127
- "label": "Learn More",
128
- "href": "/features"
129
- }
130
- },
131
- {
132
- "title": "Feature 4",
133
- "description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
134
- "link": {
135
- "label": "Learn More",
136
- "href": "/features"
137
- }
138
- },
139
- {
140
- "title": "Feature 5",
141
- "description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
142
- "link": {
143
- "label": "Learn More",
144
- "href": "/features"
145
- }
146
- }
147
- ],
148
- "actions": [
149
- {
150
- "kind": "button",
151
- "label": "Get Started",
152
- "href": "/contact"
153
- },
154
- {
155
- "kind": "link",
156
- "label": "All Features",
157
- "href": "/features"
158
- }
159
- ]
160
- }
107
+ "data":
108
+ {
109
+ "eyebrow": "Core Features",
110
+ "itemStyle": "plain",
111
+ "actionsPosition": "below",
112
+ "headline": "{Everything you need to achieve a desired outcome}",
113
+ "description": "But don't take our word for it. We'll let the product do the talking.",
114
+ "features":
115
+ [
116
+ {
117
+ "icon": "rocket",
118
+ "title": "{Feature name}",
119
+ "description": "{Explain what this feature lets your customers do, in plain English with no jargon}",
120
+ "link":
121
+ {
122
+ "label": "Learn More",
123
+ "href": "/software/product",
124
+ "variant": "link",
125
+ },
126
+ },
127
+ {
128
+ "icon": "zap",
129
+ "title": "{Feature name}",
130
+ "description": "{Explain what this feature lets your customers do, in plain English with no jargon}",
131
+ "link":
132
+ {
133
+ "label": "Learn More",
134
+ "href": "/software/product",
135
+ "variant": "link",
136
+ },
137
+ },
138
+ {
139
+ "icon": "gauge",
140
+ "title": "{Feature name}",
141
+ "description": "{Explain what this feature lets your customers do, in plain English with no jargon}",
142
+ "link":
143
+ {
144
+ "label": "Learn More",
145
+ "href": "/software/product",
146
+ "variant": "link",
147
+ },
148
+ },
149
+ {
150
+ "icon": "sparkles",
151
+ "title": "{Feature name}",
152
+ "description": "{Explain what this feature lets your customers do, in plain English with no jargon}",
153
+ "link":
154
+ {
155
+ "label": "Learn More",
156
+ "href": "/software/product",
157
+ "variant": "link",
158
+ },
159
+ },
160
+ {
161
+ "icon": "shield-check",
162
+ "title": "{Feature name}",
163
+ "description": "{Explain what this feature lets your customers do, in plain English with no jargon}",
164
+ "link":
165
+ {
166
+ "label": "Learn More",
167
+ "href": "/software/product",
168
+ "variant": "link",
169
+ },
170
+ },
171
+ ],
172
+ "actions":
173
+ [
174
+ {
175
+ "kind": "button",
176
+ "label": "Get Started",
177
+ "href": "/contact",
178
+ "variant": "outline",
179
+ },
180
+ {
181
+ "kind": "link",
182
+ "label": "All Features",
183
+ "href": "/software/product",
184
+ },
185
+ ],
186
+ },
161
187
  },
162
188
  {
163
189
  "id": "integrations",
164
190
  "type": "cta",
165
- "data": {
166
- "headline": "Direct integrations with your favorite tools",
167
- "description": "Describe what these integrations help your customers do and impressive facts about how they work.",
168
- "primaryCta": {
169
- "label": "Get Started",
170
- "href": "/contact"
191
+ "data":
192
+ {
193
+ "variant": "minimal",
194
+ "eyebrow": "Integrations",
195
+ "headline": "Direct integrations with your favorite tools",
196
+ "description": "{Describe what these integrations help your customers do, with one impressive fact about how they work}",
197
+ "primaryCta":
198
+ {
199
+ "label": "Get Started",
200
+ "href": "/contact",
201
+ "variant": "outline",
202
+ },
203
+ "secondaryCta":
204
+ {
205
+ "label": "See all Integrations",
206
+ "href": "/software/product",
207
+ "variant": "link",
208
+ },
171
209
  },
172
- "secondaryCta": {
173
- "label": "See all Integrations",
174
- "href": "/features",
175
- "variant": "outline"
176
- }
177
- }
210
+ },
211
+ {
212
+ "id": "integrations-media",
213
+ "type": "media-band",
214
+ "data": { "imagerySlot": true },
178
215
  },
179
216
  {
180
217
  "id": "how-it-works",
181
- "type": "stair-steps",
182
- "data": {
183
- "headline": "Get setup in {number} easy steps",
184
- "description": "Summarize the setup process briefly in a way that makes it seem approachable and quick.",
185
- "tiles": [
186
- {
187
- "title": "{Step 1 Title}",
188
- "body": "The first thing they need to do to get the oucome they want"
189
- },
190
- {
191
- "title": "{Step 2 Title}",
192
- "body": "The second thing they need to do to get the oucome they want"
193
- },
194
- {
195
- "title": "{Step 3 Title}",
196
- "body": "The third thing they need to do to get the oucome they want"
197
- }
198
- ],
199
- "direction": "up-right"
200
- }
218
+ "type": "feature",
219
+ "data":
220
+ {
221
+ "eyebrow": "How It Works",
222
+ "itemStyle": "plain",
223
+ "actionsPosition": "below",
224
+ "actions":
225
+ [
226
+ {
227
+ "kind": "button",
228
+ "label": "Get Started",
229
+ "href": "/contact",
230
+ "variant": "outline",
231
+ },
232
+ {
233
+ "kind": "link",
234
+ "label": "Integrations",
235
+ "href": "/software/product",
236
+ },
237
+ ],
238
+ "headline": "{Get set up in number easy steps}",
239
+ "description": "{Summarize the setup process briefly, so it reads as approachable and quick}",
240
+ "features":
241
+ [
242
+ {
243
+ "title": "{Step 1 Title}",
244
+ "description": "{The first thing they do to get the outcome they want}",
245
+ },
246
+ {
247
+ "title": "{Step 2 Title}",
248
+ "description": "{The second thing they do to get the outcome they want}",
249
+ },
250
+ {
251
+ "title": "{Step 3 Title}",
252
+ "description": "{The third thing they do to get the outcome they want}",
253
+ },
254
+ ],
255
+ "imagerySlot": true,
256
+ },
201
257
  },
202
258
  {
203
259
  "id": "switch",
204
260
  "type": "cta",
205
- "data": {
206
- "variant": "box",
207
- "headline": "Switch to {your product} in {time amount} or less",
208
- "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}.",
209
- "chips": [
210
- "No credit card required",
211
- "Cancel any time",
212
- "Live chat support"
213
- ],
214
- "primaryCta": {
215
- "label": "{Primary CTA}",
216
- "href": "/contact"
217
- },
218
- "secondaryCta": {
219
- "label": "{Secondary CTA}",
220
- "href": "/pricing",
221
- "variant": "outline"
261
+ "data":
262
+ {
263
+ "variant": "box",
264
+ "imagerySlot": true,
265
+ "headline": "{Switch to your product in time amount or less}",
266
+ "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.}",
267
+ "checklist":
268
+ ["No credit card required", "Cancel any time", "Live chat support"],
269
+ "primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
270
+ "secondaryCta":
271
+ {
272
+ "label": "{Secondary CTA}",
273
+ "href": "/pricing",
274
+ "variant": "outline",
275
+ },
276
+ "closingLine": "{Social Proof goes here}",
222
277
  },
223
- "closingLine": "{Social Proof goes here}"
224
- }
225
278
  },
226
279
  {
227
280
  "id": "manifesto",
228
281
  "type": "content-block",
229
- "data": {
230
- "variant": "media-right",
231
- "eyebrow": "Manifesto",
232
- "headline": "We want you to {ability they couldn't do before}",
233
- "body": "Hey, I’m {your name}, the founder of {your company}.\n\nWrite a few sentences introducing the problems you solve. You can even ask a rhetorical question to get people thinking about their own personal experiences with a problem they might have encountered.\n\nThis is your chance to tell the backstory of why your product exists and explain the gap your product fills. Don’t be afraid to take a stance and plant your flag.\n\nWe believe that {you should be able to X without Y}.\n\nWe’ll help you:\n\nSolve this problem\n\nSolve another problem\n\nSolve this other problem\n\nIf that resonates with you, you're in the right place.\n\n- (your name)",
234
- "cta": {
235
- "label": "Sign Up",
236
- "href": "/sign-in"
282
+ "data":
283
+ {
284
+ "variant": "media-right",
285
+ "imagerySlot": true,
286
+ "eyebrow": "Manifesto",
287
+ "headline": "{We want you to ability they couldn't do before}",
288
+ "body": "{Hey, I’m your name, the founder of your company.}\n\n{A few sentences introducing the problems you solve. A rhetorical question can get people thinking about a problem they have run into themselves.}\n\n{The backstory of why your product exists and the gap it fills. Take a stance and plant your flag.}\n\n{We believe that you should be able to X without Y.}\n\nWe’ll help you:\n\n- {A problem you solve}\n\n- {Another problem you solve}\n\n- {A third problem you solve}\n\nIf that resonates with you, you're in the right place.\n\n- {your name}",
289
+ "cta":
290
+ { "label": "Sign Up", "href": "/sign-up", "variant": "outline" },
291
+ "secondaryCta":
292
+ {
293
+ "label": "More about us",
294
+ "href": "/about",
295
+ "variant": "outline",
296
+ },
237
297
  },
238
- "secondaryCta": {
239
- "label": "More about us",
240
- "href": "/about",
241
- "variant": "outline"
242
- }
243
- }
244
298
  },
245
299
  {
246
300
  "id": "demo",
247
- "type": "video-section",
248
- "data": {
249
- "headline": "See {your product} in action",
250
- "intro": "Click play to with this {time amount} demo",
251
- "video": {
252
- "type": "video",
253
- "alt": "{Your Product} Demo"
301
+ "type": "content-block",
302
+ "data":
303
+ {
304
+ "eyebrow": "{Your Product} Demo",
305
+ "headline": "{See your product in action}",
306
+ "body": "{Click play to watch this time amount demo}",
307
+ "cta":
308
+ {
309
+ "label": "Get Started",
310
+ "href": "/contact",
311
+ "variant": "outline",
312
+ },
313
+ "secondaryCta":
314
+ {
315
+ "label": "Watch the demo",
316
+ "href": "/use-cases",
317
+ "variant": "link",
318
+ },
254
319
  },
255
- "playBadge": true,
256
- "cta": {
257
- "label": "Get Started",
258
- "href": "/contact"
259
- }
260
- }
261
- }
320
+ },
262
321
  ]
263
322
  ---
264
323
 
265
- {/* Rendered from frontmatter `sections[]`. The copy is the standardissue mad-lib placeholder, verbatim — replace every {brace} with your own words before you launch; the `scaffold-page` skill can add a whole new page for you. */}
324
+ {/* Rendered from frontmatter `sections[]`. The copy is placeholder — replace every {brace} with your own words before you launch; the `add-page` skill can add a whole new page for you. */}