create-ailk 0.1.0 → 0.2.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 (620) hide show
  1. package/README.md +124 -3
  2. package/component-catalog.md +456 -0
  3. package/dist/cli.js +92 -16
  4. package/dist/component-catalog.d.ts +11 -0
  5. package/dist/component-catalog.js +39 -0
  6. package/dist/copy.d.ts +7 -0
  7. package/dist/copy.js +24 -0
  8. package/dist/derive-architecture.d.ts +13 -0
  9. package/dist/derive-architecture.js +238 -0
  10. package/dist/index.d.ts +7 -2
  11. package/dist/index.js +19 -2
  12. package/dist/lib/extract-module-bundle.d.ts +16 -0
  13. package/dist/lib/extract-module-bundle.js +184 -0
  14. package/dist/lib/fetch-module.d.ts +55 -0
  15. package/dist/lib/fetch-module.js +125 -0
  16. package/dist/lib/module-license-gate.d.ts +48 -0
  17. package/dist/lib/module-license-gate.js +67 -0
  18. package/dist/lib/module-tier.d.ts +35 -0
  19. package/dist/lib/module-tier.js +37 -0
  20. package/dist/module-architecture.d.ts +175 -0
  21. package/dist/module-architecture.js +663 -0
  22. package/dist/parse-args.d.ts +47 -1
  23. package/dist/parse-args.js +143 -2
  24. package/dist/programmatic.d.ts +160 -3
  25. package/dist/programmatic.js +196 -7
  26. package/dist/surfaces.d.ts +211 -0
  27. package/dist/surfaces.js +532 -0
  28. package/dist/sync-routes.d.ts +92 -0
  29. package/dist/sync-routes.js +350 -0
  30. package/package.json +12 -5
  31. package/templates/.claude/rules/architecture.md +6 -2
  32. package/templates/.claude/skills/README.md +9 -9
  33. package/templates/.claude/skills/add-schema/SKILL.md +14 -7
  34. package/templates/.claude/skills/add-schema/references/schema-types.md +109 -6
  35. package/templates/.claude/skills/provision-config/SKILL.md +1 -1
  36. package/templates/.claude/skills/scaffold-commerce/SKILL.md +498 -1
  37. package/templates/.claude/skills/scaffold-commerce/templates/checkout-route.template.ts +370 -0
  38. package/templates/.claude/skills/scaffold-commerce/templates/invoice-route.template.ts +376 -0
  39. package/templates/.claude/skills/scaffold-commerce/templates/payment-link-route.template.ts +471 -0
  40. package/templates/.claude/skills/scaffold-commerce/templates/portal-route.template.ts +365 -0
  41. package/templates/.claude/skills/scaffold-commerce/templates/stripe-config.template.ts +60 -0
  42. package/templates/.claude/skills/scaffold-commerce/templates/subscription-route.template.ts +446 -0
  43. package/templates/.claude/skills/suggest-site-pages/references/categories.md +4 -4
  44. package/templates/.env.example +126 -2
  45. package/templates/CLAUDE.md +11 -5
  46. package/templates/README.md +1 -1
  47. package/templates/apps/api/.env.example +38 -0
  48. package/templates/apps/api/CLAUDE.md +78 -1
  49. package/templates/apps/api/LICENSE +201 -0
  50. package/templates/apps/api/api/index.ts +6 -141
  51. package/templates/apps/api/jest.config.cjs +16 -0
  52. package/templates/apps/api/package.json +22 -6
  53. package/templates/apps/api/src/__tests__/module-exclusion.test.ts +141 -0
  54. package/templates/apps/api/src/__tests__/server.test.ts +46 -0
  55. package/templates/apps/api/src/__tests__/vercel-handler.test.ts +211 -0
  56. package/templates/apps/api/src/bin/abandon-sweep.ts +42 -0
  57. package/templates/apps/api/src/bin/deliverable-resend.ts +144 -0
  58. package/templates/apps/api/src/bin/deliverable-upload.ts +114 -0
  59. package/templates/apps/api/src/bin/followup-sweep.ts +44 -0
  60. package/templates/apps/api/src/bin/listing-csv-sweep.ts +46 -0
  61. package/templates/apps/api/src/bin/seed-presets.ts +58 -0
  62. package/templates/apps/api/src/bin/seed-waitlist-experiments.ts +104 -0
  63. package/templates/apps/api/src/bin/session-retention-sweep.ts +46 -0
  64. package/templates/apps/api/src/cli.ts +5 -11
  65. package/templates/apps/api/src/config/index.ts +35 -0
  66. package/templates/apps/api/src/config/modules.ts +43 -0
  67. package/templates/apps/api/src/lib/__mocks__/prisma-client.js +11 -0
  68. package/templates/apps/api/src/lib/__mocks__/prisma.ts +241 -0
  69. package/templates/apps/api/src/lib/__tests__/lead-capture-store.test.ts +2 -2
  70. package/templates/apps/api/src/lib/site.ts +16 -0
  71. package/templates/apps/api/src/lib/stripe.ts +22 -0
  72. package/templates/apps/api/src/lib/tenant-db.ts +225 -0
  73. package/templates/apps/api/src/lib/ws-token.ts +91 -0
  74. package/templates/apps/api/src/middleware/__tests__/adversarial/session-fixation.test.ts +7 -1
  75. package/templates/apps/api/src/middleware/__tests__/auth.cookie-path.test.ts +7 -1
  76. package/templates/apps/api/src/middleware/__tests__/rate-limit.test.ts +91 -4
  77. package/templates/apps/api/src/middleware/auth.ts +43 -8
  78. package/templates/apps/api/src/middleware/rate-limit.ts +78 -3
  79. package/templates/apps/api/src/middleware/tenant.ts +99 -0
  80. package/templates/apps/api/src/openapi/__tests__/openapi.test.ts +92 -0
  81. package/templates/apps/api/src/openapi/spec.ts +312 -3
  82. package/templates/apps/api/src/routes/aeo/__tests__/index.test.ts +175 -0
  83. package/templates/apps/api/src/routes/aeo/index.ts +107 -0
  84. package/templates/apps/api/src/routes/auth/__tests__/auth-tokens.functional.test.ts +5 -2
  85. package/templates/apps/api/src/routes/auth/__tests__/tokens.test.ts +22 -3
  86. package/templates/apps/api/src/routes/auth/tokens.ts +13 -1
  87. package/templates/apps/api/src/routes/billing/__tests__/portal.test.ts +450 -0
  88. package/templates/apps/api/src/routes/billing/__tests__/read.test.ts +262 -0
  89. package/templates/apps/api/src/routes/billing/__tests__/usage.test.ts +436 -0
  90. package/templates/apps/api/src/routes/billing/index.ts +36 -0
  91. package/templates/apps/api/src/routes/billing/portal.ts +182 -0
  92. package/templates/apps/api/src/routes/billing/read.ts +75 -0
  93. package/templates/apps/api/src/routes/billing/usage.ts +153 -0
  94. package/templates/apps/api/src/routes/checkout/__tests__/sessions.test.ts +99 -0
  95. package/templates/apps/api/src/routes/checkout/sessions.ts +20 -8
  96. package/templates/apps/api/src/routes/content/create.ts +1 -0
  97. package/templates/apps/api/src/routes/content/delete.ts +1 -0
  98. package/templates/apps/api/src/routes/content/index.ts +42 -6
  99. package/templates/apps/api/src/routes/content/update.ts +1 -0
  100. package/templates/apps/api/src/routes/deliverables/__tests__/index.test.ts +393 -0
  101. package/templates/apps/api/src/routes/deliverables/index.ts +200 -0
  102. package/templates/apps/api/src/routes/flow-checkouts/__tests__/index.test.ts +443 -0
  103. package/templates/apps/api/src/routes/flow-checkouts/index.ts +82 -0
  104. package/templates/apps/api/src/routes/flows/README.md +147 -0
  105. package/templates/apps/api/src/routes/flows/__tests__/index.test.ts +752 -0
  106. package/templates/apps/api/src/routes/flows/__tests__/recommender.test.ts +671 -0
  107. package/templates/apps/api/src/routes/flows/index.ts +202 -0
  108. package/templates/apps/api/src/routes/flows/recommender.ts +443 -0
  109. package/templates/apps/api/src/routes/leads/__tests__/index.test.ts +438 -31
  110. package/templates/apps/api/src/routes/leads/__tests__/track.test.ts +10 -10
  111. package/templates/apps/api/src/routes/leads/index.ts +43 -9
  112. package/templates/apps/api/src/routes/project-listings/__tests__/configured-application.test.ts +558 -0
  113. package/templates/apps/api/src/routes/project-listings/__tests__/copy-edit.test.ts +815 -0
  114. package/templates/apps/api/src/routes/project-listings/__tests__/drafts.test.ts +869 -0
  115. package/templates/apps/api/src/routes/project-listings/__tests__/me-route-precedence.test.ts +221 -0
  116. package/templates/apps/api/src/routes/project-listings/__tests__/me.test.ts +468 -0
  117. package/templates/apps/api/src/routes/project-listings/__tests__/public.test.ts +424 -0
  118. package/templates/apps/api/src/routes/project-listings/__tests__/site-answers.test.ts +707 -0
  119. package/templates/apps/api/src/routes/project-listings/__tests__/site-key.test.ts +375 -0
  120. package/templates/apps/api/src/routes/project-listings/__tests__/structured-address.test.ts +467 -0
  121. package/templates/apps/api/src/routes/project-listings/__tests__/tenant-isolation.test.ts +566 -0
  122. package/templates/apps/api/src/routes/project-listings/get.ts +70 -0
  123. package/templates/apps/api/src/routes/project-listings/index.ts +120 -0
  124. package/templates/apps/api/src/routes/project-listings/list.ts +47 -0
  125. package/templates/apps/api/src/routes/project-listings/me.ts +76 -0
  126. package/templates/apps/api/src/routes/project-listings/patch-copy.ts +222 -0
  127. package/templates/apps/api/src/routes/project-listings/patch-draft.ts +97 -0
  128. package/templates/apps/api/src/routes/project-listings/patch.ts +136 -0
  129. package/templates/apps/api/src/routes/project-listings/public.ts +52 -0
  130. package/templates/apps/api/src/routes/project-listings/respond.ts +37 -0
  131. package/templates/apps/api/src/routes/project-listings/resume-token.ts +22 -0
  132. package/templates/apps/api/src/routes/project-listings/start.ts +106 -0
  133. package/templates/apps/api/src/routes/project-listings/submit.ts +122 -0
  134. package/templates/apps/api/src/routes/schedule/__tests__/index.test.ts +490 -0
  135. package/templates/apps/api/src/routes/schedule/index.ts +249 -0
  136. package/templates/apps/api/src/routes/slack/__tests__/actions.test.ts +385 -0
  137. package/templates/apps/api/src/routes/slack/actions.ts +177 -0
  138. package/templates/apps/api/src/routes/slack/index.ts +38 -0
  139. package/templates/apps/api/src/routes/test/auth/__tests__/session.test.ts +16 -6
  140. package/templates/apps/api/src/routes/test/auth/session.ts +8 -6
  141. package/templates/apps/api/src/routes/waitlist-experiments/__tests__/tenant-isolation.test.ts +577 -0
  142. package/templates/apps/api/src/routes/waitlist-experiments/comparison.ts +78 -0
  143. package/templates/apps/api/src/routes/waitlist-experiments/index.ts +41 -0
  144. package/templates/apps/api/src/routes/waitlist-experiments/list.ts +64 -0
  145. package/templates/apps/api/src/routes/waitlist-experiments/respond.ts +42 -0
  146. package/templates/apps/api/src/routes/waitlist-experiments/signup.ts +84 -0
  147. package/templates/apps/api/src/routes/waitlist-experiments/signups.ts +119 -0
  148. package/templates/apps/api/src/routes/waitlist-signups/__tests__/index.test.ts +238 -0
  149. package/templates/apps/api/src/routes/waitlist-signups/index.ts +101 -0
  150. package/templates/apps/api/src/routes/webhooks/README.md +35 -12
  151. package/templates/apps/api/src/routes/webhooks/__tests__/stripe-flow-checkout.test.ts +315 -0
  152. package/templates/apps/api/src/routes/webhooks/__tests__/stripe-org-billing.test.ts +270 -0
  153. package/templates/apps/api/src/routes/webhooks/stripe.ts +248 -20
  154. package/templates/apps/api/src/routes/workspaces/__tests__/config-tenant-isolation.test.ts +356 -0
  155. package/templates/apps/api/src/routes/workspaces/__tests__/tenant-isolation.test.ts +671 -0
  156. package/templates/apps/api/src/routes/workspaces/config.ts +125 -0
  157. package/templates/apps/api/src/routes/workspaces/index.ts +194 -0
  158. package/templates/apps/api/src/routes/workspaces/sessions.ts +218 -0
  159. package/templates/apps/api/src/server.ts +307 -7
  160. package/templates/apps/api/src/services/__tests__/abandon-email.test.ts +489 -0
  161. package/templates/apps/api/src/services/__tests__/aeo-score.test.ts +475 -0
  162. package/templates/apps/api/src/services/__tests__/answer-distributions.test.ts +132 -0
  163. package/templates/apps/api/src/services/__tests__/consent-migration.test.ts +65 -0
  164. package/templates/apps/api/src/services/__tests__/consent.test.ts +282 -0
  165. package/templates/apps/api/src/services/__tests__/deliverable-fulfillment.test.ts +523 -0
  166. package/templates/apps/api/src/services/__tests__/deliverable-resend.test.ts +359 -0
  167. package/templates/apps/api/src/services/__tests__/entitlements.test.ts +142 -0
  168. package/templates/apps/api/src/services/__tests__/flow-aggregate.test.ts +425 -0
  169. package/templates/apps/api/src/services/__tests__/flow-engine.test.ts +2840 -0
  170. package/templates/apps/api/src/services/__tests__/lead-promotion.test.ts +393 -0
  171. package/templates/apps/api/src/services/__tests__/lead-routing.test.ts +8 -8
  172. package/templates/apps/api/src/services/__tests__/listing-csv-sweep.test.ts +560 -0
  173. package/templates/apps/api/src/services/__tests__/listing-promotion.test.ts +684 -0
  174. package/templates/apps/api/src/services/__tests__/playbook-compile.test.ts +406 -0
  175. package/templates/apps/api/src/services/__tests__/playbook-render.test.ts +290 -0
  176. package/templates/apps/api/src/services/__tests__/project-listing-decision.test.ts +736 -0
  177. package/templates/apps/api/src/services/__tests__/project-listing-flow.test.ts +475 -0
  178. package/templates/apps/api/src/services/__tests__/project-listing-issue.test.ts +340 -0
  179. package/templates/apps/api/src/services/__tests__/recommender-capture.test.ts +983 -0
  180. package/templates/apps/api/src/services/__tests__/slack-notify.test.ts +278 -0
  181. package/templates/apps/api/src/services/__tests__/tenant-context-cascade.test.ts +71 -0
  182. package/templates/apps/api/src/services/__tests__/tenant-context.test.ts +379 -0
  183. package/templates/apps/api/src/services/__tests__/usage-aggregation.test.ts +941 -0
  184. package/templates/apps/api/src/services/__tests__/usage-credits.test.ts +588 -0
  185. package/templates/apps/api/src/services/__tests__/usage-metering.test.ts +768 -0
  186. package/templates/apps/api/src/services/__tests__/waitlist-dashboard.test.ts +1314 -0
  187. package/templates/apps/api/src/services/__tests__/waitlist-experiments.test.ts +341 -0
  188. package/templates/apps/api/src/services/__tests__/waitlist-followup.test.ts +567 -0
  189. package/templates/apps/api/src/services/__tests__/waitlist-scoring.test.ts +474 -0
  190. package/templates/apps/api/src/services/__tests__/waitlist-signups.test.ts +354 -0
  191. package/templates/apps/api/src/services/abandon-email.ts +307 -0
  192. package/templates/apps/api/src/services/aeo-score.ts +288 -0
  193. package/templates/apps/api/src/services/answer-distributions.ts +138 -0
  194. package/templates/apps/api/src/services/consent.ts +236 -0
  195. package/templates/apps/api/src/services/deliverable-fulfillment.ts +523 -0
  196. package/templates/apps/api/src/services/entitlements.ts +102 -0
  197. package/templates/apps/api/src/services/flow-aggregate.ts +232 -0
  198. package/templates/apps/api/src/services/flow-checkouts.ts +123 -0
  199. package/templates/apps/api/src/services/flow-engine.ts +1296 -0
  200. package/templates/apps/api/src/services/lead-promotion.ts +176 -0
  201. package/templates/apps/api/src/services/lead-routing.ts +3 -3
  202. package/templates/apps/api/src/services/listing-config.ts +102 -0
  203. package/templates/apps/api/src/services/listing-csv-sweep.ts +455 -0
  204. package/templates/apps/api/src/services/listing-promotion.ts +342 -0
  205. package/templates/apps/api/src/services/playbook-compile.ts +398 -0
  206. package/templates/apps/api/src/services/playbook-render.ts +263 -0
  207. package/templates/apps/api/src/services/project-listing-decision.ts +510 -0
  208. package/templates/apps/api/src/services/project-listing-flow.ts +426 -0
  209. package/templates/apps/api/src/services/project-listing-issue.ts +251 -0
  210. package/templates/apps/api/src/services/project-listings.ts +1472 -0
  211. package/templates/apps/api/src/services/recommender-capture.ts +835 -0
  212. package/templates/apps/api/src/services/scheduling/cal-provider.ts +392 -0
  213. package/templates/apps/api/src/services/scheduling/index.ts +63 -0
  214. package/templates/apps/api/src/services/scheduling/types.ts +88 -0
  215. package/templates/apps/api/src/services/slack-notify.ts +240 -0
  216. package/templates/apps/api/src/services/tenant-context.ts +451 -0
  217. package/templates/apps/api/src/services/usage-aggregation.ts +516 -0
  218. package/templates/apps/api/src/services/usage-credits.ts +340 -0
  219. package/templates/apps/api/src/services/usage-metering.ts +699 -0
  220. package/templates/apps/api/src/services/waitlist-dashboard.ts +947 -0
  221. package/templates/apps/api/src/services/waitlist-experiments.ts +213 -0
  222. package/templates/apps/api/src/services/waitlist-followup.ts +486 -0
  223. package/templates/apps/api/src/services/waitlist-scoring.ts +166 -0
  224. package/templates/apps/api/src/services/waitlist-signups.ts +165 -0
  225. package/templates/apps/api/src/vercel-handler.ts +165 -0
  226. package/templates/apps/api/tsconfig.json +0 -12
  227. package/templates/apps/mcp/CLAUDE.md +19 -9
  228. package/templates/apps/mcp/LICENSE +201 -0
  229. package/templates/apps/mcp/__tests__/create_page.test.ts +1 -0
  230. package/templates/apps/mcp/__tests__/delete_page.test.ts +1 -0
  231. package/templates/apps/mcp/__tests__/module-exclusion.test.ts +105 -0
  232. package/templates/apps/mcp/__tests__/parity.test.ts +70 -6
  233. package/templates/apps/mcp/__tests__/request_callback.test.ts +4 -4
  234. package/templates/apps/mcp/__tests__/schedule_tools.test.ts +242 -0
  235. package/templates/apps/mcp/__tests__/submit_lead.test.ts +4 -4
  236. package/templates/apps/mcp/__tests__/subscribe_newsletter.test.ts +4 -4
  237. package/templates/apps/mcp/__tests__/tools/purchase.test.ts +47 -0
  238. package/templates/apps/mcp/__tests__/update_page.test.ts +1 -0
  239. package/templates/apps/mcp/package.json +6 -4
  240. package/templates/apps/mcp/src/config/modules.ts +37 -0
  241. package/templates/apps/mcp/src/server.ts +109 -18
  242. package/templates/apps/mcp/src/tools/capture_lead.ts +1 -1
  243. package/templates/apps/mcp/src/tools/create_booking.ts +58 -0
  244. package/templates/apps/mcp/src/tools/create_page.ts +1 -0
  245. package/templates/apps/mcp/src/tools/delete_page.ts +1 -0
  246. package/templates/apps/mcp/src/tools/get_event_meta.ts +55 -0
  247. package/templates/apps/mcp/src/tools/get_flow.ts +61 -0
  248. package/templates/apps/mcp/src/tools/index.ts +25 -0
  249. package/templates/apps/mcp/src/tools/list_availability.ts +67 -0
  250. package/templates/apps/mcp/src/tools/purchase.ts +3 -0
  251. package/templates/apps/mcp/src/tools/submit_flow_step.ts +83 -0
  252. package/templates/apps/mcp/src/tools/update_page.ts +1 -0
  253. package/templates/apps/mcp/tsconfig.json +1 -9
  254. package/templates/apps/web/.env.example +44 -0
  255. package/templates/apps/web/CLAUDE.md +28 -0
  256. package/templates/apps/web/LICENSE +201 -0
  257. package/templates/apps/web/__tests__/__mocks__/code-highlight.jest-stub.ts +24 -0
  258. package/templates/apps/web/__tests__/__mocks__/next-intl-server.ts +33 -0
  259. package/templates/apps/web/__tests__/__mocks__/next-intl.ts +18 -0
  260. package/templates/apps/web/__tests__/__mocks__/server-only.ts +13 -0
  261. package/templates/apps/web/__tests__/__mocks__/style-mock.js +4 -0
  262. package/templates/apps/web/__tests__/__mocks__/vercel-analytics-server.ts +9 -0
  263. package/templates/apps/web/__tests__/jest-support/import-meta-transformer.cjs +90 -0
  264. package/templates/apps/web/__tests__/setup.ts +22 -32
  265. package/templates/apps/web/app/.well-known/ai-plugin.json/route.ts +6 -3
  266. package/templates/apps/web/app/.well-known/mcp.json/build-manifest.ts +8 -2
  267. package/templates/apps/web/app/[locale]/(authed)/account/__tests__/page.test.tsx +260 -0
  268. package/templates/apps/web/app/[locale]/(authed)/account/page.tsx +263 -0
  269. package/templates/apps/web/app/[locale]/(authed)/account/sign-out-button.tsx +39 -0
  270. package/templates/apps/web/app/[locale]/(authed)/layout.tsx +54 -0
  271. package/templates/apps/web/app/[locale]/(authed)/sign-in-gate.tsx +96 -0
  272. package/templates/apps/web/app/[locale]/(authed)/waitlist/[experimentId]/page.tsx +309 -0
  273. package/templates/apps/web/app/[locale]/(authed)/waitlist/[experimentId]/signups/[leadId]/page.tsx +149 -0
  274. package/templates/apps/web/app/[locale]/(authed)/waitlist/__tests__/comparison.test.tsx +273 -0
  275. package/templates/apps/web/app/[locale]/(authed)/waitlist/__tests__/gate.test.tsx +172 -0
  276. package/templates/apps/web/app/[locale]/(authed)/waitlist/__tests__/list.test.tsx +171 -0
  277. package/templates/apps/web/app/[locale]/(authed)/waitlist/__tests__/signup.test.tsx +179 -0
  278. package/templates/apps/web/app/[locale]/(authed)/waitlist/components/ExperimentsTable.tsx +116 -0
  279. package/templates/apps/web/app/[locale]/(authed)/waitlist/components/ForbiddenState.tsx +24 -0
  280. package/templates/apps/web/app/[locale]/(authed)/waitlist/components/OfferFunnelTable.tsx +66 -0
  281. package/templates/apps/web/app/[locale]/(authed)/waitlist/components/RollupTicker.tsx +61 -0
  282. package/templates/apps/web/app/[locale]/(authed)/waitlist/components/ScoreTrace.tsx +114 -0
  283. package/templates/apps/web/app/[locale]/(authed)/waitlist/components/SignupsTable.tsx +139 -0
  284. package/templates/apps/web/app/[locale]/(authed)/waitlist/components/WaitlistComparisonTabs.tsx +85 -0
  285. package/templates/apps/web/app/[locale]/(authed)/waitlist/components/status-badges.tsx +67 -0
  286. package/templates/apps/web/app/[locale]/(authed)/waitlist/format.ts +111 -0
  287. package/templates/apps/web/app/[locale]/(authed)/waitlist/page.tsx +179 -0
  288. package/templates/apps/web/app/[locale]/about/page.tsx +10 -1
  289. package/templates/apps/web/app/[locale]/blog/[[...slug]]/page.tsx +6 -1
  290. package/templates/apps/web/app/[locale]/careers/[slug]/page.tsx +9 -0
  291. package/templates/apps/web/app/[locale]/careers/__tests__/page-renderer-migration.test.tsx +3 -3
  292. package/templates/apps/web/app/[locale]/careers/page.tsx +9 -1
  293. package/templates/apps/web/app/[locale]/case-studies/[slug]/page.tsx +9 -0
  294. package/templates/apps/web/app/[locale]/case-studies/__tests__/page-renderer-migration.test.tsx +3 -3
  295. package/templates/apps/web/app/[locale]/case-studies/page.tsx +13 -1
  296. package/templates/apps/web/app/[locale]/clients/__tests__/page-renderer-migration.test.tsx +11 -1
  297. package/templates/apps/web/app/[locale]/clients/page.tsx +9 -1
  298. package/templates/apps/web/app/[locale]/contact/ContactForm.tsx +21 -1
  299. package/templates/apps/web/app/[locale]/contact/ConversationalIntakeWrapper.tsx +188 -0
  300. package/templates/apps/web/app/[locale]/contact/__tests__/ConversationalIntakeWrapper.test.tsx +242 -0
  301. package/templates/apps/web/app/[locale]/contact/__tests__/contact.actions.test.ts +29 -0
  302. package/templates/apps/web/app/[locale]/contact/__tests__/intake-analytics.test.ts +51 -0
  303. package/templates/apps/web/app/[locale]/contact/__tests__/page-renderer-migration.test.tsx +39 -15
  304. package/templates/apps/web/app/[locale]/contact/contact.actions.ts +21 -3
  305. package/templates/apps/web/app/[locale]/contact/intake-analytics.ts +49 -0
  306. package/templates/apps/web/app/[locale]/contact/intake-script.ts +66 -0
  307. package/templates/apps/web/app/[locale]/contact/page.tsx +14 -4
  308. package/templates/apps/web/app/[locale]/courses/[slug]/page.tsx +13 -1
  309. package/templates/apps/web/app/[locale]/courses/__tests__/page-renderer-migration.test.tsx +3 -3
  310. package/templates/apps/web/app/[locale]/courses/page.tsx +9 -1
  311. package/templates/apps/web/app/[locale]/docs/[[...slug]]/page.tsx +1 -0
  312. package/templates/apps/web/app/[locale]/downloads/__tests__/page-renderer-migration.test.tsx +11 -1
  313. package/templates/apps/web/app/[locale]/downloads/page.tsx +13 -1
  314. package/templates/apps/web/app/[locale]/events/[slug]/page.tsx +9 -0
  315. package/templates/apps/web/app/[locale]/events/__tests__/page-renderer-migration.test.tsx +12 -2
  316. package/templates/apps/web/app/[locale]/events/page.tsx +9 -1
  317. package/templates/apps/web/app/[locale]/faq/page.tsx +10 -1
  318. package/templates/apps/web/app/[locale]/flows/[slug]/FlowStepperClient.tsx +265 -0
  319. package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/FlowStepperClient.permalink.test.tsx +445 -0
  320. package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/FlowStepperClient.test.tsx +341 -0
  321. package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/checkout.actions.test.ts +287 -0
  322. package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/flow.actions.test.ts +302 -0
  323. package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/two-route-tool.test.tsx +128 -0
  324. package/templates/apps/web/app/[locale]/flows/[slug]/checkout.actions.ts +254 -0
  325. package/templates/apps/web/app/[locale]/flows/[slug]/flow.actions.ts +144 -0
  326. package/templates/apps/web/app/[locale]/flows/[slug]/page.tsx +108 -0
  327. package/templates/apps/web/app/[locale]/flows/[slug]/results/[payload]/ResultsClient.tsx +532 -0
  328. package/templates/apps/web/app/[locale]/flows/[slug]/results/[payload]/ResultsEmailStep.tsx +121 -0
  329. package/templates/apps/web/app/[locale]/flows/[slug]/results/[payload]/__tests__/ResultsClient.checkout.test.tsx +457 -0
  330. package/templates/apps/web/app/[locale]/flows/[slug]/results/[payload]/__tests__/page.test.tsx +396 -0
  331. package/templates/apps/web/app/[locale]/flows/[slug]/results/[payload]/page.tsx +114 -0
  332. package/templates/apps/web/app/[locale]/flows/[slug]/start/page.tsx +52 -0
  333. package/templates/apps/web/app/[locale]/how-to/[slug]/page.tsx +13 -1
  334. package/templates/apps/web/app/[locale]/how-to/__tests__/page-renderer-migration.test.tsx +1 -1
  335. package/templates/apps/web/app/[locale]/integrations/[slug]/page.tsx +9 -0
  336. package/templates/apps/web/app/[locale]/integrations/__tests__/page-renderer-migration.test.tsx +3 -3
  337. package/templates/apps/web/app/[locale]/integrations/page.tsx +13 -1
  338. package/templates/apps/web/app/[locale]/launch-service/page.tsx +14 -1
  339. package/templates/apps/web/app/[locale]/layout.tsx +127 -16
  340. package/templates/apps/web/app/[locale]/page.tsx +10 -1
  341. package/templates/apps/web/app/[locale]/partners/[slug]/page.tsx +9 -0
  342. package/templates/apps/web/app/[locale]/partners/__tests__/page-renderer-migration.test.tsx +3 -3
  343. package/templates/apps/web/app/[locale]/partners/page.tsx +9 -1
  344. package/templates/apps/web/app/[locale]/products/[slug]/page.tsx +9 -0
  345. package/templates/apps/web/app/[locale]/products/__tests__/page-renderer-migration.test.tsx +3 -3
  346. package/templates/apps/web/app/[locale]/products/page.tsx +9 -1
  347. package/templates/apps/web/app/[locale]/projects/[slug]/page.tsx +13 -1
  348. package/templates/apps/web/app/[locale]/projects/__tests__/page-renderer-migration.test.tsx +10 -0
  349. package/templates/apps/web/app/[locale]/projects/apply/ListingApplicationClient.tsx +110 -0
  350. package/templates/apps/web/app/[locale]/projects/apply/__tests__/ListingApplicationClient.test.tsx +96 -0
  351. package/templates/apps/web/app/[locale]/projects/page.tsx +13 -1
  352. package/templates/apps/web/app/[locale]/resources/[slug]/page.tsx +9 -0
  353. package/templates/apps/web/app/[locale]/resources/__tests__/page-renderer-migration.test.tsx +12 -2
  354. package/templates/apps/web/app/[locale]/resources/page.tsx +13 -1
  355. package/templates/apps/web/app/[locale]/schedule/__tests__/page.test.tsx +117 -0
  356. package/templates/apps/web/app/[locale]/schedule/confirmed/__tests__/page.test.tsx +96 -0
  357. package/templates/apps/web/app/[locale]/schedule/confirmed/page.tsx +92 -0
  358. package/templates/apps/web/app/[locale]/schedule/page.tsx +82 -0
  359. package/templates/apps/web/app/[locale]/services/[slug]/page.tsx +9 -0
  360. package/templates/apps/web/app/[locale]/services/__tests__/page-renderer-migration.test.tsx +3 -3
  361. package/templates/apps/web/app/[locale]/services/page.tsx +9 -1
  362. package/templates/apps/web/app/[locale]/sign-in/__tests__/next-path.test.ts +31 -0
  363. package/templates/apps/web/app/[locale]/sign-in/__tests__/page.test.tsx +152 -0
  364. package/templates/apps/web/app/[locale]/sign-in/next-path.ts +0 -0
  365. package/templates/apps/web/app/[locale]/sign-in/page.tsx +83 -0
  366. package/templates/apps/web/app/[locale]/sign-in/sign-in-card.tsx +123 -0
  367. package/templates/apps/web/app/[locale]/software/[slug]/page.tsx +13 -1
  368. package/templates/apps/web/app/[locale]/software/__tests__/page-renderer-migration.test.tsx +1 -1
  369. package/templates/apps/web/app/[locale]/tech-articles/[slug]/page.tsx +13 -1
  370. package/templates/apps/web/app/[locale]/tech-articles/__tests__/page-renderer-migration.test.tsx +1 -1
  371. package/templates/apps/web/app/[locale]/testimonials/__tests__/page-renderer-migration.test.tsx +11 -1
  372. package/templates/apps/web/app/[locale]/testimonials/page.tsx +13 -1
  373. package/templates/apps/web/app/[locale]/thanks/[slug]/__tests__/page.test.tsx +93 -0
  374. package/templates/apps/web/app/[locale]/thanks/[slug]/page.tsx +48 -0
  375. package/templates/apps/web/app/[locale]/use-cases/__tests__/page-renderer-migration.test.tsx +11 -1
  376. package/templates/apps/web/app/[locale]/use-cases/page.tsx +13 -1
  377. package/templates/apps/web/app/[locale]/whitepapers/[slug]/page.tsx +13 -1
  378. package/templates/apps/web/app/[locale]/whitepapers/__tests__/page-renderer-migration.test.tsx +1 -1
  379. package/templates/apps/web/app/globals.css +35 -0
  380. package/templates/apps/web/app/llms.txt/route.ts +2 -1
  381. package/templates/apps/web/app/og/route.tsx +10 -2
  382. package/templates/apps/web/auth.ts +8 -0
  383. package/templates/apps/web/components/sign-out-trigger.tsx +42 -0
  384. package/templates/apps/web/content/en/blog/README.txt +25 -0
  385. package/templates/apps/web/content/en/docs/index.mdx +28 -0
  386. package/templates/apps/web/jest.config.cjs +90 -27
  387. package/templates/apps/web/lib/__tests__/site-brand.test.ts +119 -0
  388. package/templates/apps/web/lib/__tests__/site-theme.test.ts +112 -0
  389. package/templates/apps/web/lib/__tests__/structured-data.test.tsx +499 -0
  390. package/templates/apps/web/lib/account-config.ts +13 -0
  391. package/templates/apps/web/lib/server-api.ts +85 -0
  392. package/templates/apps/web/lib/site-brand.tsx +121 -0
  393. package/templates/apps/web/lib/site-theme.ts +74 -0
  394. package/templates/apps/web/messages/en.json +275 -7
  395. package/templates/apps/web/middleware.ts +11 -3
  396. package/templates/apps/web/next.config.mjs +8 -2
  397. package/templates/apps/web/package.json +17 -7
  398. package/templates/apps/web/postcss.config.mjs +23 -0
  399. package/templates/apps/web/public/.well-known/security.txt +3 -3
  400. package/templates/apps/web/src/lib/routes.ts +15 -2
  401. package/templates/apps/web/tsconfig.json +1 -16
  402. package/templates/content/_site.mdx +36 -25
  403. package/templates/content/en/AboutPage/about.mdx +24 -14
  404. package/templates/content/en/ContactPage/contact.mdx +23 -14
  405. package/templates/content/en/FAQPage/faq.mdx +10 -392
  406. package/templates/content/en/HomePage/home.mdx +14 -285
  407. package/templates/database/CHANGELOG.md +443 -0
  408. package/templates/database/LICENSE +201 -0
  409. package/templates/database/README.md +3 -1
  410. package/templates/database/__tests__/flows-listing-diagnostic.test.ts +392 -0
  411. package/templates/database/__tests__/flows-presets.test.ts +173 -0
  412. package/templates/database/__tests__/prefixed-ids.db.test.ts +146 -0
  413. package/templates/database/__tests__/seed.test.ts +88 -0
  414. package/templates/database/__tests__/user-cascade.test.ts +19 -4
  415. package/templates/database/auth/schema.prisma +521 -0
  416. package/templates/database/config/schema.prisma +234 -0
  417. package/templates/database/content/schema.prisma +263 -0
  418. package/templates/database/flows/listing-diagnostic.ts +182 -0
  419. package/templates/database/flows/presets.ts +315 -0
  420. package/templates/database/inbox/__tests__/schema.test.ts +4 -0
  421. package/templates/database/inbox/schema.prisma +574 -3
  422. package/templates/database/jest.config.cjs +8 -0
  423. package/templates/database/migrations/20260712215647_add_multi_tenant_tenancy/migration.sql +201 -0
  424. package/templates/database/migrations/20260713143320_reanchor_site_config_to_workspace/migration.sql +67 -0
  425. package/templates/database/migrations/20260713174000_add_audit_logs/migration.sql +46 -0
  426. package/templates/database/migrations/20260713190000_drop_telemetry_records/migration.sql +25 -0
  427. package/templates/database/migrations/20260713192000_add_uuidv7_function/migration.sql +49 -0
  428. package/templates/database/migrations/20260713192429_prefixed_uuid_entity_ids/migration.sql +197 -0
  429. package/templates/database/migrations/20260713200000_add_org_billing/migration.sql +32 -0
  430. package/templates/database/migrations/20260714000000_add_lead_promotion_fields/migration.sql +22 -0
  431. package/templates/database/migrations/20260714010000_add_usage_billing_content_models/migration.sql +151 -0
  432. package/templates/database/migrations/20260714020000_add_usage_billing_auth_config_models/migration.sql +223 -0
  433. package/templates/database/migrations/20260714030000_credit_balance_non_negative/migration.sql +22 -0
  434. package/templates/database/migrations/20260714030000_widen_usage_billing_report_aggregates/migration.sql +32 -0
  435. package/templates/database/migrations/20260810233516_add_flow_engine_models/migration.sql +40 -0
  436. package/templates/database/migrations/20260811020000_add_flow_session_abandon_email_columns/migration.sql +4 -0
  437. package/templates/database/migrations/20260811030000_add_flow_session_abandon_email_index/migration.sql +2 -0
  438. package/templates/database/migrations/20260811040000_add_flow_session_segment/migration.sql +2 -0
  439. package/templates/database/migrations/20260811050000_add_deliverable_models/migration.sql +29 -0
  440. package/templates/database/migrations/20260812000000_add_deliverable_grant_send_columns/migration.sql +6 -0
  441. package/templates/database/migrations/20260902222948_add_waitlist_experiment_models/migration.sql +39 -0
  442. package/templates/database/migrations/20260902224500_add_waitlist_id_format_checks/migration.sql +24 -0
  443. package/templates/database/migrations/20260903004112_add_flow_session_flags_aeo_score/migration.sql +3 -0
  444. package/templates/database/migrations/20260903010000_add_playbook_instance/migration.sql +33 -0
  445. package/templates/database/migrations/20260904000000_add_waitlist_followup_send/migration.sql +30 -0
  446. package/templates/database/migrations/20260905230000_add_flow_checkout/migration.sql +47 -0
  447. package/templates/database/migrations/20260906000000_add_flow_checkout_idempotency/migration.sql +16 -0
  448. package/templates/database/migrations/20260907120000_add_project_listing/migration.sql +47 -0
  449. package/templates/database/migrations/20260907130000_add_project_listing_slack_columns/migration.sql +10 -0
  450. package/templates/database/migrations/20260907180000_add_listing_csv_send/migration.sql +26 -0
  451. package/templates/database/migrations/20260909120000_project_listings_platform/migration.sql +90 -0
  452. package/templates/database/migrations/20260909180000_listing_draft_and_fields/migration.sql +174 -0
  453. package/templates/database/migrations/20260910120000_listing_public_site_key/migration.sql +14 -0
  454. package/templates/database/migrations/20260911120000_listing_copy_edit_audit/migration.sql +25 -0
  455. package/templates/database/migrations/20260911140000_listing_structured_address/migration.sql +32 -0
  456. package/templates/database/migrations/20260911180000_consent_grants/migration.sql +71 -0
  457. package/templates/database/migrations/20260911200000_listing_site_answers/migration.sql +30 -0
  458. package/templates/database/migrations/20260912120000_listing_owner_link/migration.sql +49 -0
  459. package/templates/database/ops/schema.prisma +27 -0
  460. package/templates/database/package.json +42 -4
  461. package/templates/database/prisma.config.ts +1 -1
  462. package/templates/database/schema.prisma +19 -435
  463. package/templates/database/seed-test.ts +14 -4
  464. package/templates/database/seed.ts +148 -0
  465. package/templates/database/tenancy.ts +45 -0
  466. package/templates/database/tsconfig.flows.json +15 -0
  467. package/templates/database/tsconfig.json +7 -1
  468. package/templates/database/tsconfig.tenancy.json +14 -0
  469. package/templates/package.json +30 -55
  470. package/templates/pnpm-workspace.yaml +0 -3
  471. package/templates/project.yaml +1 -1
  472. package/templates/tsconfig.json +1 -37
  473. package/templates/apps/web/__tests__/auth/adversarial/cookie-attributes.test.ts +0 -94
  474. package/templates/apps/web/__tests__/auth/adversarial/oauth-state-parameter.test.ts +0 -75
  475. package/templates/apps/web/__tests__/auth/adversarial/redirect-uri-allowlist.test.ts +0 -82
  476. package/templates/apps/web/__tests__/auth/env-helpers.test.ts +0 -168
  477. package/templates/apps/web/__tests__/authority-list-routes.test.tsx +0 -208
  478. package/templates/apps/web/__tests__/better-stack.test.ts +0 -66
  479. package/templates/apps/web/__tests__/blog-dir-resolution.test.ts +0 -87
  480. package/templates/apps/web/__tests__/blog-source-populated.test.ts +0 -130
  481. package/templates/apps/web/__tests__/data-testid-coverage.test.tsx +0 -60
  482. package/templates/apps/web/__tests__/google-analytics.test.tsx +0 -104
  483. package/templates/apps/web/__tests__/i18n/middleware.test.ts +0 -119
  484. package/templates/apps/web/__tests__/i18n/routing.test.ts +0 -114
  485. package/templates/apps/web/__tests__/i18n/translations.test.ts +0 -191
  486. package/templates/apps/web/__tests__/json-ld.test.ts +0 -98
  487. package/templates/apps/web/__tests__/knowledge-events-routes.test.tsx +0 -580
  488. package/templates/apps/web/__tests__/layout-stealth.test.ts +0 -39
  489. package/templates/apps/web/__tests__/lighthouse-fixtures/improvement-image-shrink.tsx +0 -103
  490. package/templates/apps/web/__tests__/lighthouse-fixtures/override-fixture.md +0 -114
  491. package/templates/apps/web/__tests__/lighthouse-fixtures/regression-bloat.tsx +0 -94
  492. package/templates/apps/web/__tests__/page.test.tsx +0 -230
  493. package/templates/apps/web/__tests__/products-services-phase1.test.tsx +0 -321
  494. package/templates/apps/web/__tests__/projects-routes.test.tsx +0 -392
  495. package/templates/apps/web/__tests__/resources-downloads-integrations-phase2.test.tsx +0 -475
  496. package/templates/apps/web/__tests__/routes/ai-plugin-json.test.ts +0 -53
  497. package/templates/apps/web/__tests__/routes/blog-route.test.tsx +0 -191
  498. package/templates/apps/web/__tests__/routes/llms-txt.test.ts +0 -123
  499. package/templates/apps/web/__tests__/routes/robots-txt.test.ts +0 -52
  500. package/templates/apps/web/__tests__/routes/sitemap-xml.test.ts +0 -78
  501. package/templates/apps/web/__tests__/routes/well-known-mcp.test.ts +0 -203
  502. package/templates/apps/web/__tests__/section-routes.test.tsx +0 -693
  503. package/templates/apps/web/__tests__/security-headers.test.ts +0 -201
  504. package/templates/apps/web/__tests__/sentry-config.test.ts +0 -116
  505. package/templates/apps/web/__tests__/sitemap-locales.test.ts +0 -415
  506. package/templates/apps/web/__tests__/standalone-informational-routes.test.tsx +0 -844
  507. package/templates/apps/web/app/[locale]/__tests__/layout.test.tsx +0 -120
  508. package/templates/apps/web/app/[locale]/__tests__/page-renderer-migration.test.tsx +0 -202
  509. package/templates/apps/web/app/__tests__/error-boundaries.test.tsx +0 -152
  510. package/templates/apps/web/content/en/blog/index.mdx +0 -15
  511. package/templates/apps/web/content/en/blog/launching-ailk.mdx +0 -20
  512. package/templates/apps/web/content/en/docs/getting-started.mdx +0 -30
  513. package/templates/content/.gitkeep +0 -0
  514. package/templates/content/CLAUDE.md +0 -85
  515. package/templates/content/ar/HomePage/home.mdx +0 -123
  516. package/templates/content/ar/_site.mdx +0 -35
  517. package/templates/content/de/_site.mdx +0 -29
  518. package/templates/content/en/.gitkeep +0 -0
  519. package/templates/content/en/AboutPage/about.schema.json +0 -82
  520. package/templates/content/en/BookCall/book-call.mdx +0 -19
  521. package/templates/content/en/BookCall/book-call.schema.json +0 -121
  522. package/templates/content/en/BreadcrumbList/site-breadcrumbs.mdx +0 -20
  523. package/templates/content/en/CareersList/careers.mdx +0 -24
  524. package/templates/content/en/CaseStudiesList/case-studies.mdx +0 -22
  525. package/templates/content/en/CaseStudiesList/showcase.mdx +0 -8
  526. package/templates/content/en/CaseStudy/ailk-aeo-rollout.mdx +0 -32
  527. package/templates/content/en/CaseStudy/schema-builder-migration.mdx +0 -41
  528. package/templates/content/en/ClientsList/clients.mdx +0 -38
  529. package/templates/content/en/ContactPage/contact.schema.json +0 -100
  530. package/templates/content/en/ContactPoint/primary.mdx +0 -14
  531. package/templates/content/en/Course/aeo-fundamentals.mdx +0 -37
  532. package/templates/content/en/Course/schema-builder-workshop.mdx +0 -62
  533. package/templates/content/en/CoursesList/courses.mdx +0 -22
  534. package/templates/content/en/DownloadsList/downloads.mdx +0 -22
  535. package/templates/content/en/Event/aeo-office-hours-may-2026.mdx +0 -39
  536. package/templates/content/en/Event/ailk-launch-day-2026.mdx +0 -35
  537. package/templates/content/en/EventsList/events.mdx +0 -26
  538. package/templates/content/en/FAQPage/faq.schema.json +0 -231
  539. package/templates/content/en/GlossaryList/glossary.mdx +0 -19
  540. package/templates/content/en/GlossaryList/glossary.schema.json +0 -300
  541. package/templates/content/en/HomePage/home.schema.json +0 -88
  542. package/templates/content/en/HomePage/launch-service.mdx +0 -475
  543. package/templates/content/en/HomePage/launch-service.schema.json +0 -138
  544. package/templates/content/en/HowTo/add-mdx-content.mdx +0 -38
  545. package/templates/content/en/HowTo/configure-aeo-scoring.mdx +0 -35
  546. package/templates/content/en/HowTo/set-up-json-ld.mdx +0 -36
  547. package/templates/content/en/Integration/github-actions.mdx +0 -31
  548. package/templates/content/en/Integration/openai-api.mdx +0 -26
  549. package/templates/content/en/Integration/vercel.mdx +0 -32
  550. package/templates/content/en/IntegrationsList/integrations.mdx +0 -22
  551. package/templates/content/en/JobPosting/content-strategist.mdx +0 -46
  552. package/templates/content/en/JobPosting/developer-advocate.mdx +0 -47
  553. package/templates/content/en/JobPosting/senior-fullstack-engineer.mdx +0 -57
  554. package/templates/content/en/LandingPage/aeo-audit.mdx +0 -19
  555. package/templates/content/en/LandingPage/aeo-audit.schema.json +0 -92
  556. package/templates/content/en/LandingPage/agency-waitlist.mdx +0 -340
  557. package/templates/content/en/LandingPage/agency-waitlist.schema.json +0 -152
  558. package/templates/content/en/LandingPage/developers.mdx +0 -19
  559. package/templates/content/en/LandingPage/developers.schema.json +0 -109
  560. package/templates/content/en/LandingPage/for-agencies.mdx +0 -390
  561. package/templates/content/en/LandingPage/for-agencies.schema.json +0 -107
  562. package/templates/content/en/LandingPage/for-ai-search-agencies.mdx +0 -417
  563. package/templates/content/en/LandingPage/for-ai-search-agencies.schema.json +0 -105
  564. package/templates/content/en/LandingPage/for-businesses.mdx +0 -19
  565. package/templates/content/en/LandingPage/for-businesses.schema.json +0 -96
  566. package/templates/content/en/LandingPage/platform.mdx +0 -369
  567. package/templates/content/en/LandingPage/platform.schema.json +0 -166
  568. package/templates/content/en/LandingPage/vs-ai-website-builders.mdx +0 -19
  569. package/templates/content/en/LandingPage/vs-ai-website-builders.schema.json +0 -102
  570. package/templates/content/en/LandingPage/vs-wordpress.mdx +0 -19
  571. package/templates/content/en/LandingPage/vs-wordpress.schema.json +0 -53
  572. package/templates/content/en/NewsletterSignup/newsletter.mdx +0 -236
  573. package/templates/content/en/NewsletterSignup/newsletter.schema.json +0 -91
  574. package/templates/content/en/Organization/site-owner.mdx +0 -16
  575. package/templates/content/en/Partner/prisma.mdx +0 -31
  576. package/templates/content/en/Partner/supabase.mdx +0 -30
  577. package/templates/content/en/Partner/vercel.mdx +0 -28
  578. package/templates/content/en/PartnersList/partners.mdx +0 -22
  579. package/templates/content/en/Person/founder.mdx +0 -18
  580. package/templates/content/en/Pricing/pricing.mdx +0 -538
  581. package/templates/content/en/Pricing/pricing.schema.json +0 -209
  582. package/templates/content/en/PrivacyPage/privacy.mdx +0 -165
  583. package/templates/content/en/PrivacyPage/privacy.schema.json +0 -64
  584. package/templates/content/en/Product/ailk.mdx +0 -19
  585. package/templates/content/en/Product/ailk.schema.json +0 -94
  586. package/templates/content/en/Product/api-launch-kit.mdx +0 -26
  587. package/templates/content/en/Product/launch-kit.mdx +0 -28
  588. package/templates/content/en/ProductsList/products.mdx +0 -26
  589. package/templates/content/en/Project/ailk-phase-2.mdx +0 -54
  590. package/templates/content/en/ProjectsList/projects.mdx +0 -25
  591. package/templates/content/en/ResourceDetail/aeo-scoring-guide.mdx +0 -27
  592. package/templates/content/en/ResourceDetail/content-model-whitepaper.mdx +0 -28
  593. package/templates/content/en/ResourceDetail/schema-org-quick-reference.mdx +0 -39
  594. package/templates/content/en/ResourcesHub/resources.mdx +0 -22
  595. package/templates/content/en/Service/consulting.mdx +0 -22
  596. package/templates/content/en/Service/implementation.mdx +0 -30
  597. package/templates/content/en/Service/launch-service.mdx +0 -232
  598. package/templates/content/en/Service/launch.mdx +0 -228
  599. package/templates/content/en/ServicesList/services.mdx +0 -84
  600. package/templates/content/en/SoftwareProduct/ailk-aeo.mdx +0 -44
  601. package/templates/content/en/SoftwareProduct/ailk-content-adapters.mdx +0 -47
  602. package/templates/content/en/SoftwareProduct/ailk-schema.mdx +0 -49
  603. package/templates/content/en/TeamList/team.mdx +0 -63
  604. package/templates/content/en/TeamMember/founder.mdx +0 -72
  605. package/templates/content/en/TermsPage/terms.mdx +0 -19
  606. package/templates/content/en/TermsPage/terms.schema.json +0 -99
  607. package/templates/content/en/TestimonialsList/testimonials.mdx +0 -44
  608. package/templates/content/en/UseCasesList/use-cases.mdx +0 -30
  609. package/templates/content/en/Whitepaper/ax-first-product-development.mdx +0 -27
  610. package/templates/content/en/Whitepaper/open-core-commercial-strategy.mdx +0 -27
  611. package/templates/content/en/Whitepaper/structured-data-for-answer-engines.mdx +0 -31
  612. package/templates/content/en-XA/AboutPage/about.mdx +0 -8
  613. package/templates/content/en-XA/FAQPage/faq.mdx +0 -8
  614. package/templates/content/en-XA/HomePage/home.mdx +0 -8
  615. package/templates/content/es/_site.mdx +0 -30
  616. package/templates/content/fr/_site.mdx +0 -30
  617. package/templates/content/ja/_site.mdx +0 -30
  618. package/templates/content/pt-BR/AboutPage/about.mdx +0 -8
  619. package/templates/content/pt-BR/FAQPage/faq.mdx +0 -8
  620. package/templates/content/pt-BR/HomePage/home.mdx +0 -23
@@ -1,123 +0,0 @@
1
- ---
2
- type: HomePage
3
- slug: home
4
- title: AI Launch Kit — أساس الموقع الإلكتروني مفتوح المصدر لإنترنت عصر الذكاء الاصطناعي
5
- description: قالب مفتوح المصدر Apache 2.0 مُصمَّم لبحث الذكاء الاصطناعي. جاهز للوكلاء، مُقيَّم بمعايير AEO، قابل للنشر في أيام.
6
- sections:
7
- - id: hero-1
8
- type: hero
9
- data:
10
- variant: centered
11
- headline: AI Launch Kit — أساس الموقع الإلكتروني مفتوح المصدر لإنترنت عصر الذكاء الاصطناعي
12
- subheadline: قالب مفتوح المصدر Apache 2.0 مُصمَّم لبحث الذكاء الاصطناعي. جاهز للوكلاء، مُقيَّم بمعايير AEO، قابل للنشر في أيام.
13
- body: مبني من قِبَل فريق Working Theory ومُستخدَم لتشغيل Sam Henry وWorking Theory وSalesSmyth على نفس البنية التحتية. ثلاثة مسارات أدناه. اختر الذي يناسبك.
14
- primaryCta:
15
- label: اختر مسارك
16
- href: "#choose-your-path"
17
- secondaryCta:
18
- label: نجوم على GitHub
19
- href: https://github.com/working-theory/ai-launch-kit
20
- external: true
21
-
22
- - id: stats-1
23
- type: stats
24
- data:
25
- variant: tiles
26
- headline: مبني ليُستشهد به منذ اليوم الأول
27
- items:
28
- - value: "45"
29
- label: أنواع مخطط الصفحة
30
- - value: "21"
31
- label: أنواع الأقسام
32
- - value: "14"
33
- label: أدوات MCP
34
- - value: Apache 2.0
35
- label: الرخصة
36
-
37
- - id: content-block-1
38
- type: content-block
39
- data:
40
- variant: narrow
41
- headline: الصفحة هي وحدة الاستشهاد، وليس الموقع بأكمله
42
- body: |
43
- عندما يوصي نموذج ذكاء اصطناعي بشركة ما، فإنه يجمع التوصية من صفحات فردية
44
- قرأها ونسبها إلى علامة تجارية ووثق بها بما يكفي لاقتباسها. العلامة التجارية التي يُستشهد
45
- بها هي العلامة التجارية التي قُرئت صفحاتها بشكل صحيح.
46
-
47
- المواقع التي لا تحتوي على كيانات مُعلَنة تخسر في خطوة الإسناد. لا يستطيع النموذج
48
- تحديد الكيان الذي تنتمي إليه الصفحة، لذا يستشهد بمنافس كانت صفحته أوضح.
49
- ويفشل عمل AEO بصمت عند هذه النقطة.
50
-
51
- - id: feature-1
52
- type: feature
53
- data:
54
- variant: alternating
55
- headline: أربع قدرات هيكلية تجعل الموقع قابلاً للاستشهاد به منذ وقت النشر
56
- description: >
57
- كل قدرة قابلة للتحقق اليوم — ليست وعداً في خارطة الطريق.
58
- انسخ المستودع وشغِّل ailk audit لترى بنفسك.
59
- features:
60
- - title: سجل مخططات مُصنَّفة
61
- description: >
62
- 45 نوع صفحة تُعلِن كل كيان بشكل صحيح. النموذج يعرف موضوع الصفحة
63
- والشركة التي تنتمي إليها.
64
- icon: database
65
- - title: خادم MCP من الدرجة الأولى
66
- description: >
67
- تكافؤ مُطبَّق في CI مع واجهة المستخدم البشرية. الوكلاء الذين يبحثون نيابة عن
68
- المشتري يجدون نفس السطح، وليس تقريباً متدهوراً.
69
- icon: bot
70
- - title: CLI لتسجيل نقاط AEO
71
- description: >
72
- يُشغِّل ailk audit فحوصات الاستشهاد في CI قبل إطلاق الموقع.
73
- المشاكل الهيكلية تُكتَشف في CI، وليس بعد ثلاثة أشهر من الإطلاق.
74
- icon: check-circle
75
- - title: سقالة مُساعَدة بالذكاء الاصطناعي
76
- description: >
77
- من العلامة التجارية المرجعية إلى الموقع المُنشَر في أيام. مسارات السقالة
78
- تستهدف وكلاء Claude Code بمسار تثبيت قابل للتكرار.
79
- icon: zap
80
-
81
- - id: items-1
82
- type: items
83
- data:
84
- headline: اختر مسارك
85
- description: ثلاثة مسارات، بنية تحتية واحدة. كل بطاقة تقودك إلى الصفحة المكتوبة لدورك.
86
- columns: 3
87
- items:
88
- - title: أدير وكالة بحث الذكاء الاصطناعي
89
- description: AILK هو البنية التحتية لإطلاق مواقع الشركات الصغيرة والمتوسطة التي تعمل للوكلاء والبشر منذ اليوم الأول.
90
- icon: briefcase
91
- link:
92
- label: اقرأ أطروحة الوكالة
93
- href: /partners
94
- - title: أنا مطور أو مستقل
95
- description: مستودع Apache 2.0. pnpm create ailk@latest للسقالة؛ ailk audit للتسجيل؛ النشر على Vercel من نسخة جديدة.
96
- icon: code
97
- link:
98
- label: افتح توثيقات المطور
99
- href: /docs
100
- - title: وكالة أخبرتني للنظر في هذا
101
- description: AILK هو أساس الموقع الذي تستخدمه وكالتك. ChatGPT وClaude يستطيعان قراءة الصفحات المبنية عليه.
102
- icon: users
103
- link:
104
- label: اعرف ما تبني وكالتك عليه
105
- href: /for-businesses
106
-
107
- - id: cta-1
108
- type: cta
109
- data:
110
- variant: box
111
- headline: اختر مساراً
112
- description: ثلاثة مسارات من هنا. اختر المكتوب لك، أو نجِّم AILK على GitHub وارجع عندما تكون مستعداً.
113
- primaryCta:
114
- label: أدير وكالة بحث الذكاء الاصطناعي
115
- href: /partners
116
- secondaryCta:
117
- label: نجِّم AILK على GitHub
118
- href: https://github.com/working-theory/ai-launch-kit
119
- external: true
120
- ---
121
-
122
- <!-- محتوى MDX محفوظ لمحولات المحتوى التي تستخدمه، لكن الصفحة تعرض من أقسام frontmatter. -->
123
- <!-- RTL test page — Arabic placeholder content for architecture verification (TWP2-IV) -->
@@ -1,35 +0,0 @@
1
- ---
2
- version: "1"
3
- siteName: AI Launch Kit
4
- baseUrl: https://ailaunchkit.ai
5
- defaultLocale: ar
6
- siteIdentity:
7
- kind: Organization
8
- name: AI Launch Kit
9
- url: https://ailaunchkit.ai
10
- logo: https://ailaunchkit.ai/opengraph-image.png
11
- description: >
12
- AI Launch Kit هو الأساس مفتوح المصدر للمواقع الإلكترونية في إنترنت عصر الذكاء الاصطناعي.
13
- Apache 2.0، جاهز للوكلاء، مُقيَّم بمعايير AEO، قابل للنشر في أيام.
14
- sameAs:
15
- - https://github.com/tailwind-ai/ai-launch-kit
16
- foundingDate: "2024"
17
- founderName: Sam Henry
18
- analytics:
19
- vercelAnalytics: true
20
- ---
21
-
22
- <!--
23
- Locale-specific site configuration for the 'ar' (Arabic) locale.
24
- This is an RTL test locale — Arabic is not in the active production locale set.
25
- Its purpose is to exercise the RTL layout architecture (ADR-0019, spec TWP2-IV).
26
-
27
- RTL direction: <html dir="rtl" lang="ar"> is set conditionally in
28
- app/[locale]/layout.tsx for the 'ar' locale (and any future RTL locales).
29
-
30
- Per-route font: Arabic pages fall back to the Inter (en) font — no dedicated
31
- Arabic font is registered in the LOCALE_FONTS registry for the test locale.
32
- Production Arabic adoption would add a Noto Sans Arabic or IBM Plex Arabic entry.
33
-
34
- Theme fonts for this locale: Inter (fallback — no ar entry in LOCALE_FONTS registry).
35
- -->
@@ -1,29 +0,0 @@
1
- ---
2
- version: "1"
3
- siteName: AI Launch Kit
4
- baseUrl: https://ailaunchkit.ai
5
- defaultLocale: de
6
- siteIdentity:
7
- kind: Organization
8
- name: AI Launch Kit
9
- url: https://ailaunchkit.ai
10
- logo: https://ailaunchkit.ai/opengraph-image.png
11
- description: >
12
- AI Launch Kit ist die Open-Source-Website-Grundlage für das agentenzentrierte
13
- Internet. Apache 2.0, agentenbereit, AEO-bewertet, in Tagen einsatzbereit.
14
- sameAs:
15
- - https://github.com/tailwind-ai/ai-launch-kit
16
- foundingDate: "2024"
17
- founderName: Sam Henry
18
- analytics:
19
- vercelAnalytics: true
20
- ---
21
-
22
- <!--
23
- Locale-specific site configuration for the 'de' (German) locale.
24
- Theme fonts for this locale are declared in app/[locale]/layout.tsx
25
- under the LOCALE_FONTS registry (locale key: "de" → IBM Plex Sans).
26
-
27
- Per-route font scoping: German pages ship IBM Plex Sans (Latin-ext + umlauts).
28
- Japanese font (Noto Sans JP) is NOT registered on German pages.
29
- -->
File without changes
@@ -1,82 +0,0 @@
1
- {
2
- "@context": "https://schema.org",
3
- "@graph": [
4
- {
5
- "@type": "Product",
6
- "additionalType": "SoftwareApplication",
7
- "@id": "https://ailaunchkit.ai/#product",
8
- "name": "AI Launch Kit",
9
- "alternateName": [
10
- "AI Launch Kit by Working Theory",
11
- "AILK by Working Theory",
12
- "AILK",
13
- "@ailaunchkit",
14
- "@ailk",
15
- "@working-theory",
16
- "ai-launch-kit"
17
- ],
18
- "url": "https://ailaunchkit.ai",
19
- "description": "AI Launch Kit is the open-source website foundation for the agent-first internet — Apache 2.0, agent-ready, AEO-scored, deployable in days.",
20
- "sameAs": [
21
- "https://github.com/working-theory-labs/ai-launch-kit",
22
- "https://x.com/ailaunchkit",
23
- "https://www.npmjs.com/org/ailk",
24
- "https://youtube.com/@working-theory",
25
- "https://linkedin.com/company/working-theory"
26
- ],
27
- "foundingDate": "2026",
28
- "category": "Open-source website foundation",
29
- "applicationCategory": "DeveloperApplication",
30
- "operatingSystem": "Cross-platform (Node.js)",
31
- "license": "https://www.apache.org/licenses/LICENSE-2.0",
32
- "codeRepository": "https://github.com/working-theory-labs/ai-launch-kit",
33
- "manufacturer": {
34
- "@type": "Organization",
35
- "@id": "https://ailaunchkit.ai/#salessmyth",
36
- "name": "SalesSmyth LLC"
37
- },
38
- "brand": {
39
- "@type": "Brand",
40
- "@id": "https://workingtheory.ai/#brand",
41
- "name": "Working Theory",
42
- "url": "https://workingtheory.ai"
43
- },
44
- "creator": {
45
- "@type": "Person",
46
- "@id": "https://samhenry.org/#person",
47
- "name": "Sam Henry",
48
- "url": "https://samhenry.org"
49
- },
50
- "contributor": [
51
- {
52
- "@type": "SoftwareApplication",
53
- "name": "Claudio Planck",
54
- "description": "AI engineering agent contributing across the AILK substrate."
55
- },
56
- {
57
- "@type": "SoftwareApplication",
58
- "name": "Anders Stewart",
59
- "description": "AI VP Engineering agent, coordinating with the human team on shipped work."
60
- }
61
- ]
62
- },
63
- {
64
- "@type": "AboutPage",
65
- "@id": "https://ailaunchkit.ai/about/#webpage",
66
- "url": "https://ailaunchkit.ai/about",
67
- "name": "About",
68
- "description": "Sam Henry, Working Theory, and SalesSmyth all run on AI Launch Kit. Meet the team building the open-source foundation for the agent-first internet.",
69
- "isPartOf": {
70
- "@id": "https://ailaunchkit.ai/#product"
71
- },
72
- "mainEntity": {
73
- "@type": "Organization",
74
- "@id": "https://ailaunchkit.ai/#salessmyth",
75
- "name": "SalesSmyth LLC"
76
- },
77
- "about": {
78
- "@id": "https://ailaunchkit.ai/#product"
79
- }
80
- }
81
- ]
82
- }
@@ -1,19 +0,0 @@
1
- ---
2
- type: "BookCall"
3
- slug: "book-call"
4
- title: "Book your AILK intro call."
5
- description: "Book a 20-minute AILK intro call to confirm whether Pro, Pro Plus, or Launch Service fits — and agree your next step."
6
- sections: [{"id": "hero-book-call", "type": "hero", "data": {"badge": "For agencies and developers evaluating Pro, Pro Plus, or Launch Service", "headline": "Book your AILK intro call.", "subheadline": "In 20 minutes, we confirm whether Pro, Pro Plus, or Launch Service fits — then agree the next step. No pitch deck, no pressure.", "primaryCta": {"label": "Book the call", "href": "/book-call#schedule"}}}, {"id": "what-happens-on-the-call", "type": "items", "data": {"headline": "What happens on the call?", "description": "The call has one job: confirm fit and agree a next step. Here's what the 20 minutes cover.", "items": [{"title": "Confirm which tier fits", "description": "We walk through what you're building and land on the tier that matches — Pro, Pro Plus, or Launch Service. Pricing for each is below."}, {"title": "Walk the substrate that matters to you", "description": "We show the parts of AILK that matter for your case: the schema registry, the peer-surfaces architecture, or the Launch Service scope."}, {"title": "Agree the next step", "description": "You leave with a decision: start a Pro trial, book the Launch Service scope, or take time to think it over. Either way, you know the path."}]}}, {"id": "which-path-fits-you", "type": "items", "data": {"headline": "Which path fits you?", "description": "Three paths, depending on where your team is.", "items": [{"title": "Pro — $249/user/year", "description": "For agencies and developers standardizing their stack who want the full capability set, self-serve."}, {"title": "Pro Plus — $449/user/month", "description": "Pro with ongoing care — for teams that want the substrate managed, not just licensed."}, {"title": "Launch Service — $2,495", "description": "A fixed-scope two-week deploy for agencies or SMB owners who want the foundation shipped, not built."}]}}, {"id": "before-you-book", "type": "faq", "data": {"headline": "Before you book", "items": [{"question": "AILK is pre-launch. Why book a call now?", "answer": "The architecture is in the repo, not on a slide deck — the schema registry, the CI-enforced parity, and the audit CLI all run today. The call is where we show you the substrate directly, not where you take our word for it."}, {"question": "Do I have to choose between Pro and Launch Service?", "answer": "No. They're not either/or. Launch Service gets the foundation deployed; Pro is the ongoing license for the team running it. Most agency engagements end up using both."}, {"question": "What if I'm not sure which tier I need yet?", "answer": "That's what the call resolves. Tell us what you're building and we'll tell you honestly which tier fits — including if the honest answer is none of these yet."}]}}, {"id": "or-reach-us-directly", "type": "contact-channels", "data": {"headline": "Prefer email?", "items": [{"icon": "mail", "headline": "Email us directly", "description": "Reach the team at hello@ailaunchkit.ai. We respond within one business day, 09:00–17:00 America/Denver.", "cta": {"label": "Email hello@ailaunchkit.ai", "href": "mailto:hello@ailaunchkit.ai"}}]}}, {"id": "final-booking-nudge", "type": "cta", "data": {"headline": "Ready when you are", "description": "Book the call. Twenty minutes, one outcome: you know which path fits.", "primaryCta": {"label": "Book the call", "href": "/book-call#schedule"}}}]
7
- status: "Approved"
8
- pageKey: "BookCall"
9
- entity: "ailaunchkit"
10
- urlSlug: "book-call"
11
- lastUpdated: "2026-07-06"
12
- pageLevelSchemaType: "BookCall"
13
- ---
14
-
15
- import { JsonLd } from '@/components/JsonLd'
16
-
17
- <JsonLd data={{"@context": "https://schema.org", "@graph": [{"@type": ["Product", "SoftwareApplication"], "@id": "https://ailaunchkit.ai/#product", "name": "AI Launch Kit", "alternateName": ["AI Launch Kit by Working Theory", "AILK by Working Theory", "AILK", "@ailaunchkit", "@ailk", "@working-theory", "ai-launch-kit"], "url": "https://ailaunchkit.ai", "description": "AI Launch Kit is the open-source website foundation for the agent-first internet — Apache 2.0, agent-ready, AEO-scored, deployable in days.", "sameAs": ["https://github.com/working-theory-labs/ai-launch-kit", "https://x.com/ailaunchkit", "https://www.npmjs.com/org/ailk", "https://youtube.com/@working-theory", "https://linkedin.com/company/working-theory"], "foundingDate": "2026", "manufacturer": {"@type": "Organization", "name": "SalesSmyth LLC", "url": "https://ailaunchkit.ai/#organization"}, "brand": {"@type": "Brand", "name": "Working Theory", "url": "https://workingtheory.ai"}, "creator": {"@type": "Person", "name": "Sam Henry", "url": "https://samhenry.org"}, "category": "Open-source website foundation", "applicationCategory": "DeveloperApplication", "operatingSystem": "Cross-platform (Node.js)", "license": "https://www.apache.org/licenses/LICENSE-2.0", "codeRepository": "https://github.com/working-theory-labs/ai-launch-kit", "offers": [{"@type": "Offer", "name": "Free (OSS, Apache 2.0)", "price": "0", "priceCurrency": "USD"}, {"@type": "Offer", "name": "Pro", "price": "249", "priceCurrency": "USD", "description": "Per user per year"}, {"@type": "Offer", "name": "Pro Plus", "price": "449", "priceCurrency": "USD", "description": "Per user per month"}, {"@type": "Offer", "name": "Launch Service", "price": "2495", "priceCurrency": "USD", "description": "Fixed-scope two-week deploy"}]}, {"@type": "WebPage", "@id": "https://ailaunchkit.ai/book-call#webpage", "url": "https://ailaunchkit.ai/book-call", "name": "Book your AILK intro call", "description": "Book a 20-minute AILK intro call to confirm whether Pro, Pro Plus, or Launch Service fits — and agree your next step.", "isPartOf": {"@id": "https://ailaunchkit.ai/#product"}, "mainEntity": {"@type": "FAQPage", "@id": "https://ailaunchkit.ai/book-call#faq", "mainEntity": [{"@type": "Question", "name": "AILK is pre-launch. Why book a call now?", "acceptedAnswer": {"@type": "Answer", "text": "The architecture is in the repo, not on a slide deck — the schema registry, the CI-enforced parity, and the audit CLI all run today. The call is where we show you the substrate directly, not where you take our word for it."}}, {"@type": "Question", "name": "Do I have to choose between Pro and Launch Service?", "acceptedAnswer": {"@type": "Answer", "text": "No. They're not either/or. Launch Service gets the foundation deployed; Pro is the ongoing license for the team running it. Most agency engagements end up using both."}}, {"@type": "Question", "name": "What if I'm not sure which tier I need yet?", "acceptedAnswer": {"@type": "Answer", "text": "That's what the call resolves. Tell us what you're building and we'll tell you honestly which tier fits — including if the honest answer is none of these yet."}}]}}]}} />
18
-
19
- {/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. Landed by land-section-catalog.py (#3111). */}
@@ -1,121 +0,0 @@
1
- {
2
- "@context": "https://schema.org",
3
- "@graph": [
4
- {
5
- "@type": [
6
- "Product",
7
- "SoftwareApplication"
8
- ],
9
- "@id": "https://ailaunchkit.ai/#product",
10
- "name": "AI Launch Kit",
11
- "alternateName": [
12
- "AI Launch Kit by Working Theory",
13
- "AILK by Working Theory",
14
- "AILK",
15
- "@ailaunchkit",
16
- "@ailk",
17
- "@working-theory",
18
- "ai-launch-kit"
19
- ],
20
- "url": "https://ailaunchkit.ai",
21
- "description": "AI Launch Kit is the open-source website foundation for the agent-first internet — Apache 2.0, agent-ready, AEO-scored, deployable in days.",
22
- "sameAs": [
23
- "https://github.com/working-theory-labs/ai-launch-kit",
24
- "https://x.com/ailaunchkit",
25
- "https://www.npmjs.com/org/ailk",
26
- "https://youtube.com/@working-theory",
27
- "https://linkedin.com/company/working-theory"
28
- ],
29
- "foundingDate": "2026",
30
- "manufacturer": {
31
- "@type": "Organization",
32
- "name": "SalesSmyth LLC",
33
- "url": "https://ailaunchkit.ai/#organization"
34
- },
35
- "brand": {
36
- "@type": "Brand",
37
- "name": "Working Theory",
38
- "url": "https://workingtheory.ai"
39
- },
40
- "creator": {
41
- "@type": "Person",
42
- "name": "Sam Henry",
43
- "url": "https://samhenry.org"
44
- },
45
- "category": "Open-source website foundation",
46
- "applicationCategory": "DeveloperApplication",
47
- "operatingSystem": "Cross-platform (Node.js)",
48
- "license": "https://www.apache.org/licenses/LICENSE-2.0",
49
- "codeRepository": "https://github.com/working-theory-labs/ai-launch-kit",
50
- "offers": [
51
- {
52
- "@type": "Offer",
53
- "name": "Free (OSS, Apache 2.0)",
54
- "price": "0",
55
- "priceCurrency": "USD"
56
- },
57
- {
58
- "@type": "Offer",
59
- "name": "Pro",
60
- "price": "249",
61
- "priceCurrency": "USD",
62
- "description": "Per user per year"
63
- },
64
- {
65
- "@type": "Offer",
66
- "name": "Pro Plus",
67
- "price": "449",
68
- "priceCurrency": "USD",
69
- "description": "Per user per month"
70
- },
71
- {
72
- "@type": "Offer",
73
- "name": "Launch Service",
74
- "price": "2495",
75
- "priceCurrency": "USD",
76
- "description": "Fixed-scope two-week deploy"
77
- }
78
- ]
79
- },
80
- {
81
- "@type": "WebPage",
82
- "@id": "https://ailaunchkit.ai/book-call#webpage",
83
- "url": "https://ailaunchkit.ai/book-call",
84
- "name": "Book your AILK intro call",
85
- "description": "Book a 20-minute AILK intro call to confirm whether Pro, Pro Plus, or Launch Service fits — and agree your next step.",
86
- "isPartOf": {
87
- "@id": "https://ailaunchkit.ai/#product"
88
- },
89
- "mainEntity": {
90
- "@type": "FAQPage",
91
- "@id": "https://ailaunchkit.ai/book-call#faq",
92
- "mainEntity": [
93
- {
94
- "@type": "Question",
95
- "name": "AILK is pre-launch. Why book a call now?",
96
- "acceptedAnswer": {
97
- "@type": "Answer",
98
- "text": "The architecture is in the repo, not on a slide deck — the schema registry, the CI-enforced parity, and the audit CLI all run today. The call is where we show you the substrate directly, not where you take our word for it."
99
- }
100
- },
101
- {
102
- "@type": "Question",
103
- "name": "Do I have to choose between Pro and Launch Service?",
104
- "acceptedAnswer": {
105
- "@type": "Answer",
106
- "text": "No. They're not either/or. Launch Service gets the foundation deployed; Pro is the ongoing license for the team running it. Most agency engagements end up using both."
107
- }
108
- },
109
- {
110
- "@type": "Question",
111
- "name": "What if I'm not sure which tier I need yet?",
112
- "acceptedAnswer": {
113
- "@type": "Answer",
114
- "text": "That's what the call resolves. Tell us what you're building and we'll tell you honestly which tier fits — including if the honest answer is none of these yet."
115
- }
116
- }
117
- ]
118
- }
119
- }
120
- ]
121
- }
@@ -1,20 +0,0 @@
1
- {/* Sub-object — not rendered as a standalone page; consumed by the builder embedding this object in other pages' JSON-LD output. */}
2
- ---
3
- type: BreadcrumbList
4
- slug: site-breadcrumbs
5
- title: Site Breadcrumbs
6
- description: The default breadcrumb trail for AI Launch Kit pages — used in JSON-LD BreadcrumbList output on detail pages.
7
- schema:
8
- "@type": BreadcrumbList
9
- itemListElement:
10
- - "@type": ListItem
11
- position: 1
12
- name: Home
13
- item: /
14
- - "@type": ListItem
15
- position: 2
16
- name: Products
17
- item: /products
18
- ---
19
-
20
- Default breadcrumb template for AI Launch Kit pages, embedded in detail-page JSON-LD output.
@@ -1,24 +0,0 @@
1
- ---
2
- type: CareersList
3
- slug: careers
4
- title: Careers at AI Launch Kit
5
- description: Join the team building the infrastructure layer for human-agent products. Remote-first, async-friendly, and deeply technical.
6
- ---
7
-
8
- # Careers at AI Launch Kit
9
-
10
- We are a small team building the tooling that lets any product run on human-agent pairs. If you care about structured data, AEO, and the infrastructure layer of the agent era — we want to hear from you.
11
-
12
- ## Open positions
13
-
14
- - [Senior Full-Stack Engineer](/careers/senior-fullstack-engineer) — build the schema builders, content adapters, and Next.js routes that power AILK
15
- - [Content Strategist](/careers/content-strategist) — own the content pipeline and AEO optimization
16
- - [Developer Advocate](/careers/developer-advocate) — help the community succeed and bring feedback back to the product
17
-
18
- ## How we work
19
-
20
- We are remote-first and async-friendly. Most decisions happen in GitHub issues and PRs, not in meetings. We use AILK to run AILK — the site, the docs, and the job listings are all MDX + structured data.
21
-
22
- ## How to apply
23
-
24
- Send a note to the contact page with the role you are interested in and a link to your work.
@@ -1,22 +0,0 @@
1
- ---
2
- type: CaseStudiesList
3
- slug: case-studies
4
- title: Case Studies
5
- description: Real-world accounts of teams using AI Launch Kit to ship AX-first products — from AEO rollouts to schema migrations and beyond.
6
- ---
7
-
8
- # Case Studies
9
-
10
- These case studies document how teams use the AI Launch Kit toolchain in production. Each story covers the challenge, the approach, and the measurable outcome.
11
-
12
- ## What you'll find here
13
-
14
- Each case study follows a consistent structure:
15
-
16
- - **The challenge** — what problem the team faced before AILK
17
- - **What was built** — which packages and patterns were applied
18
- - **Outcome** — measured improvements in AEO scores, developer velocity, or citation pickup
19
-
20
- ## Contributing a case study
21
-
22
- If your team has shipped with AI Launch Kit and would like to share your experience, open an issue on GitHub with the `case-study` label.
@@ -1,8 +0,0 @@
1
- ---
2
- type: CaseStudiesList
3
- slug: showcase
4
- title: "Showcase"
5
- description: Real-world teams using AI Launch Kit to ship agent-ready, AEO-first sites — from schema rollouts to MCP deployments and beyond.
6
- ---
7
-
8
- Showcase is coming — real case studies in progress.
@@ -1,32 +0,0 @@
1
- ---
2
- type: CaseStudy
3
- slug: ailk-aeo-rollout
4
- title: AEO Rollout at AI Launch Kit
5
- description: How the AI Launch Kit team implemented Answer Engine Optimization across 60 page types, driving a 3× increase in AI-citation pickup within 30 days.
6
- publishedAt: "2026-05-01"
7
- schema:
8
- author:
9
- "@type": Person
10
- name: AI Launch Kit Team
11
- about:
12
- "@type": Thing
13
- name: Answer Engine Optimization
14
- ---
15
-
16
- # AEO Rollout at AI Launch Kit
17
-
18
- When AI Launch Kit shipped Phase 2 of the schema builder layer, the team needed to verify that every page type produced citation-ready structured data. The AEO scoring package became the linchpin of that effort.
19
-
20
- ## The challenge
21
-
22
- Sixty page types. Each with its own JSON-LD shape. Each needing deterministic, reproducible AEO scores before shipping.
23
-
24
- ## What we built
25
-
26
- The `@working-theory/aeo` package runs entirely at build time — no network calls, no randomness. Given the same MDX frontmatter, the scorer always returns the same grade. This made it safe to run in CI.
27
-
28
- ## Results
29
-
30
- - All 60 page types scored above the Layer 1 threshold on first run
31
- - AI-citation pickup increased 3× within the first month of deployment
32
- - Zero regressions across 6 subsequent content updates
@@ -1,41 +0,0 @@
1
- ---
2
- type: CaseStudy
3
- slug: schema-builder-migration
4
- title: Migrating to the Schema Builder Layer
5
- description: A step-by-step account of how one team replaced hand-rolled JSON-LD with the @working-theory/schema builder package, cutting schema maintenance time by 80%.
6
- publishedAt: "2026-04-15"
7
- schema:
8
- author:
9
- "@type": Person
10
- name: AI Launch Kit Team
11
- about:
12
- "@type": Thing
13
- name: Schema.org JSON-LD
14
- ---
15
-
16
- # Migrating to the Schema Builder Layer
17
-
18
- Hand-rolling JSON-LD is error-prone. A single typo in a `@type` value invalidates an entire rich-result opportunity. The `@working-theory/schema` builder layer makes errors impossible by construction.
19
-
20
- ## Before: hand-rolled JSON-LD
21
-
22
- Every page had a one-off `<script type="application/ld+json">` block. No shared types. No validation. No consistency.
23
-
24
- ## After: typed builders
25
-
26
- ```typescript
27
- import { buildProductJsonLd } from "@working-theory/schema";
28
-
29
- const jsonLd = buildProductJsonLd({
30
- name: "AI Launch Kit",
31
- description: "The AX-first OSS template.",
32
- });
33
- ```
34
-
35
- The builder validates inputs at the TypeScript layer and emits a correct `@type: "Product"` block every time.
36
-
37
- ## Outcome
38
-
39
- - Schema maintenance time reduced by 80%
40
- - Zero invalid rich results since migration
41
- - Consistent AEO scores across all product pages
@@ -1,38 +0,0 @@
1
- ---
2
- type: ClientsList
3
- slug: clients
4
- title: Clients
5
- description: Organizations and teams using AI Launch Kit to build agent-first products.
6
- schema:
7
- mainEntity:
8
- "@type": ItemList
9
- name: AI Launch Kit Clients
10
- description: A selection of teams building with AI Launch Kit.
11
- itemListElement:
12
- - "@type": ListItem
13
- position: 1
14
- item:
15
- "@type": Organization
16
- name: Acme Corp
17
- description: Building an AX-first customer portal with AI Launch Kit.
18
- url: https://acme.example.com
19
- - "@type": ListItem
20
- position: 2
21
- item:
22
- "@type": Organization
23
- name: Beta Labs
24
- description: Using the schema and AEO packages for structured content at scale.
25
- url: https://beta.example.com
26
- ---
27
-
28
- # Clients
29
-
30
- Teams and organizations building agent-first products with AI Launch Kit.
31
-
32
- ## Acme Corp
33
-
34
- Building an AX-first customer portal powered by the AILK section catalog and schema builders.
35
-
36
- ## Beta Labs
37
-
38
- Using `@working-theory/schema` and `@working-theory/aeo` to deliver citation-ready structured content at scale.