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,228 +0,0 @@
1
- ---
2
- type: Service
3
- slug: launch
4
- title: Two weeks. $2,495. Your site on the foundation built for AI search.
5
- description: Launch Service is the productized two-week deploy onto AI Launch Kit — the open-source website foundation for the agent-first internet. Fixed scope. Fixed price. Working Theory ships the site; you own the codebase from day one.
6
- schema:
7
- "@type": WebPage
8
- about:
9
- "@id": "https://ailaunchkit.ai/#product"
10
- audience:
11
- "@type": Audience
12
- audienceType: Agencies and SMB owners ready to deploy
13
- sections:
14
- - id: hero-1
15
- type: hero
16
- data:
17
- variant: centered
18
- headline: Two weeks. $2,495. Your site on the foundation built for AI search.
19
- subheadline: Launch Service is the productized two-week deploy onto AI Launch Kit — the open-source website foundation AI search agencies and SMB owners use when they want the foundation running without doing the build themselves.
20
- body: Fixed scope. Fixed price. Working Theory ships the site; you own the codebase, the content, and the citation work from day one.
21
- primaryCta:
22
- label: Book the intro call
23
- href: /contact
24
- secondaryCta:
25
- label: Read the FAQ
26
- href: /faq
27
-
28
- - id: content-block-1
29
- type: content-block
30
- data:
31
- variant: narrow
32
- headline: The page is the unit of citation, not the site
33
- body: |
34
- When ChatGPT recommends a business, the recommendation was assembled from sources.
35
- The model read pages. Attributed them to a brand. Quoted what it trusted. The brand
36
- that gets recommended is the brand whose pages got cited.
37
-
38
- A website used to be a marketing surface humans visited. Now it is also infrastructure
39
- AI systems read on behalf of buyers who never visit. Two audiences. Same pages.
40
- Different requirements.
41
-
42
- Most of the web was not built for the second audience. Launch Service puts your
43
- site on a foundation that was.
44
-
45
- - id: content-block-2
46
- type: content-block
47
- data:
48
- variant: narrow
49
- headline: What you have already considered, and where each option breaks
50
- body: |
51
- WordPress plus plugins. Familiar. Cheap hosting. The schema plugin, the FAQ plugin,
52
- the AEO plugin — each one is real. They do not integrate. They break on updates.
53
- The AEO work depends on whichever combination was installed last. The foundation
54
- is from a world where Google was the only entry point. The plugins are retrofits.
55
-
56
- Closed website builders. Beautiful templates. The limit: closed systems. Weak
57
- schema. No agent surface. Vendor lock-in is the business model. You never own
58
- the substrate.
59
-
60
- AI-generated site builders. "Describe your business, AI generates a site." The
61
- limit: inversion. The site is generated by AI and then invisible to the AI systems
62
- doing discovery. AI-generated, not AI-ready.
63
-
64
- A custom build. Three to six months. Senior developer required. The economics
65
- do not work for most SMB engagements.
66
-
67
- The fifth option was waiting. The cost of waiting is citations going to competitors
68
- whose pages got structured first.
69
-
70
- - id: items-1
71
- type: items
72
- data:
73
- headline: What the foundation had to do — before we built the service on top of it
74
- description: Five criteria. None are AILK features. They are what any site needs to publish into a world where AI systems read pages and recommend brands.
75
- columns: 3
76
- items:
77
- - title: Be read correctly
78
- description: The model knows what the page is about and which business it belongs to. If it has to guess, it cites someone else.
79
- icon: eye
80
- - title: Work for non-human visitors
81
- description: Agents researching on a buyer's behalf find a first-class surface. Not a degraded API.
82
- icon: bot
83
- - title: Surface its own gaps
84
- description: AEO problems are silent. The foundation catches structural gaps before the site ships. In CI.
85
- icon: alert-triangle
86
- - title: Belong to the people running on it
87
- description: No platform takes a cut. No vendor reshapes the roadmap. The codebase leaves with you.
88
- icon: key
89
- - title: Fit inside a real engagement
90
- description: Two weeks. Not three months. The deploy path matches the economics of an SMB engagement.
91
- icon: clock
92
-
93
- - id: content-block-3
94
- type: content-block
95
- data:
96
- variant: narrow
97
- headline: What Launch Service is
98
- body: |
99
- Launch Service is a fixed-scope two-week deploy onto AI Launch Kit — the Apache
100
- 2.0 website foundation built for the agent-first internet. Working Theory delivers
101
- the site. You own everything from day one.
102
-
103
- The AILK substrate ships a typed schema registry, a first-class MCP server, an AEO
104
- scoring CLI that runs in CI, and an agent-assisted scaffolding workflow. Launch
105
- Service is the path to that foundation for agencies and SMB owners who want the
106
- site running without running the build themselves.
107
-
108
- Paid tiers — Pro, Pro Plus — add operational capability on top. They do not gate
109
- access to the substrate.
110
-
111
- - id: items-2
112
- type: items
113
- data:
114
- headline: What ships in two weeks
115
- description: Five capabilities from the AILK foundation. Each one corresponds to something the alternatives either do not ship or charge extra to retrofit.
116
- columns: 2
117
- items:
118
- - title: A typed schema registry, already wired
119
- description: Sixty page types. Per-type validation. JSON-LD from frontmatter. FAQ, glossary, entity, identity. Ship a page, ship the structure.
120
- icon: database
121
- - title: Peer surfaces over one substrate
122
- description: Web for humans. MCP for agents. HTTP API for programmatic callers. One repo. CI-enforced parity. Whatever a person can do, an agent can do.
123
- icon: layers
124
- - title: The ailk audit CLI, in the OSS
125
- description: Catches missing schema, ambiguous entity, pages that do not emit JSON-LD — before the site ships. Enterprise AEO platforms charge $295 a month to measure the same problems after they have cost citations.
126
- icon: search
127
- - title: Apache 2.0. Complete OSS.
128
- description: Not source-available. The codebase is yours. Leave any host, leave any tool, the site comes with you.
129
- icon: unlock
130
- - title: Agent-assisted scaffolding, set up and handed off
131
- description: Eight skills covering initial deploy, schema work, audit runs, auth, commerce, and config. Adding a service page after launch is a Claude Code session, not a sprint.
132
- icon: zap
133
-
134
- - id: items-3
135
- type: items
136
- data:
137
- headline: What this means for your business
138
- description: What changes on the other side of two weeks.
139
- columns: 2
140
- items:
141
- - title: Your site shows up where decisions are being made
142
- description: AI search citations do not go to the most-visited site. They go to the best-structured pages. Yours are structured from day one.
143
- icon: trending-up
144
- - title: You own the foundation
145
- description: Apache 2.0. No platform takes a cut. No vendor reshapes the roadmap. If you leave a host or a tool, the codebase leaves with you.
146
- icon: key
147
- - title: The citation work compounds — and stops fighting the platform
148
- description: On WordPress plus plugins, every campaign re-fights plugin conflicts and weak markup. On AILK, every page is already structured. The work lands faster and stays landed.
149
- icon: rocket
150
- - title: The marginal cost of a page approaches zero
151
- description: Adding a service offering takes a Claude Code session, not a development sprint. Responding to a citation gap takes a day, not a quarter.
152
- icon: trending-down
153
- - title: AEO gaps get caught before they cost you
154
- description: A structural gap caught in CI costs minutes. A citation gap discovered three months in costs months of work to recover. The cost shifts from after you notice to before it matters.
155
- icon: shield
156
-
157
- - id: content-block-4
158
- type: content-block
159
- data:
160
- variant: narrow
161
- headline: What you can verify before you book
162
- body: |
163
- The architecture is in the repo, not on a slide deck. Apache 2.0 on GitHub.
164
- `apps/web`, `apps/mcp`, `apps/api` as peer apps. Parity test in CI. `ailk audit`
165
- runs against any AILK site, including this one. Pre-launch claims are easy to make
166
- and hard to back. Ours are testable today.
167
-
168
- Sam Henry, Working Theory, and SalesSmyth all publish on AILK. The dogfooding
169
- is not a claim. It is the reason the schema registry and the peer-surfaces
170
- architecture exist in their current shape. We hit the problem first.
171
-
172
- The capability boundary is public. Thirteen capabilities. Ten installed. Three
173
- Platform Services. The roster is at /platform. Anyone selling AILK has to
174
- be honest about what ships today.
175
-
176
- The downside is bounded. Apache 2.0. If AILK never finds traction, you keep the
177
- codebase and keep the site.
178
-
179
- No public install counts. No external testimonials at launch. No third-party
180
- benchmarks. The first Launch Service customers generate that proof over the next
181
- 90–180 days. We are not making up metrics we do not have.
182
-
183
- - id: faq-1
184
- type: faq
185
- data:
186
- headline: Common questions
187
- items:
188
- - question: You're pre-launch. Why book now?
189
- answer: >
190
- The architecture is observable in the repo, not on a slide deck. The schema
191
- registry is a directory with 60 typed entries. The parity test is in CI. The
192
- CLI runs. Working Theory ships three other brands on the same substrate.
193
- Apache 2.0 bounds the downside — if AILK never finds traction, you keep the
194
- code and keep the site.
195
- - question: Do I need to be technical to use the site after Launch Service delivers it?
196
- answer: >
197
- No. Content and citations are MDX files — the agency or owner manages them
198
- without touching the build pipeline. Working Theory hands off the repo with
199
- the eight scaffolding skills wired. Adding a service page, updating a FAQ
200
- block, running an AEO audit — all Claude Code sessions. No senior developer
201
- required for day-to-day work.
202
- - question: We run a portfolio of client sites. Where's fleet management?
203
- answer: >
204
- Deferred. Fleet management — cross-site rollup, white-label,
205
- per-seat licensing — is planned as a future Enterprise multi-tenant
206
- entitlement, not a separate tier, and not shipped yet. At launch,
207
- agencies deliver on OSS plus Pro per-user.
208
- - question: How does this relate to Working Theory Platform? Am I locked in?
209
- answer: >
210
- You are not. AILK works fully standalone. Working Theory Platform is a
211
- separate product — growth marketing as a system. It publishes into AILK with
212
- the deepest integration. Neither product requires the other.
213
-
214
- - id: cta-1
215
- type: cta
216
- data:
217
- variant: box
218
- headline: Ready to book the intro call?
219
- description: Fixed scope. Fixed price. Two weeks. Book the intro call to confirm scope fits and schedule the deploy.
220
- primaryCta:
221
- label: Book the intro call
222
- href: /contact
223
- secondaryCta:
224
- label: Read the FAQ
225
- href: /faq
226
- ---
227
-
228
- <!-- MDX body is preserved for content adapters that use it, but the page renders from frontmatter sections. -->
@@ -1,84 +0,0 @@
1
- ---
2
- type: ServicesList
3
- slug: services
4
- title: Services — AI Launch Kit
5
- description: How the Working Theory team works with teams to get on AILK fast — from architecture reviews to the Launch Service two-week deploy.
6
- sections:
7
- - id: hero-1
8
- type: hero
9
- data:
10
- variant: centered
11
- headline: Get on AILK fast
12
- subheadline: >
13
- The Working Theory team works with small, high-output teams who have
14
- decided to ship. Two engagement shapes — Launch Service and architecture
15
- review. Pick the one that fits your situation.
16
- primaryCta:
17
- label: Book a Launch Service call
18
- href: /launch
19
- secondaryCta:
20
- label: Learn what AILK includes
21
- href: /ailk
22
-
23
- - id: items-1
24
- type: items
25
- data:
26
- headline: Two ways to engage
27
- description: >
28
- Every engagement starts with a clear statement of what done looks like.
29
- No discovery theater, no retainer required.
30
- columns: 2
31
- items:
32
- - title: Launch Service
33
- description: >
34
- Fixed-scope, fixed-price, two-week deploy. We provision your
35
- instance — Supabase, Vercel, Cloudflare wired — migrate your
36
- content, and hand off a running site. Your team takes over
37
- content and citation work from there. $2,495 flat.
38
- icon: rocket
39
- link:
40
- label: Book a call
41
- href: /launch
42
- - title: Architecture review
43
- description: >
44
- A focused two-day audit of your current stack. We read the code,
45
- talk to the engineers, and return a written assessment with ranked
46
- recommendations. No slides, no retainer required. Contact us to
47
- scope your review.
48
- icon: search
49
- link:
50
- label: Get in touch
51
- href: /contact
52
-
53
- - id: stats-1
54
- type: stats
55
- data:
56
- variant: horizontal
57
- headline: What the Launch Service delivers
58
- items:
59
- - value: "2"
60
- label: Weeks to deploy
61
- - value: "$2,495"
62
- label: Flat price
63
- - value: "45"
64
- label: Schema types configured
65
- - value: "0"
66
- label: Next.js fluency required
67
-
68
- - id: cta-1
69
- type: cta
70
- data:
71
- variant: box
72
- headline: Ready to ship on AILK?
73
- description: >
74
- Book a Launch Service call to scope your deployment — or reach out
75
- to discuss an architecture review. We respond within one business day.
76
- primaryCta:
77
- label: Book a Launch Service call
78
- href: /launch
79
- secondaryCta:
80
- label: Contact us
81
- href: /contact
82
- ---
83
-
84
- <!-- MDX body is preserved for content adapters that use it, but the page renders from frontmatter sections. -->
@@ -1,44 +0,0 @@
1
- ---
2
- type: SoftwareProduct
3
- slug: ailk-aeo
4
- title: "@working-theory/aeo — AEO Scorer"
5
- description: Deterministic AEO scoring for AILK pages. Grades structured data against Layer 1 citation-readiness rules — same input always returns the same score.
6
- schema:
7
- mainEntity:
8
- "@type": SoftwareApplication
9
- name: "@working-theory/aeo"
10
- applicationCategory: DeveloperApplication
11
- operatingSystem: Node.js
12
- softwareVersion: "1.0.0"
13
- url: https://github.com/working-theory-labs/ai-launch-kit/tree/main/packages/aeo
14
- license: https://opensource.org/licenses/MIT
15
- ---
16
-
17
- # @working-theory/aeo — AEO Scorer
18
-
19
- `@working-theory/aeo` is a deterministic Answer Engine Optimization scorer. It grades `ContentPage` objects against a set of Layer 1 citation-readiness rules and returns a structured findings report.
20
-
21
- ## Installation
22
-
23
- ```bash
24
- pnpm add @working-theory/aeo
25
- ```
26
-
27
- ## Usage
28
-
29
- ```ts
30
- import { scoreAeo } from "@working-theory/aeo";
31
-
32
- const result = scoreAeo(page);
33
- // result.score: number (0-100)
34
- // result.passing: boolean
35
- // result.findings: Array<{ rule, severity, message }>
36
- ```
37
-
38
- ## Layer 1 rules
39
-
40
- The scorer checks for required structured-data fields, valid `@type` declarations, non-empty titles and descriptions, `inLanguage` presence, and absolute `url` values. Each check is independent and deterministic.
41
-
42
- ## Integration
43
-
44
- Pass the `ContentPage` returned by the content adapter directly to `scoreAeo`. No additional transformation needed — the adapter output is the scorer input.
@@ -1,47 +0,0 @@
1
- ---
2
- type: SoftwareProduct
3
- slug: ailk-content-adapters
4
- title: "@working-theory/content-adapters — MDX Content Adapter"
5
- description: The MDX content adapter for AILK — reads typed MDX frontmatter from the content directory and returns ContentPage objects for the JSON-LD pipeline.
6
- schema:
7
- mainEntity:
8
- "@type": SoftwareApplication
9
- name: "@working-theory/content-adapters"
10
- applicationCategory: DeveloperApplication
11
- operatingSystem: Node.js
12
- softwareVersion: "1.0.0"
13
- url: https://github.com/working-theory-labs/ai-launch-kit/tree/main/packages/content-adapters
14
- license: https://opensource.org/licenses/MIT
15
- ---
16
-
17
- # @working-theory/content-adapters — MDX Content Adapter
18
-
19
- `@working-theory/content-adapters` bridges the `content/` directory to the rest of the AILK stack. It reads MDX frontmatter, validates it against a Zod schema, and returns typed `ContentPage` objects.
20
-
21
- ## Installation
22
-
23
- ```bash
24
- pnpm add @working-theory/content-adapters
25
- ```
26
-
27
- ## Usage
28
-
29
- ```ts
30
- import { createMdxAdapter } from "@working-theory/content-adapters";
31
-
32
- const adapter = createMdxAdapter({
33
- contentRoot: "./content",
34
- defaultLocale: "en",
35
- });
36
-
37
- const page = await adapter.getPageSource("HowTo", "my-guide", "en");
38
- // page.frontmatter: ContentPage
39
- // page.body: string (raw MDX body)
40
- ```
41
-
42
- ## Key exports
43
-
44
- - `createMdxAdapter(options)` — factory for the MDX adapter
45
- - `ContentPage` — the Zod-inferred page type (frontmatter contract)
46
- - `MdxPageSource` — the full source object (`frontmatter` + `body`)
47
- - `SchemaOrgType` — union of all valid `type` field values
@@ -1,49 +0,0 @@
1
- ---
2
- type: SoftwareProduct
3
- slug: ailk-schema
4
- title: "@working-theory/schema — JSON-LD Builders"
5
- description: Typed schema.org JSON-LD builders for all 45 AILK page types. One builder per type, one dispatcher, zero runtime dependencies beyond the site identity pack.
6
- schema:
7
- mainEntity:
8
- "@type": SoftwareApplication
9
- name: "@working-theory/schema"
10
- applicationCategory: DeveloperApplication
11
- operatingSystem: Node.js
12
- softwareVersion: "2.0.0"
13
- url: https://github.com/working-theory-labs/ai-launch-kit/tree/main/packages/schema
14
- license: https://opensource.org/licenses/MIT
15
- ---
16
-
17
- # @working-theory/schema — JSON-LD Builders
18
-
19
- `@working-theory/schema` is the structured-data foundation of the AILK stack. It ships typed builders for all 60 schema.org page types supported in Phase 2, a dispatcher that routes a `ContentPageInput` to the right builder, and a registry that describes each type's family and tier.
20
-
21
- ## Installation
22
-
23
- ```bash
24
- pnpm add @working-theory/schema
25
- ```
26
-
27
- ## Usage
28
-
29
- ```ts
30
- import { buildJsonLdWithPack } from "@working-theory/schema";
31
-
32
- const jsonLd = buildJsonLdWithPack(
33
- {
34
- type: "BlogPosting",
35
- slug: "my-post",
36
- title: "My Post",
37
- description: "A post.",
38
- locale: "en",
39
- },
40
- pack,
41
- );
42
- ```
43
-
44
- ## Key exports
45
-
46
- - `buildJsonLd(input)` — zero-config dispatcher (resolves pack from env)
47
- - `buildJsonLdWithPack(input, pack)` — explicit-pack variant for server components
48
- - `pageTypeRegistry` — the 60-entry registry for tooling and auditing
49
- - Per-type builders (`howToJsonLd`, `techArticleJsonLd`, etc.) for direct access
@@ -1,63 +0,0 @@
1
- ---
2
- type: TeamList
3
- slug: team
4
- title: Team
5
- description: The people building AI Launch Kit — a small, focused team shipping OSS infrastructure for the next generation of AX-first products.
6
- schema:
7
- mainEntity:
8
- "@type": Organization
9
- name: AI Launch Kit
10
- description: Open-source template for building agent-first products.
11
- member:
12
- - "@type": Person
13
- name: Jane Doe
14
- jobTitle: Founder & CEO
15
- description: Building the infrastructure layer for human-agent teams.
16
- url: /team/founder
17
- - "@type": Person
18
- name: Alex Kim
19
- jobTitle: Lead Engineer
20
- description: Open-source contributor and monorepo architect.
21
- url: /team/lead-engineer
22
- - "@type": Person
23
- name: Morgan Lee
24
- jobTitle: Head of Product
25
- description: Product strategy and developer experience.
26
- url: /team/head-of-product
27
- sections:
28
- - id: hero-1
29
- type: hero
30
- data:
31
- variant: centered
32
- headline: The team behind AI Launch Kit.
33
- subheadline: A small group of engineers, designers, and product builders committed to making AX-first development accessible.
34
-
35
- - id: items-1
36
- type: items
37
- data:
38
- headline: Who we are
39
- columns: 3
40
- items:
41
- - title: Jane Doe
42
- description: Founder & CEO — building the infrastructure layer for human-agent teams.
43
- icon: user
44
- - title: Alex Kim
45
- description: Lead Engineer — open-source contributor and monorepo architect.
46
- icon: code
47
- - title: Morgan Lee
48
- description: Head of Product — product strategy and developer experience.
49
- icon: layout
50
-
51
- - id: cta-1
52
- type: cta
53
- data:
54
- variant: box
55
- headline: Want to contribute?
56
- description: AI Launch Kit is open source. Join us on GitHub — issues, PRs, and discussions are open to everyone.
57
- primaryCta:
58
- label: Contribute on GitHub
59
- href: https://github.com/working-theory-labs/ai-launch-kit
60
- external: true
61
- ---
62
-
63
- <!-- MDX body is preserved for content adapters that use it, but the page renders from frontmatter sections. -->
@@ -1,72 +0,0 @@
1
- ---
2
- type: TeamMember
3
- slug: founder
4
- title: Jane Doe — Founder & CEO
5
- description: Jane founded AI Launch Kit to make AX-first product development accessible to any team. Previously built developer infrastructure at scale.
6
- schema:
7
- mainEntity:
8
- "@type": Person
9
- name: Jane Doe
10
- jobTitle: Founder & CEO
11
- description: Building the infrastructure layer for human-agent teams. Previously built developer infrastructure at scale.
12
- image: /images/team/jane-doe.jpg
13
- sameAs:
14
- - https://github.com/janedoe
15
- - https://linkedin.com/in/janedoe
16
- worksFor:
17
- "@type": Organization
18
- name: AI Launch Kit
19
- sections:
20
- - id: hero-1
21
- type: hero
22
- data:
23
- variant: centered
24
- headline: Jane Doe
25
- subheadline: Founder & CEO — building the infrastructure layer for human-agent teams.
26
-
27
- - id: content-block-1
28
- type: content-block
29
- data:
30
- variant: narrow
31
- headline: Background
32
- body: |
33
- Jane has spent the last decade building developer infrastructure — the
34
- kind of plumbing that lets product teams move fast without worrying about
35
- the underlying stack. AI Launch Kit started as an internal template and
36
- became a public project when it became clear that the AX-first pattern
37
- was something every team would need.
38
-
39
- Before AI Launch Kit, Jane worked on API platforms and monorepo
40
- infrastructure at developer-tools companies. The pattern of "API and MCP
41
- as first-class surfaces alongside the web app" emerged from watching teams
42
- retrofit agent support onto existing products and seeing how painful that
43
- was. AI Launch Kit bakes the pattern in from day one.
44
-
45
- - id: items-1
46
- type: items
47
- data:
48
- headline: Focus areas
49
- columns: 3
50
- items:
51
- - title: Developer Experience
52
- description: Making the right pattern the easy path — from project setup to CI to deployment.
53
- icon: terminal
54
- - title: Agent Infrastructure
55
- description: API and MCP surfaces as first-class citizens, not bolt-ons.
56
- icon: cpu
57
- - title: Open Source
58
- description: The core template ships free and OSS. The business model funds continued development.
59
- icon: github
60
-
61
- - id: cta-1
62
- type: cta
63
- data:
64
- variant: box
65
- headline: Get in touch
66
- description: Interested in contributing, partnering, or just discussing AX-first architecture? Reach out.
67
- primaryCta:
68
- label: Contact
69
- href: /contact
70
- ---
71
-
72
- <!-- MDX body is preserved for content adapters that use it, but the page renders from frontmatter sections. -->
@@ -1,19 +0,0 @@
1
- ---
2
- type: "TermsPage"
3
- slug: "terms"
4
- title: "Terms of Service"
5
- description: "The terms governing use of ailaunchkit.ai and the AI Launch Kit paid offerings — Pro, Pro Plus, and Launch Service — operated by SalesSmyth LLC."
6
- sections: [{"id": "intro", "type": "content-block", "data": {"headline": "Terms of Service", "body": "These terms govern your use of ailaunchkit.ai and the paid AI Launch Kit (AILK) offerings — Pro, Pro Plus, and the Launch Service. They don't govern the open-source AILK codebase; that's licensed separately under Apache 2.0. Using the paid offerings or this site means you accept these terms."}}, {"id": "who-provides-the-service", "type": "content-block", "data": {"headline": "Who provides this service", "body": "SalesSmyth LLC operates ailaunchkit.ai and the AI Launch Kit paid offerings. SalesSmyth LLC is the legal entity behind the Working Theory product line, which includes AI Launch Kit. \"AILK,\" \"we,\" and \"us\" all mean SalesSmyth LLC in these terms."}}, {"id": "open-source-software", "type": "content-block", "data": {"headline": "The open-source software", "body": "The AILK codebase is licensed under Apache 2.0, published at github.com/working-theory-labs/ai-launch-kit. That license — not these terms — governs how you use, modify, and distribute the OSS code. Nothing here restricts or contradicts the rights it already grants you."}}, {"id": "paid-offerings", "type": "content-block", "data": {"headline": "Paid offerings", "body": "Pro, Pro Plus, and the Launch Service are commercial offerings governed by these terms. Current fees and tier details are published at /pricing and incorporated here by reference. Paid tiers add capability on top of the OSS foundation — they never restrict what the OSS license already grants."}}, {"id": "acceptable-use", "type": "content-block", "data": {"headline": "Acceptable use", "body": "Don't use this site or the paid offerings for any unlawful purpose, to infringe on others' rights, or to interfere with the site or services. You're responsible for the content and configuration of any site you build with AILK."}}, {"id": "disclaimers-and-limitation-of-liability", "type": "content-block", "data": {"headline": "Disclaimers and limitation of liability", "body": "This site and the paid offerings are provided as-is and as-available, to the fullest extent the law allows, without warranties of any kind — express or implied, including merchantability, fitness for a particular purpose, or non-infringement. To that same extent, SalesSmyth LLC isn't liable for indirect, incidental, or consequential damages arising from your use of the site or the paid offerings. Nothing here limits liability that can't be limited under applicable law. These terms aren't legal advice. If you need guidance on your own use of AILK, talk to your own counsel."}}, {"id": "governing-law-and-changes", "type": "content-block", "data": {"headline": "Governing law and changes", "body": "These terms are governed by the laws of the State of Colorado, USA, without regard to conflict-of-law principles. We may update them from time to time — the current version is always posted at this page. Using the site or paid offerings after an update means you accept the revised terms."}}, {"id": "contact", "type": "contact-channels", "data": {"headline": "Questions about these terms", "items": [{"icon": "mail", "headline": "Email us", "description": "Send questions about these terms to hello@ailaunchkit.ai and the Working Theory team will respond directly.", "cta": {"label": "Email hello@ailaunchkit.ai", "href": "mailto:hello@ailaunchkit.ai"}}]}}]
7
- status: "Approved"
8
- pageKey: "TermsPage"
9
- entity: "ailaunchkit"
10
- urlSlug: "terms-page"
11
- lastUpdated: "2026-07-06"
12
- pageLevelSchemaType: "TermsPage"
13
- ---
14
-
15
- import { JsonLd } from '@/components/JsonLd'
16
-
17
- <JsonLd data={{"@context": "https://schema.org", "@graph": [{"@type": "Product", "additionalType": "https://schema.org/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", "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", "manufacturer": {"@type": "Organization", "@id": "https://ailaunchkit.ai/#organization", "name": "SalesSmyth LLC"}, "brand": {"@type": "Brand", "name": "Working Theory", "url": "https://workingtheory.ai"}, "creator": {"@id": "https://samhenry.org/#person"}, "offers": [{"@type": "Offer", "name": "Free (OSS)", "price": "0", "priceCurrency": "USD"}, {"@type": "Offer", "name": "Pro", "price": "249", "priceCurrency": "USD", "priceSpecification": {"@type": "UnitPriceSpecification", "price": "249", "priceCurrency": "USD", "unitText": "per user per year"}}, {"@type": "Offer", "name": "Pro Plus", "price": "449", "priceCurrency": "USD", "priceSpecification": {"@type": "UnitPriceSpecification", "price": "449", "priceCurrency": "USD", "unitText": "per user per month"}}, {"@type": "Offer", "name": "Launch Service", "price": "2495", "priceCurrency": "USD"}]}, {"@type": "WebPage", "@id": "https://ailaunchkit.ai/terms#webpage", "url": "https://ailaunchkit.ai/terms", "name": "Terms of Service", "description": "The terms governing use of ailaunchkit.ai and the AI Launch Kit paid offerings — Pro, Pro Plus, and Launch Service — operated by SalesSmyth LLC.", "isPartOf": {"@id": "https://ailaunchkit.ai/#product"}, "about": {"@id": "https://ailaunchkit.ai/#organization"}}]}} />
18
-
19
- {/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. Landed by land-section-catalog.py (#3111). */}