create-ailk 0.7.0 → 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.
Files changed (169) hide show
  1. package/README.md +44 -10
  2. package/component-catalog.json +520 -5
  3. package/component-catalog.md +9 -6
  4. package/dist/cli.js +22 -24
  5. package/dist/lib/extract-module-bundle.js +5 -1
  6. package/dist/lib/module-license-gate.d.ts +79 -0
  7. package/dist/lib/module-license-gate.js +160 -12
  8. package/dist/lib/module-tier.d.ts +45 -16
  9. package/dist/lib/module-tier.js +76 -0
  10. package/dist/lib/pro-callout.js +10 -2
  11. package/dist/parse-args.d.ts +78 -10
  12. package/dist/parse-args.js +204 -14
  13. package/dist/programmatic.d.ts +39 -9
  14. package/dist/programmatic.js +163 -25
  15. package/dist/site-roster.js +11 -6
  16. package/dist/starter-grid.d.ts +216 -0
  17. package/dist/starter-grid.js +449 -0
  18. package/dist/surfaces.d.ts +4 -4
  19. package/dist/surfaces.js +102 -43
  20. package/dist/template-manifest.d.ts +36 -17
  21. package/dist/template-manifest.js +121 -367
  22. package/dist/template-names.d.ts +14 -12
  23. package/dist/template-names.js +13 -17
  24. package/package.json +3 -3
  25. package/site-templates/_base/content/en/BookCall/book-call.mdx +0 -1
  26. package/site-templates/_base/content/en/Feature/feature-1.mdx +69 -0
  27. package/site-templates/_base/content/en/Feature/feature-2.mdx +69 -0
  28. package/site-templates/_base/content/en/Feature/feature-3.mdx +69 -0
  29. package/site-templates/_base/content/en/FeaturesList/features.mdx +91 -0
  30. package/site-templates/_base/content/en/GlossaryList/glossary.mdx +0 -1
  31. package/site-templates/_base/content/en/NewsletterSignup/newsletter.mdx +0 -1
  32. package/site-templates/_base/content/en/PortfolioItem/sample-four.mdx +105 -0
  33. package/site-templates/_base/content/en/PortfolioItem/sample-one.mdx +34 -0
  34. package/site-templates/_base/content/en/PortfolioItem/sample-three.mdx +94 -0
  35. package/site-templates/_base/content/en/PortfolioItem/sample-two.mdx +45 -0
  36. package/site-templates/_base/content/en/PortfolioList/portfolio.mdx +169 -0
  37. package/site-templates/_base/content/en/PrivacyPage/privacy.mdx +15 -0
  38. package/site-templates/_base/content/en/UseCase/persona-1.mdx +69 -0
  39. package/site-templates/_base/content/en/UseCase/persona-2.mdx +69 -0
  40. package/site-templates/_base/content/en/UseCase/persona-3.mdx +69 -0
  41. package/site-templates/designs/standard/DESIGN.md +5 -0
  42. package/site-templates/marketing-site/DESIGN.md +5 -0
  43. package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +89 -25
  44. package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +35 -14
  45. package/site-templates/marketing-site-free/DESIGN.md +5 -0
  46. package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +95 -29
  47. package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +74 -44
  48. package/site-templates/marketing-site-free/content/en/NewsletterSignup/newsletter.mdx +59 -0
  49. package/site-templates/marketing-site-free/content/en/Pricing/pricing.mdx +199 -0
  50. package/site-templates/minimalism-site/TEMPLATE-MANIFEST.md +17 -29
  51. package/site-templates/minimalism-site/content/en/BookCall/book-call.mdx +0 -1
  52. package/site-templates/minimalism-site/content/en/PurchasePolicyPage/purchase-policy.mdx +0 -1
  53. package/site-templates/saas-product/DESIGN.md +5 -0
  54. package/site-templates/saas-product/TEMPLATE-MANIFEST.md +9 -1
  55. package/site-templates/{simple-service → shapes/local-business-service}/TEMPLATE-MANIFEST.json +96 -76
  56. package/site-templates/shapes/local-business-service/TEMPLATE-MANIFEST.md +302 -0
  57. package/site-templates/shapes/local-business-service/ailk-template.json +10 -0
  58. package/site-templates/{simple-service → shapes/local-business-service}/content/en/AboutPage/about.mdx +4 -4
  59. package/site-templates/shapes/local-business-service/content/en/HomePage/home.mdx +70 -0
  60. package/site-templates/shapes/local-business-service/content/en/NewsletterSignup/newsletter.mdx +59 -0
  61. package/site-templates/shapes/local-business-service/content/en/PortfolioList/portfolio.mdx +171 -0
  62. package/site-templates/{simple-service → shapes/local-business-service}/content/en/PurchasePolicyPage/purchase-policy.mdx +7 -8
  63. package/site-templates/shapes/local-business-service/content/en/Service/first-job.mdx +39 -0
  64. package/site-templates/shapes/local-business-service/content/en/Service/second-job.mdx +39 -0
  65. package/site-templates/shapes/local-business-service/content/en/Service/third-job.mdx +39 -0
  66. package/site-templates/shapes/local-business-service/content/en/ServicesList/services.mdx +61 -0
  67. package/site-templates/shapes/local-business-service/provenance.json +4 -0
  68. package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.json +362 -0
  69. package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.md +300 -0
  70. package/site-templates/shapes/organization-service/ailk-template.json +10 -0
  71. package/site-templates/shapes/organization-service/content/en/AboutPage/about.mdx +38 -0
  72. package/site-templates/shapes/organization-service/content/en/HomePage/home.mdx +85 -0
  73. package/site-templates/shapes/organization-service/content/en/NewsletterSignup/newsletter.mdx +59 -0
  74. package/site-templates/shapes/organization-service/content/en/PortfolioList/portfolio.mdx +171 -0
  75. package/site-templates/shapes/organization-service/content/en/PurchasePolicyPage/purchase-policy.mdx +123 -0
  76. package/site-templates/shapes/organization-service/content/en/Service/first-engagement.mdx +38 -0
  77. package/site-templates/shapes/organization-service/content/en/Service/second-engagement.mdx +38 -0
  78. package/site-templates/shapes/organization-service/content/en/Service/third-engagement.mdx +38 -0
  79. package/site-templates/shapes/organization-service/content/en/ServicesList/services.mdx +72 -0
  80. package/site-templates/shapes/organization-service/provenance.json +4 -0
  81. package/site-templates/shapes/person-service/TEMPLATE-MANIFEST.json +369 -0
  82. package/site-templates/shapes/person-service/TEMPLATE-MANIFEST.md +299 -0
  83. package/site-templates/shapes/person-service/ailk-template.json +10 -0
  84. package/site-templates/shapes/person-service/content/_site.mdx +85 -0
  85. package/site-templates/shapes/person-service/content/en/AboutPage/about.mdx +39 -0
  86. package/site-templates/shapes/person-service/content/en/HomePage/home.mdx +97 -0
  87. package/site-templates/shapes/person-service/content/en/NewsletterSignup/newsletter.mdx +59 -0
  88. package/site-templates/shapes/person-service/content/en/PortfolioList/portfolio.mdx +169 -0
  89. package/site-templates/shapes/person-service/content/en/PurchasePolicyPage/purchase-policy.mdx +123 -0
  90. package/site-templates/shapes/person-service/content/en/Service/first-engagement.mdx +38 -0
  91. package/site-templates/shapes/person-service/content/en/Service/second-engagement.mdx +38 -0
  92. package/site-templates/shapes/person-service/content/en/Service/third-engagement.mdx +38 -0
  93. package/site-templates/{simple-service → shapes/person-service}/content/en/ServicesList/services.mdx +16 -16
  94. package/site-templates/shapes/person-service/provenance.json +4 -0
  95. package/templates/.claude/skills/README.md +3 -2
  96. package/templates/.claude/skills/add-page/references/page-types.md +4 -0
  97. package/templates/.claude/skills/setup-database/SKILL.md +156 -0
  98. package/templates/.claude/skills/setup-database/scripts/verify-inbox.ts +154 -0
  99. package/templates/.claude/skills/setup-deploy/SKILL.md +64 -32
  100. package/templates/.claude/skills/setup-deploy/references/env-vars-template.md +19 -28
  101. package/templates/.claude/skills/setup-deploy/references/runbook-template.md +58 -102
  102. package/templates/DESIGN.md +5 -0
  103. package/templates/README.md +46 -38
  104. package/templates/apps/api/CLAUDE.md +3 -2
  105. package/templates/apps/api/src/config/__tests__/index.test.ts +115 -14
  106. package/templates/apps/api/src/config/index.ts +35 -16
  107. package/templates/apps/api/src/lib/__tests__/lead-capture-store.test.ts +30 -0
  108. package/templates/apps/api/src/lib/__tests__/lead-delivery.test.ts +96 -0
  109. package/templates/apps/api/src/lib/lead-capture-store.ts +12 -0
  110. package/templates/apps/api/src/lib/lead-delivery.ts +52 -0
  111. package/templates/apps/api/src/openapi/spec.ts +63 -12
  112. package/templates/apps/api/src/routes/leads/__tests__/capture.test.ts +88 -0
  113. package/templates/apps/api/src/routes/leads/__tests__/index.test.ts +100 -0
  114. package/templates/apps/api/src/routes/leads/index.ts +46 -1
  115. package/templates/apps/api/src/server.ts +7 -0
  116. package/templates/apps/api/src/services/__tests__/lead-routing.test.ts +194 -0
  117. package/templates/apps/api/src/services/__tests__/leads-inbox.test.ts +124 -0
  118. package/templates/apps/api/src/services/lead-routing.ts +140 -30
  119. package/templates/apps/api/src/services/leads-inbox.ts +48 -11
  120. package/templates/apps/mcp/__tests__/parity.test.ts +5 -4
  121. package/templates/apps/mcp/src/tools/create_project.ts +21 -6
  122. package/templates/apps/web/app/[locale]/contact/ConversationalIntakeWrapper.tsx +14 -6
  123. package/templates/apps/web/app/[locale]/contact/__tests__/ConversationalIntakeWrapper.test.tsx +10 -9
  124. package/templates/apps/web/app/[locale]/contact/__tests__/contact-form-text.test.ts +32 -0
  125. package/templates/apps/web/app/[locale]/contact/__tests__/contact.actions.test.ts +129 -0
  126. package/templates/apps/web/app/[locale]/contact/__tests__/page-renderer-migration.test.tsx +227 -84
  127. package/templates/apps/web/app/[locale]/contact/contact-form-text.ts +50 -0
  128. package/templates/apps/web/app/[locale]/contact/contact.actions.ts +73 -20
  129. package/templates/apps/web/app/[locale]/contact/page.tsx +105 -15
  130. package/templates/apps/web/app/[locale]/contact/site-contact-email.ts +54 -0
  131. package/templates/apps/web/app/[locale]/features/[slug]/page.tsx +64 -0
  132. package/templates/apps/web/app/[locale]/features/page.tsx +52 -0
  133. package/templates/apps/web/app/[locale]/layout.tsx +37 -5
  134. package/templates/apps/web/app/[locale]/newsletter/__tests__/newsletter.actions.test.ts +75 -0
  135. package/templates/apps/web/app/[locale]/newsletter/__tests__/page.test.tsx +163 -0
  136. package/templates/apps/web/app/[locale]/newsletter/newsletter.actions.ts +66 -0
  137. package/templates/apps/web/app/[locale]/newsletter/page.tsx +106 -14
  138. package/templates/apps/web/app/[locale]/portfolio/[slug]/page.tsx +59 -0
  139. package/templates/apps/web/app/[locale]/portfolio/page.tsx +49 -0
  140. package/templates/apps/web/app/[locale]/use-cases/[slug]/page.tsx +18 -3
  141. package/templates/apps/web/lib/nav-config.ts +48 -36
  142. package/templates/apps/web/lib/site-identity.ts +14 -0
  143. package/templates/apps/web/messages/en.json +28 -2
  144. package/templates/content/_site.mdx +4 -2
  145. package/templates/content/en/BlogList/blog.mdx +37 -16
  146. package/templates/content/en/ContactPage/contact.mdx +14 -44
  147. package/templates/content/en/HomePage/home.mdx +8 -16
  148. package/templates/content/en/PurchasePolicyPage/purchase-policy.mdx +0 -1
  149. package/templates/content/en/UseCasesList/use-cases.mdx +6 -6
  150. package/templates/database/CHANGELOG.md +7 -0
  151. package/templates/database/package.json +1 -1
  152. package/versions.json +33 -33
  153. package/site-templates/_base/content/en/UseCase/first-use-case.mdx +0 -23
  154. package/site-templates/_base/content/en/UseCase/second-use-case.mdx +0 -23
  155. package/site-templates/_base/content/en/UseCase/third-use-case.mdx +0 -23
  156. package/site-templates/simple-service/DESIGN.md +0 -162
  157. package/site-templates/simple-service/TEMPLATE-MANIFEST.md +0 -333
  158. package/site-templates/simple-service/ailk-template.json +0 -11
  159. package/site-templates/simple-service/content/en/BookCall/book-call.mdx +0 -53
  160. package/site-templates/simple-service/content/en/ContactPage/contact.mdx +0 -32
  161. package/site-templates/simple-service/content/en/FAQPage/faq.mdx +0 -56
  162. package/site-templates/simple-service/content/en/HomePage/home.mdx +0 -85
  163. package/site-templates/simple-service/content/en/Service/landscape-design.mdx +0 -40
  164. package/site-templates/simple-service/content/en/Service/lawn-maintenance.mdx +0 -40
  165. package/site-templates/simple-service/content/en/Service/seasonal-cleanup.mdx +0 -40
  166. package/site-templates/simple-service/provenance.json +0 -4
  167. package/templates/apps/web/app/[locale]/contact/ContactForm.tsx +0 -211
  168. package/templates/apps/web/app/[locale]/contact/__tests__/ContactForm.test.tsx +0 -96
  169. package/templates/content/en/SoftwareProduct/product.mdx +0 -175
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  type: "BlogList"
3
3
  slug: "blog"
4
- title: "{Resources for customer profile}"
5
- description: "{One sentence that says what this page covers}"
4
+ title: "Get free blog/docs from Fumadocs"
5
+ description: "Or upgrade to Pro and get Fumadocs with our easy-to-use editor."
6
6
  sections:
7
7
  [
8
8
  {
@@ -13,8 +13,16 @@ sections:
13
13
  "variant": "centered",
14
14
  "gapBelow": "tight",
15
15
  "eyebrow": "Blog",
16
- "headline": "{Resources for customer profile}",
17
- "subheadline": "{One sentence on what readers will learn here}",
16
+ "headline": "Get free blog/docs from Fumadocs",
17
+ "subheadline": "Or upgrade to Pro and get Fumadocs with our easy-to-use editor.",
18
+ "primaryCta":
19
+ { "label": "Get Fumadocs", "href": "https://www.fumadocs.dev" },
20
+ "secondaryCta":
21
+ {
22
+ "label": "Upgrade to Pro",
23
+ "href": "https://ailaunchkit.ai/pricing",
24
+ "variant": "outline",
25
+ },
18
26
  },
19
27
  },
20
28
  {
@@ -26,40 +34,53 @@ sections:
26
34
  "posts":
27
35
  [
28
36
  {
29
- "title": "{Post 1 title: the reader's problem, the promise of the post}",
37
+ "title": "Free Fumadocs Blog: publish your blog and docs with Fumadocs",
30
38
  "slug": "post-1",
31
- "excerpt": "{Two sentences on what this post covers and what the reader takes away}",
39
+ "href": "https://www.fumadocs.dev",
40
+ "excerpt": "The Free template ships with Fumadocs, the open-source docs and blog engine. Write in Markdown, keep this design system, and publish from your repo.",
32
41
  "publishedAt": "2026-01-01",
33
42
  "readingTime": "5 min",
34
43
  },
35
44
  {
36
- "title": "{Post 2 title: the reader's problem, the promise of the post}",
45
+ "title": "Upgrade to Pro: Fumadocs with our easy-to-use editor",
37
46
  "slug": "post-2",
38
- "excerpt": "{Two sentences on what this post covers and what the reader takes away}",
47
+ "href": "https://ailaunchkit.ai/pricing",
48
+ "excerpt": "Upgrade to Pro and write your posts and docs in a visual editor — no Markdown, no repo, the same Fumadocs pages. See what Pro includes.",
39
49
  "publishedAt": "2026-01-02",
40
50
  "readingTime": "5 min",
41
51
  },
42
52
  {
43
- "title": "{Post 3 title: the reader's problem, the promise of the post}",
53
+ "title": "Free Fumadocs Blog: publish your blog and docs with Fumadocs",
44
54
  "slug": "post-3",
45
- "excerpt": "{Two sentences on what this post covers and what the reader takes away}",
55
+ "href": "https://www.fumadocs.dev",
56
+ "excerpt": "The Free template ships with Fumadocs, the open-source docs and blog engine. Write in Markdown, keep this design system, and publish from your repo.",
46
57
  "publishedAt": "2026-01-03",
47
- "readingTime": "10 min",
58
+ "readingTime": "5 min",
48
59
  },
49
60
  {
50
- "title": "{Post 4 title: the reader's problem, the promise of the post}",
61
+ "title": "Upgrade to Pro: Fumadocs with our easy-to-use editor",
51
62
  "slug": "post-4",
52
- "excerpt": "{Two sentences on what this post covers and what the reader takes away}",
63
+ "href": "https://ailaunchkit.ai/pricing",
64
+ "excerpt": "Upgrade to Pro and write your posts and docs in a visual editor — no Markdown, no repo, the same Fumadocs pages. See what Pro includes.",
53
65
  "publishedAt": "2026-01-04",
54
- "readingTime": "3 min",
66
+ "readingTime": "5 min",
55
67
  },
56
68
  {
57
- "title": "{Post 5 title: the reader's problem, the promise of the post}",
69
+ "title": "Free Fumadocs Blog: publish your blog and docs with Fumadocs",
58
70
  "slug": "post-5",
59
- "excerpt": "{Two sentences on what this post covers and what the reader takes away}",
71
+ "href": "https://www.fumadocs.dev",
72
+ "excerpt": "The Free template ships with Fumadocs, the open-source docs and blog engine. Write in Markdown, keep this design system, and publish from your repo.",
60
73
  "publishedAt": "2026-01-05",
61
74
  "readingTime": "5 min",
62
75
  },
76
+ {
77
+ "title": "Upgrade to Pro: Fumadocs with our easy-to-use editor",
78
+ "slug": "post-6",
79
+ "href": "https://ailaunchkit.ai/pricing",
80
+ "excerpt": "Upgrade to Pro and write your posts and docs in a visual editor — no Markdown, no repo, the same Fumadocs pages. See what Pro includes.",
81
+ "publishedAt": "2026-01-06",
82
+ "readingTime": "5 min",
83
+ },
63
84
  ],
64
85
  },
65
86
  },
@@ -2,7 +2,7 @@
2
2
  type: "ContactPage"
3
3
  slug: "contact"
4
4
  title: "Contact {{COMPANY_NAME}}"
5
- description: "{Find out if your product is a good fit for you in just time amount.}"
5
+ description: "Or upgrade to Pro to save every message as a lead in your own marketing database."
6
6
  sections:
7
7
  [
8
8
  {
@@ -11,54 +11,24 @@ sections:
11
11
  "data":
12
12
  {
13
13
  "variant": "split",
14
- "eyebrow": "Book a Demo",
15
- "headline": "{Ready to achieve a valuable outcome?}",
16
- "subheadline": "{Find out if your product is a good fit for you in just time amount.}",
14
+ "eyebrow": "Contact",
15
+ "headline": "Get every message in your email, free",
16
+ "subheadline": "Or upgrade to Pro to save every message as a lead in your own marketing database.",
17
17
  "checklist":
18
18
  [
19
- "{What to expect on the call}",
20
- "{A fear or hesitation this call removes}",
21
- "{What the visitor gets out of the call}",
22
- ],
23
- },
24
- },
25
- {
26
- "id": "logo-cloud",
27
- "type": "logoCloud",
28
- "data":
29
- {
30
- "headline": "Don’t just take our word for it",
31
- "headlineStyle": "label",
32
- "logos":
33
- [
34
- { "name": "Placeholder logo", "src": "/logomark.svg" },
35
- { "name": "Placeholder logo", "src": "/logomark.svg" },
36
- { "name": "Placeholder logo", "src": "/logomark.svg" },
37
- { "name": "Placeholder logo", "src": "/logomark.svg" },
38
- { "name": "Placeholder logo", "src": "/logomark.svg" },
39
- { "name": "Placeholder logo", "src": "/logomark.svg" },
40
- ],
41
- "layout": "inline",
42
- "treatment": "monochrome",
43
- },
44
- },
45
- {
46
- "id": "testimonial",
47
- "type": "testimonials",
48
- "data":
49
- {
50
- "variant": "quote",
51
- "items":
52
- [
53
- {
54
- "quote": "{A customer quote, in their own words, about the result they got}",
55
- "author": "{Customer name}",
56
- "role": "{Their title, their company}",
57
- },
19
+ "Every message arrives in your email",
20
+ "No database or setup to start",
21
+ "Upgrade any time to keep a lead inbox",
58
22
  ],
23
+ "secondaryCta":
24
+ {
25
+ "label": "Upgrade to Pro",
26
+ "href": "https://ailaunchkit.ai/pricing",
27
+ "variant": "outline",
28
+ },
59
29
  },
60
30
  },
61
31
  ]
62
32
  ---
63
33
 
64
- {/* Rendered from frontmatter `sections[]`. The page's one contact surface — the guided intake, with its fallback form — is mounted by the /contact route itself and posts to the site's own API (`/v1/leads/submit`). Placeholder copy — replace before you launch. */}
34
+ {/* Rendered from frontmatter `sections[]`. The page's one contact surface — the plain contact form — is mounted by the /contact route itself, in the split hero's right column, and posts to the site's own API (`/v1/leads/submit`). Placeholder copy — replace before you launch. */}
@@ -120,7 +120,7 @@ sections:
120
120
  "link":
121
121
  {
122
122
  "label": "Learn More",
123
- "href": "/software/product",
123
+ "href": "/features",
124
124
  "variant": "link",
125
125
  },
126
126
  },
@@ -131,7 +131,7 @@ sections:
131
131
  "link":
132
132
  {
133
133
  "label": "Learn More",
134
- "href": "/software/product",
134
+ "href": "/features",
135
135
  "variant": "link",
136
136
  },
137
137
  },
@@ -142,7 +142,7 @@ sections:
142
142
  "link":
143
143
  {
144
144
  "label": "Learn More",
145
- "href": "/software/product",
145
+ "href": "/features",
146
146
  "variant": "link",
147
147
  },
148
148
  },
@@ -153,7 +153,7 @@ sections:
153
153
  "link":
154
154
  {
155
155
  "label": "Learn More",
156
- "href": "/software/product",
156
+ "href": "/features",
157
157
  "variant": "link",
158
158
  },
159
159
  },
@@ -164,7 +164,7 @@ sections:
164
164
  "link":
165
165
  {
166
166
  "label": "Learn More",
167
- "href": "/software/product",
167
+ "href": "/features",
168
168
  "variant": "link",
169
169
  },
170
170
  },
@@ -177,11 +177,7 @@ sections:
177
177
  "href": "/contact",
178
178
  "variant": "outline",
179
179
  },
180
- {
181
- "kind": "link",
182
- "label": "All Features",
183
- "href": "/software/product",
184
- },
180
+ { "kind": "link", "label": "All Features", "href": "/features" },
185
181
  ],
186
182
  },
187
183
  },
@@ -203,7 +199,7 @@ sections:
203
199
  "secondaryCta":
204
200
  {
205
201
  "label": "See all Integrations",
206
- "href": "/software/product",
202
+ "href": "/features",
207
203
  "variant": "link",
208
204
  },
209
205
  },
@@ -229,11 +225,7 @@ sections:
229
225
  "href": "/contact",
230
226
  "variant": "outline",
231
227
  },
232
- {
233
- "kind": "link",
234
- "label": "Integrations",
235
- "href": "/software/product",
236
- },
228
+ { "kind": "link", "label": "Integrations", "href": "/features" },
237
229
  ],
238
230
  "headline": "{Get set up in number easy steps}",
239
231
  "description": "{Summarize the setup process briefly, so it reads as approachable and quick}",
@@ -3,7 +3,6 @@ type: "PurchasePolicyPage"
3
3
  slug: "purchase-policy"
4
4
  title: "Purchase Policy"
5
5
  description: "How returns, shipping and refunds work for orders placed on this site. Placeholder policy — replace every section before you launch."
6
- placeholder: true
7
6
  sections:
8
7
  [
9
8
  {
@@ -33,32 +33,32 @@ sections:
33
33
  "items":
34
34
  [
35
35
  {
36
- "title": "{First use case: the job a customer hires your product to do}",
36
+ "title": "{Use case 1: the job this customer hires your product to do}",
37
37
  "description": "{Two sentences on who this customer is and the result they get}",
38
38
  "link":
39
39
  {
40
40
  "label": "Read the use case",
41
- "href": "/use-cases/first-use-case",
41
+ "href": "/use-cases/persona-1",
42
42
  "variant": "link",
43
43
  },
44
44
  },
45
45
  {
46
- "title": "{Second use case: the job a customer hires your product to do}",
46
+ "title": "{Use case 2: the job this customer hires your product to do}",
47
47
  "description": "{Two sentences on who this customer is and the result they get}",
48
48
  "link":
49
49
  {
50
50
  "label": "Read the use case",
51
- "href": "/use-cases/second-use-case",
51
+ "href": "/use-cases/persona-2",
52
52
  "variant": "link",
53
53
  },
54
54
  },
55
55
  {
56
- "title": "{Third use case: the job a customer hires your product to do}",
56
+ "title": "{Use case 3: the job this customer hires your product to do}",
57
57
  "description": "{Two sentences on who this customer is and the result they get}",
58
58
  "link":
59
59
  {
60
60
  "label": "Read the use case",
61
- "href": "/use-cases/third-use-case",
61
+ "href": "/use-cases/persona-3",
62
62
  "variant": "link",
63
63
  },
64
64
  },
@@ -1,5 +1,12 @@
1
1
  # @working-theory/database
2
2
 
3
+ ## 0.28.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`8955dbe`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/8955dbe57b720ed516858d2373cc1bba158612e1), [`8a786be`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/8a786be9e7f6292d7aee52891bbe3185508cf65e), [`c1b4538`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/c1b4538d1faafb6c9fd9e6376430cd58548e0959), [`ea782e2`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/ea782e29a4867af89d76ad4359f501ed04bea0e9), [`491c3ff`](https://github.com/Working-Theory-Labs/ai-launch-kit-internal/commit/491c3ff4719abdc614fc87ef5943c760c2e8fc7b)]:
8
+ - @working-theory/validation@0.28.0
9
+
3
10
  ## 0.27.0
4
11
 
5
12
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@working-theory/database",
3
- "version": "0.27.0",
3
+ "version": "0.28.0",
4
4
  "license": "Apache-2.0",
5
5
  "publishConfig": {
6
6
  "access": "public"
package/versions.json CHANGED
@@ -1,39 +1,39 @@
1
1
  {
2
- "@working-theory/admin-ui": "0.27.0",
3
- "@working-theory/aeo": "0.27.0",
4
- "@working-theory/agent-context": "0.27.0",
2
+ "@working-theory/admin-ui": "0.28.0",
3
+ "@working-theory/aeo": "0.28.0",
4
+ "@working-theory/agent-context": "0.28.0",
5
5
  "@working-theory/agent-contract": "0.1.0",
6
6
  "@working-theory/agent-memory": "0.0.0",
7
7
  "@working-theory/ai": "0.1.0",
8
- "@working-theory/analytics": "0.27.0",
9
- "@working-theory/api-client": "0.27.0",
8
+ "@working-theory/analytics": "0.28.0",
9
+ "@working-theory/api-client": "0.28.0",
10
10
  "@working-theory/cda-filesystem": "0.0.0",
11
- "@working-theory/cli": "0.27.0",
12
- "@working-theory/common": "0.27.0",
11
+ "@working-theory/cli": "0.28.0",
12
+ "@working-theory/common": "0.28.0",
13
13
  "@working-theory/consent": "0.1.0",
14
- "@working-theory/content-adapters": "0.27.0",
15
- "@working-theory/content-projection": "0.27.0",
16
- "@working-theory/email": "0.27.0",
14
+ "@working-theory/content-adapters": "0.28.0",
15
+ "@working-theory/content-projection": "0.28.0",
16
+ "@working-theory/email": "0.28.0",
17
17
  "@working-theory/env": "0.0.0",
18
- "@working-theory/eslint-config": "0.27.0",
19
- "@working-theory/fumadocs-schema": "0.27.0",
18
+ "@working-theory/eslint-config": "0.28.0",
19
+ "@working-theory/fumadocs-schema": "0.28.0",
20
20
  "@working-theory/ids": "0.8.0",
21
- "@working-theory/jsonld": "0.27.0",
22
- "@working-theory/license": "0.27.0",
23
- "@working-theory/metadata": "0.27.0",
24
- "@working-theory/observability": "0.27.0",
25
- "@working-theory/page-renderer": "0.27.0",
26
- "@working-theory/schema": "0.27.0",
27
- "@working-theory/schema-pack-registry": "0.27.0",
28
- "@working-theory/schema-validator": "0.27.0",
29
- "@working-theory/sections-registry": "0.27.0",
30
- "@working-theory/site-config": "0.27.0",
31
- "@working-theory/stripe-client": "0.27.0",
32
- "@working-theory/templates": "0.27.0",
33
- "@working-theory/theme": "0.27.0",
34
- "@working-theory/ui": "0.27.0",
35
- "@working-theory/validation": "0.27.0",
36
- "@working-theory/web-i18n": "0.27.0",
21
+ "@working-theory/jsonld": "0.28.0",
22
+ "@working-theory/license": "0.28.0",
23
+ "@working-theory/metadata": "0.28.0",
24
+ "@working-theory/observability": "0.28.0",
25
+ "@working-theory/page-renderer": "0.28.0",
26
+ "@working-theory/schema": "0.28.0",
27
+ "@working-theory/schema-pack-registry": "0.28.0",
28
+ "@working-theory/schema-validator": "0.28.0",
29
+ "@working-theory/sections-registry": "0.28.0",
30
+ "@working-theory/site-config": "0.28.0",
31
+ "@working-theory/stripe-client": "0.28.0",
32
+ "@working-theory/templates": "0.28.0",
33
+ "@working-theory/theme": "0.28.0",
34
+ "@working-theory/ui": "0.28.0",
35
+ "@working-theory/validation": "0.28.0",
36
+ "@working-theory/web-i18n": "0.28.0",
37
37
  "@working-theory/billing-client": "0.0.0",
38
38
  "@working-theory/branding": "0.0.0",
39
39
  "@working-theory/license-client": "0.0.0",
@@ -41,12 +41,12 @@
41
41
  "@working-theory/marketing-api-client": "0.0.0",
42
42
  "@working-theory/partner-session": "0.0.0",
43
43
  "@working-theory/preview-protocol": "0.0.0",
44
- "@working-theory/ui-commerce": "0.23.4",
45
- "@working-theory/ui-docs-blog": "0.23.4",
46
- "@working-theory/ui-scheduling": "0.23.4",
47
- "@working-theory/ui-signal-collectors": "0.24.2",
44
+ "@working-theory/ui-commerce": "0.23.5",
45
+ "@working-theory/ui-docs-blog": "0.23.5",
46
+ "@working-theory/ui-scheduling": "0.23.5",
47
+ "@working-theory/ui-signal-collectors": "0.24.3",
48
48
  "@working-theory/web": "0.0.0",
49
49
  "@working-theory/api": "1.0.0",
50
50
  "@working-theory/mcp": "0.0.0",
51
- "@working-theory/database": "0.27.0"
51
+ "@working-theory/database": "0.28.0"
52
52
  }
@@ -1,23 +0,0 @@
1
- ---
2
- type: "UseCase"
3
- slug: "first-use-case"
4
- title: "{First use case: the job a customer hires your product to do}"
5
- description: "{Two sentences on who this customer is and the result they get}"
6
- placeholder: true
7
- ---
8
-
9
- ## \{The situation\}
10
-
11
- \{Describe the customer before they found your product: who they are, what
12
- they were trying to get done, and what made it hard. Two or three sentences.\}
13
-
14
- ## \{How they use your product\}
15
-
16
- - \{The first thing they do with your product\}
17
- - \{The second thing they do with your product\}
18
- - \{The third thing they do with your product\}
19
-
20
- ## \{The result\}
21
-
22
- \{One paragraph on what changed for them, with one concrete number if you
23
- have one. Placeholder copy — replace every brace before you launch.\}
@@ -1,23 +0,0 @@
1
- ---
2
- type: "UseCase"
3
- slug: "second-use-case"
4
- title: "{Second use case: the job a customer hires your product to do}"
5
- description: "{Two sentences on who this customer is and the result they get}"
6
- placeholder: true
7
- ---
8
-
9
- ## \{The situation\}
10
-
11
- \{Describe the customer before they found your product: who they are, what
12
- they were trying to get done, and what made it hard. Two or three sentences.\}
13
-
14
- ## \{How they use your product\}
15
-
16
- - \{The first thing they do with your product\}
17
- - \{The second thing they do with your product\}
18
- - \{The third thing they do with your product\}
19
-
20
- ## \{The result\}
21
-
22
- \{One paragraph on what changed for them, with one concrete number if you
23
- have one. Placeholder copy — replace every brace before you launch.\}
@@ -1,23 +0,0 @@
1
- ---
2
- type: "UseCase"
3
- slug: "third-use-case"
4
- title: "{Third use case: the job a customer hires your product to do}"
5
- description: "{Two sentences on who this customer is and the result they get}"
6
- placeholder: true
7
- ---
8
-
9
- ## \{The situation\}
10
-
11
- \{Describe the customer before they found your product: who they are, what
12
- they were trying to get done, and what made it hard. Two or three sentences.\}
13
-
14
- ## \{How they use your product\}
15
-
16
- - \{The first thing they do with your product\}
17
- - \{The second thing they do with your product\}
18
- - \{The third thing they do with your product\}
19
-
20
- ## \{The result\}
21
-
22
- \{One paragraph on what changed for them, with one concrete number if you
23
- have one. Placeholder copy — replace every brace before you launch.\}
@@ -1,162 +0,0 @@
1
- ---
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.
4
- colors:
5
- bg: "#ffffff"
6
- fg: "#000000"
7
- surface: "#ffffff"
8
- surface-secondary: "#ffffff"
9
- border: "#000000"
10
- text-muted: "#333333"
11
- brand: "#000000"
12
- fg-on-brand: "#ffffff"
13
- accent: "#000000"
14
- bg-dark: "#000000"
15
- fg-dark: "#ffffff"
16
- border-dark: "#ffffff"
17
- brand-dark: "#ffffff"
18
- typography:
19
- display:
20
- fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
21
- fontSize: "3.5rem"
22
- fontWeight: 700
23
- lineHeight: 1.1
24
- letterSpacing: "normal"
25
- heading-section:
26
- fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
27
- fontSize: "3rem"
28
- fontWeight: 700
29
- lineHeight: 1.1
30
- letterSpacing: "normal"
31
- heading-item:
32
- fontSize: "2rem"
33
- fontWeight: 700
34
- lineHeight: 1.375
35
- letterSpacing: "normal"
36
- body:
37
- fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
38
- fontSize: "1.125rem"
39
- fontWeight: 400
40
- lineHeight: 1.5
41
- eyebrow:
42
- fontSize: "0.875rem"
43
- fontWeight: 600
44
- lineHeight: 1.4
45
- letterSpacing: "0.05em"
46
- rounded:
47
- button: "0.5rem"
48
- card: "0.75rem"
49
- spacing:
50
- section: "7rem"
51
- section-mobile: "4rem"
52
- card: "1.5rem"
53
- grid: "1.5rem"
54
- container: "1280px"
55
- measure: "36rem"
56
- ---
57
-
58
- <!--
59
- Source template: simple-service
60
- Design: standard
61
- Version: create-ailk {{CREATE_AILK_VERSION}}
62
-
63
- This is the `standard` design's DESIGN.md. Its one authored source is
64
- create-ailk's site-templates/designs/standard/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.
71
-
72
- The tokens above describe what the site RENDERS today. Colours come from
73
- content/_site.mdx (`theme.colors`); type, radius and spacing are platform
74
- defaults a site cannot override yet — see "Where this is heading" below.
75
- -->
76
-
77
- # Standard
78
-
79
- ## Overview
80
-
81
- The foundation reads like a well-made wireframe: nothing on the page but the words, black on white, with rules where other sites use shadows and colour. It is the look of a site whose owner has not chosen a brand yet and does not pretend otherwise — every placeholder reads as a placeholder, and the structure of the argument is what the visitor sees. A brand is applied on top of it; it is not one.
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. Each section is one full-width band with a lot of air around it.
84
-
85
- ## Colors
86
-
87
- ### Primary
88
-
89
- **Black** (`brand` `#000000`) fills the primary button; its label is white. The secondary button is white with a black hairline and black label.
90
-
91
- ### Neutral
92
-
93
- Pure white ground (`bg` `#ffffff`), pure black ink for headings (`fg` `#000000`), and near-black `#333333` for body copy — well above AA on white. **Borders are black** (`#000000`): card outlines, the rule under the navigation, the rules between sections and the rule above the footer are all 1px black lines. Cards are white, not tinted (`surface-secondary` is white too). There is no accent colour — `accent` is black.
94
-
95
- Dark mode inverts: black ground, white ink, white rules, white primary button with black label.
96
-
97
- ### Named Rules
98
-
99
- - **Rules, not fills.** A container is drawn with a black hairline on the white ground. Grey fills are reserved for image placeholders.
100
-
101
- ## Typography
102
-
103
- System sans throughout; no web font.
104
-
105
- ### Hierarchy
106
-
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 |
114
-
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).
116
-
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.
118
-
119
- ## Layout
120
-
121
- 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
-
123
- ## Shapes
124
-
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.
126
-
127
- ## Components
128
-
129
- ### Buttons
130
-
131
- Primary: black fill, white label, 0.5rem corners. Secondary: transparent with a black 1px outline and black label. Both are the library `Button`.
132
-
133
- ### Cards / Containers
134
-
135
- White panels with a black 1px outline, 0.75rem corners, `card` (1.5rem) padding. The one exception today: the "how it works" steps render as dark filled cards (see below).
136
-
137
- ### Navigation
138
-
139
- Full navigation: wordmark left, page links, an outlined and a filled button at the far right. A black hairline separates it from the page. Page links are 16px at weight 400. The two buttons are 42px tall on a 44px touch target and keep the 0.5rem button radius; square corners arrive with the platform radius change below, not in the nav alone (#6508). The Product link opens, on hover or keyboard, a 640px two-column panel whose items each show an icon, a title and a one-line description.
140
-
141
- ## Where this is heading
142
-
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`) |
155
-
156
- ## Do's and Don'ts
157
-
158
- - **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** change colours in `content/_site.mdx` `theme.colors`; they reach every section.
160
- - **Don't** add a colour accent. The foundation's one idea is black on white; a brand pass adds colour deliberately, through the theme.
161
- - **Don't** replace a black rule with a shadow or a grey fill.
162
- - **Don't** hard-code the "heading toward" values above into a page. They arrive through the platform, or not at all.