create-ailk 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +124 -3
- package/component-catalog.md +295 -0
- package/dist/cli.js +92 -16
- package/dist/component-catalog.d.ts +11 -0
- package/dist/component-catalog.js +39 -0
- package/dist/copy.d.ts +7 -0
- package/dist/copy.js +24 -0
- package/dist/derive-architecture.d.ts +13 -0
- package/dist/derive-architecture.js +238 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.js +19 -2
- package/dist/lib/extract-module-bundle.d.ts +16 -0
- package/dist/lib/extract-module-bundle.js +184 -0
- package/dist/lib/fetch-module.d.ts +55 -0
- package/dist/lib/fetch-module.js +125 -0
- package/dist/lib/module-license-gate.d.ts +48 -0
- package/dist/lib/module-license-gate.js +67 -0
- package/dist/lib/module-tier.d.ts +35 -0
- package/dist/lib/module-tier.js +37 -0
- package/dist/module-architecture.d.ts +175 -0
- package/dist/module-architecture.js +663 -0
- package/dist/parse-args.d.ts +47 -1
- package/dist/parse-args.js +143 -2
- package/dist/programmatic.d.ts +160 -3
- package/dist/programmatic.js +196 -7
- package/dist/surfaces.d.ts +211 -0
- package/dist/surfaces.js +532 -0
- package/dist/sync-routes.d.ts +92 -0
- package/dist/sync-routes.js +350 -0
- package/package.json +22 -14
- package/templates/.claude/rules/architecture.md +6 -2
- package/templates/.claude/skills/README.md +9 -9
- package/templates/.claude/skills/add-schema/SKILL.md +14 -7
- package/templates/.claude/skills/add-schema/references/schema-types.md +109 -6
- package/templates/.claude/skills/provision-config/SKILL.md +1 -1
- package/templates/.claude/skills/scaffold-commerce/SKILL.md +498 -1
- package/templates/.claude/skills/scaffold-commerce/templates/checkout-route.template.ts +370 -0
- package/templates/.claude/skills/scaffold-commerce/templates/invoice-route.template.ts +376 -0
- package/templates/.claude/skills/scaffold-commerce/templates/payment-link-route.template.ts +471 -0
- package/templates/.claude/skills/scaffold-commerce/templates/portal-route.template.ts +365 -0
- package/templates/.claude/skills/scaffold-commerce/templates/stripe-config.template.ts +60 -0
- package/templates/.claude/skills/scaffold-commerce/templates/subscription-route.template.ts +446 -0
- package/templates/.claude/skills/suggest-site-pages/references/categories.md +4 -4
- package/templates/.env.example +126 -2
- package/templates/CLAUDE.md +11 -5
- package/templates/README.md +1 -1
- package/templates/apps/api/.env.example +38 -0
- package/templates/apps/api/CLAUDE.md +75 -1
- package/templates/apps/api/LICENSE +201 -0
- package/templates/apps/api/api/index.ts +6 -141
- package/templates/apps/api/jest.config.cjs +16 -0
- package/templates/apps/api/package.json +22 -6
- package/templates/apps/api/src/__tests__/module-exclusion.test.ts +141 -0
- package/templates/apps/api/src/__tests__/server.test.ts +46 -0
- package/templates/apps/api/src/__tests__/vercel-handler.test.ts +211 -0
- package/templates/apps/api/src/bin/abandon-sweep.ts +42 -0
- package/templates/apps/api/src/bin/deliverable-resend.ts +144 -0
- package/templates/apps/api/src/bin/deliverable-upload.ts +114 -0
- package/templates/apps/api/src/bin/followup-sweep.ts +44 -0
- package/templates/apps/api/src/bin/listing-csv-sweep.ts +46 -0
- package/templates/apps/api/src/bin/seed-presets.ts +58 -0
- package/templates/apps/api/src/bin/seed-waitlist-experiments.ts +104 -0
- package/templates/apps/api/src/bin/session-retention-sweep.ts +46 -0
- package/templates/apps/api/src/cli.ts +5 -11
- package/templates/apps/api/src/config/index.ts +35 -0
- package/templates/apps/api/src/config/modules.ts +43 -0
- package/templates/apps/api/src/lib/__mocks__/prisma-client.js +11 -0
- package/templates/apps/api/src/lib/__mocks__/prisma.ts +231 -0
- package/templates/apps/api/src/lib/__tests__/lead-capture-store.test.ts +2 -2
- package/templates/apps/api/src/lib/site.ts +16 -0
- package/templates/apps/api/src/lib/stripe.ts +22 -0
- package/templates/apps/api/src/lib/tenant-db.ts +225 -0
- package/templates/apps/api/src/lib/ws-token.ts +91 -0
- package/templates/apps/api/src/middleware/__tests__/adversarial/session-fixation.test.ts +7 -1
- package/templates/apps/api/src/middleware/__tests__/auth.cookie-path.test.ts +7 -1
- package/templates/apps/api/src/middleware/__tests__/rate-limit.test.ts +91 -4
- package/templates/apps/api/src/middleware/auth.ts +43 -8
- package/templates/apps/api/src/middleware/rate-limit.ts +78 -3
- package/templates/apps/api/src/middleware/tenant.ts +99 -0
- package/templates/apps/api/src/openapi/__tests__/openapi.test.ts +92 -0
- package/templates/apps/api/src/openapi/spec.ts +312 -3
- package/templates/apps/api/src/routes/aeo/__tests__/index.test.ts +175 -0
- package/templates/apps/api/src/routes/aeo/index.ts +107 -0
- package/templates/apps/api/src/routes/auth/__tests__/auth-tokens.functional.test.ts +5 -2
- package/templates/apps/api/src/routes/auth/__tests__/tokens.test.ts +22 -3
- package/templates/apps/api/src/routes/auth/tokens.ts +13 -1
- package/templates/apps/api/src/routes/billing/__tests__/portal.test.ts +450 -0
- package/templates/apps/api/src/routes/billing/__tests__/read.test.ts +262 -0
- package/templates/apps/api/src/routes/billing/__tests__/usage.test.ts +436 -0
- package/templates/apps/api/src/routes/billing/index.ts +36 -0
- package/templates/apps/api/src/routes/billing/portal.ts +182 -0
- package/templates/apps/api/src/routes/billing/read.ts +75 -0
- package/templates/apps/api/src/routes/billing/usage.ts +153 -0
- package/templates/apps/api/src/routes/checkout/__tests__/sessions.test.ts +99 -0
- package/templates/apps/api/src/routes/checkout/sessions.ts +20 -8
- package/templates/apps/api/src/routes/content/create.ts +1 -0
- package/templates/apps/api/src/routes/content/delete.ts +1 -0
- package/templates/apps/api/src/routes/content/index.ts +42 -6
- package/templates/apps/api/src/routes/content/update.ts +1 -0
- package/templates/apps/api/src/routes/deliverables/__tests__/index.test.ts +393 -0
- package/templates/apps/api/src/routes/deliverables/index.ts +200 -0
- package/templates/apps/api/src/routes/flow-checkouts/__tests__/index.test.ts +443 -0
- package/templates/apps/api/src/routes/flow-checkouts/index.ts +82 -0
- package/templates/apps/api/src/routes/flows/README.md +147 -0
- package/templates/apps/api/src/routes/flows/__tests__/index.test.ts +752 -0
- package/templates/apps/api/src/routes/flows/__tests__/recommender.test.ts +671 -0
- package/templates/apps/api/src/routes/flows/index.ts +202 -0
- package/templates/apps/api/src/routes/flows/recommender.ts +443 -0
- package/templates/apps/api/src/routes/leads/__tests__/index.test.ts +438 -31
- package/templates/apps/api/src/routes/leads/__tests__/track.test.ts +10 -10
- package/templates/apps/api/src/routes/leads/index.ts +43 -9
- package/templates/apps/api/src/routes/project-listings/__tests__/configured-application.test.ts +547 -0
- package/templates/apps/api/src/routes/project-listings/__tests__/copy-edit.test.ts +815 -0
- package/templates/apps/api/src/routes/project-listings/__tests__/drafts.test.ts +742 -0
- package/templates/apps/api/src/routes/project-listings/__tests__/public.test.ts +424 -0
- package/templates/apps/api/src/routes/project-listings/__tests__/site-key.test.ts +364 -0
- package/templates/apps/api/src/routes/project-listings/__tests__/tenant-isolation.test.ts +566 -0
- package/templates/apps/api/src/routes/project-listings/get.ts +70 -0
- package/templates/apps/api/src/routes/project-listings/index.ts +105 -0
- package/templates/apps/api/src/routes/project-listings/list.ts +47 -0
- package/templates/apps/api/src/routes/project-listings/patch-copy.ts +222 -0
- package/templates/apps/api/src/routes/project-listings/patch-draft.ts +97 -0
- package/templates/apps/api/src/routes/project-listings/patch.ts +136 -0
- package/templates/apps/api/src/routes/project-listings/public.ts +52 -0
- package/templates/apps/api/src/routes/project-listings/respond.ts +37 -0
- package/templates/apps/api/src/routes/project-listings/resume-token.ts +22 -0
- package/templates/apps/api/src/routes/project-listings/start.ts +98 -0
- package/templates/apps/api/src/routes/project-listings/submit.ts +122 -0
- package/templates/apps/api/src/routes/schedule/__tests__/index.test.ts +490 -0
- package/templates/apps/api/src/routes/schedule/index.ts +249 -0
- package/templates/apps/api/src/routes/slack/__tests__/actions.test.ts +385 -0
- package/templates/apps/api/src/routes/slack/actions.ts +177 -0
- package/templates/apps/api/src/routes/slack/index.ts +38 -0
- package/templates/apps/api/src/routes/test/auth/__tests__/session.test.ts +16 -6
- package/templates/apps/api/src/routes/test/auth/session.ts +8 -6
- package/templates/apps/api/src/routes/waitlist-experiments/__tests__/tenant-isolation.test.ts +577 -0
- package/templates/apps/api/src/routes/waitlist-experiments/comparison.ts +78 -0
- package/templates/apps/api/src/routes/waitlist-experiments/index.ts +41 -0
- package/templates/apps/api/src/routes/waitlist-experiments/list.ts +64 -0
- package/templates/apps/api/src/routes/waitlist-experiments/respond.ts +42 -0
- package/templates/apps/api/src/routes/waitlist-experiments/signup.ts +84 -0
- package/templates/apps/api/src/routes/waitlist-experiments/signups.ts +119 -0
- package/templates/apps/api/src/routes/waitlist-signups/__tests__/index.test.ts +238 -0
- package/templates/apps/api/src/routes/waitlist-signups/index.ts +101 -0
- package/templates/apps/api/src/routes/webhooks/README.md +35 -12
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-flow-checkout.test.ts +315 -0
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-org-billing.test.ts +270 -0
- package/templates/apps/api/src/routes/webhooks/stripe.ts +248 -20
- package/templates/apps/api/src/routes/workspaces/__tests__/config-tenant-isolation.test.ts +356 -0
- package/templates/apps/api/src/routes/workspaces/__tests__/tenant-isolation.test.ts +671 -0
- package/templates/apps/api/src/routes/workspaces/config.ts +125 -0
- package/templates/apps/api/src/routes/workspaces/index.ts +194 -0
- package/templates/apps/api/src/routes/workspaces/sessions.ts +218 -0
- package/templates/apps/api/src/server.ts +293 -7
- package/templates/apps/api/src/services/__tests__/abandon-email.test.ts +489 -0
- package/templates/apps/api/src/services/__tests__/aeo-score.test.ts +475 -0
- package/templates/apps/api/src/services/__tests__/answer-distributions.test.ts +132 -0
- package/templates/apps/api/src/services/__tests__/deliverable-fulfillment.test.ts +523 -0
- package/templates/apps/api/src/services/__tests__/deliverable-resend.test.ts +359 -0
- package/templates/apps/api/src/services/__tests__/entitlements.test.ts +142 -0
- package/templates/apps/api/src/services/__tests__/flow-aggregate.test.ts +425 -0
- package/templates/apps/api/src/services/__tests__/flow-engine.test.ts +2840 -0
- package/templates/apps/api/src/services/__tests__/lead-promotion.test.ts +393 -0
- package/templates/apps/api/src/services/__tests__/lead-routing.test.ts +8 -8
- package/templates/apps/api/src/services/__tests__/listing-csv-sweep.test.ts +560 -0
- package/templates/apps/api/src/services/__tests__/playbook-compile.test.ts +406 -0
- package/templates/apps/api/src/services/__tests__/playbook-render.test.ts +290 -0
- package/templates/apps/api/src/services/__tests__/project-listing-decision.test.ts +736 -0
- package/templates/apps/api/src/services/__tests__/project-listing-flow.test.ts +475 -0
- package/templates/apps/api/src/services/__tests__/project-listing-issue.test.ts +340 -0
- package/templates/apps/api/src/services/__tests__/recommender-capture.test.ts +983 -0
- package/templates/apps/api/src/services/__tests__/slack-notify.test.ts +278 -0
- package/templates/apps/api/src/services/__tests__/tenant-context-cascade.test.ts +71 -0
- package/templates/apps/api/src/services/__tests__/tenant-context.test.ts +379 -0
- package/templates/apps/api/src/services/__tests__/usage-aggregation.test.ts +941 -0
- package/templates/apps/api/src/services/__tests__/usage-credits.test.ts +588 -0
- package/templates/apps/api/src/services/__tests__/usage-metering.test.ts +768 -0
- package/templates/apps/api/src/services/__tests__/waitlist-dashboard.test.ts +1314 -0
- package/templates/apps/api/src/services/__tests__/waitlist-experiments.test.ts +341 -0
- package/templates/apps/api/src/services/__tests__/waitlist-followup.test.ts +567 -0
- package/templates/apps/api/src/services/__tests__/waitlist-scoring.test.ts +474 -0
- package/templates/apps/api/src/services/__tests__/waitlist-signups.test.ts +354 -0
- package/templates/apps/api/src/services/abandon-email.ts +307 -0
- package/templates/apps/api/src/services/aeo-score.ts +288 -0
- package/templates/apps/api/src/services/answer-distributions.ts +138 -0
- package/templates/apps/api/src/services/deliverable-fulfillment.ts +523 -0
- package/templates/apps/api/src/services/entitlements.ts +102 -0
- package/templates/apps/api/src/services/flow-aggregate.ts +232 -0
- package/templates/apps/api/src/services/flow-checkouts.ts +123 -0
- package/templates/apps/api/src/services/flow-engine.ts +1278 -0
- package/templates/apps/api/src/services/lead-promotion.ts +176 -0
- package/templates/apps/api/src/services/lead-routing.ts +3 -3
- package/templates/apps/api/src/services/listing-config.ts +102 -0
- package/templates/apps/api/src/services/listing-csv-sweep.ts +455 -0
- package/templates/apps/api/src/services/playbook-compile.ts +398 -0
- package/templates/apps/api/src/services/playbook-render.ts +263 -0
- package/templates/apps/api/src/services/project-listing-decision.ts +490 -0
- package/templates/apps/api/src/services/project-listing-flow.ts +426 -0
- package/templates/apps/api/src/services/project-listing-issue.ts +251 -0
- package/templates/apps/api/src/services/project-listings.ts +1124 -0
- package/templates/apps/api/src/services/recommender-capture.ts +835 -0
- package/templates/apps/api/src/services/scheduling/cal-provider.ts +392 -0
- package/templates/apps/api/src/services/scheduling/index.ts +63 -0
- package/templates/apps/api/src/services/scheduling/types.ts +88 -0
- package/templates/apps/api/src/services/slack-notify.ts +240 -0
- package/templates/apps/api/src/services/tenant-context.ts +451 -0
- package/templates/apps/api/src/services/usage-aggregation.ts +516 -0
- package/templates/apps/api/src/services/usage-credits.ts +340 -0
- package/templates/apps/api/src/services/usage-metering.ts +699 -0
- package/templates/apps/api/src/services/waitlist-dashboard.ts +947 -0
- package/templates/apps/api/src/services/waitlist-experiments.ts +213 -0
- package/templates/apps/api/src/services/waitlist-followup.ts +486 -0
- package/templates/apps/api/src/services/waitlist-scoring.ts +166 -0
- package/templates/apps/api/src/services/waitlist-signups.ts +165 -0
- package/templates/apps/api/src/vercel-handler.ts +165 -0
- package/templates/apps/api/tsconfig.json +0 -12
- package/templates/apps/mcp/CLAUDE.md +19 -9
- package/templates/apps/mcp/LICENSE +201 -0
- package/templates/apps/mcp/__tests__/create_page.test.ts +1 -0
- package/templates/apps/mcp/__tests__/delete_page.test.ts +1 -0
- package/templates/apps/mcp/__tests__/module-exclusion.test.ts +105 -0
- package/templates/apps/mcp/__tests__/parity.test.ts +70 -6
- package/templates/apps/mcp/__tests__/request_callback.test.ts +4 -4
- package/templates/apps/mcp/__tests__/schedule_tools.test.ts +242 -0
- package/templates/apps/mcp/__tests__/submit_lead.test.ts +4 -4
- package/templates/apps/mcp/__tests__/subscribe_newsletter.test.ts +4 -4
- package/templates/apps/mcp/__tests__/tools/purchase.test.ts +47 -0
- package/templates/apps/mcp/__tests__/update_page.test.ts +1 -0
- package/templates/apps/mcp/package.json +6 -4
- package/templates/apps/mcp/src/config/modules.ts +37 -0
- package/templates/apps/mcp/src/server.ts +109 -18
- package/templates/apps/mcp/src/tools/capture_lead.ts +1 -1
- package/templates/apps/mcp/src/tools/create_booking.ts +58 -0
- package/templates/apps/mcp/src/tools/create_page.ts +1 -0
- package/templates/apps/mcp/src/tools/delete_page.ts +1 -0
- package/templates/apps/mcp/src/tools/get_event_meta.ts +55 -0
- package/templates/apps/mcp/src/tools/get_flow.ts +61 -0
- package/templates/apps/mcp/src/tools/index.ts +25 -0
- package/templates/apps/mcp/src/tools/list_availability.ts +67 -0
- package/templates/apps/mcp/src/tools/purchase.ts +3 -0
- package/templates/apps/mcp/src/tools/submit_flow_step.ts +83 -0
- package/templates/apps/mcp/src/tools/update_page.ts +1 -0
- package/templates/apps/mcp/tsconfig.json +1 -9
- package/templates/apps/web/.env.example +44 -0
- package/templates/apps/web/CLAUDE.md +28 -0
- package/templates/apps/web/LICENSE +201 -0
- package/templates/apps/web/__tests__/__mocks__/code-highlight.jest-stub.ts +24 -0
- package/templates/apps/web/__tests__/__mocks__/next-intl-server.ts +33 -0
- package/templates/apps/web/__tests__/__mocks__/next-intl.ts +18 -0
- package/templates/apps/web/__tests__/__mocks__/server-only.ts +13 -0
- package/templates/apps/web/__tests__/__mocks__/style-mock.js +4 -0
- package/templates/apps/web/__tests__/__mocks__/vercel-analytics-server.ts +9 -0
- package/templates/apps/web/__tests__/jest-support/import-meta-transformer.cjs +90 -0
- package/templates/apps/web/__tests__/setup.ts +22 -32
- package/templates/apps/web/app/.well-known/ai-plugin.json/route.ts +6 -3
- package/templates/apps/web/app/.well-known/mcp.json/build-manifest.ts +8 -2
- package/templates/apps/web/app/[locale]/(authed)/account/__tests__/page.test.tsx +260 -0
- package/templates/apps/web/app/[locale]/(authed)/account/page.tsx +263 -0
- package/templates/apps/web/app/[locale]/(authed)/account/sign-out-button.tsx +39 -0
- package/templates/apps/web/app/[locale]/(authed)/layout.tsx +54 -0
- package/templates/apps/web/app/[locale]/(authed)/sign-in-gate.tsx +96 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/[experimentId]/page.tsx +309 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/[experimentId]/signups/[leadId]/page.tsx +149 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/__tests__/comparison.test.tsx +273 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/__tests__/gate.test.tsx +172 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/__tests__/list.test.tsx +171 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/__tests__/signup.test.tsx +179 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/components/ExperimentsTable.tsx +116 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/components/ForbiddenState.tsx +24 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/components/OfferFunnelTable.tsx +66 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/components/RollupTicker.tsx +61 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/components/ScoreTrace.tsx +114 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/components/SignupsTable.tsx +139 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/components/WaitlistComparisonTabs.tsx +85 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/components/status-badges.tsx +67 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/format.ts +111 -0
- package/templates/apps/web/app/[locale]/(authed)/waitlist/page.tsx +179 -0
- package/templates/apps/web/app/[locale]/about/page.tsx +10 -1
- package/templates/apps/web/app/[locale]/blog/[[...slug]]/page.tsx +6 -1
- package/templates/apps/web/app/[locale]/careers/[slug]/page.tsx +9 -0
- package/templates/apps/web/app/[locale]/careers/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/careers/page.tsx +9 -1
- package/templates/apps/web/app/[locale]/case-studies/[slug]/page.tsx +9 -0
- package/templates/apps/web/app/[locale]/case-studies/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/case-studies/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/clients/__tests__/page-renderer-migration.test.tsx +11 -1
- package/templates/apps/web/app/[locale]/clients/page.tsx +9 -1
- package/templates/apps/web/app/[locale]/contact/ContactForm.tsx +21 -1
- package/templates/apps/web/app/[locale]/contact/ConversationalIntakeWrapper.tsx +188 -0
- package/templates/apps/web/app/[locale]/contact/__tests__/ConversationalIntakeWrapper.test.tsx +242 -0
- package/templates/apps/web/app/[locale]/contact/__tests__/contact.actions.test.ts +29 -0
- package/templates/apps/web/app/[locale]/contact/__tests__/intake-analytics.test.ts +51 -0
- package/templates/apps/web/app/[locale]/contact/__tests__/page-renderer-migration.test.tsx +39 -15
- package/templates/apps/web/app/[locale]/contact/contact.actions.ts +21 -3
- package/templates/apps/web/app/[locale]/contact/intake-analytics.ts +49 -0
- package/templates/apps/web/app/[locale]/contact/intake-script.ts +66 -0
- package/templates/apps/web/app/[locale]/contact/page.tsx +14 -4
- package/templates/apps/web/app/[locale]/courses/[slug]/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/courses/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/courses/page.tsx +9 -1
- package/templates/apps/web/app/[locale]/docs/[[...slug]]/page.tsx +1 -0
- package/templates/apps/web/app/[locale]/downloads/__tests__/page-renderer-migration.test.tsx +11 -1
- package/templates/apps/web/app/[locale]/downloads/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/events/[slug]/page.tsx +9 -0
- package/templates/apps/web/app/[locale]/events/__tests__/page-renderer-migration.test.tsx +12 -2
- package/templates/apps/web/app/[locale]/events/page.tsx +9 -1
- package/templates/apps/web/app/[locale]/faq/page.tsx +10 -1
- package/templates/apps/web/app/[locale]/flows/[slug]/FlowStepperClient.tsx +265 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/FlowStepperClient.permalink.test.tsx +445 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/FlowStepperClient.test.tsx +341 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/checkout.actions.test.ts +287 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/flow.actions.test.ts +302 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/__tests__/two-route-tool.test.tsx +128 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/checkout.actions.ts +254 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/flow.actions.ts +144 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/page.tsx +108 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/results/[payload]/ResultsClient.tsx +532 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/results/[payload]/ResultsEmailStep.tsx +121 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/results/[payload]/__tests__/ResultsClient.checkout.test.tsx +457 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/results/[payload]/__tests__/page.test.tsx +396 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/results/[payload]/page.tsx +114 -0
- package/templates/apps/web/app/[locale]/flows/[slug]/start/page.tsx +52 -0
- package/templates/apps/web/app/[locale]/how-to/[slug]/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/how-to/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/integrations/[slug]/page.tsx +9 -0
- package/templates/apps/web/app/[locale]/integrations/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/integrations/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/launch-service/page.tsx +14 -1
- package/templates/apps/web/app/[locale]/layout.tsx +115 -16
- package/templates/apps/web/app/[locale]/page.tsx +10 -1
- package/templates/apps/web/app/[locale]/partners/[slug]/page.tsx +9 -0
- package/templates/apps/web/app/[locale]/partners/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/partners/page.tsx +9 -1
- package/templates/apps/web/app/[locale]/products/[slug]/page.tsx +9 -0
- package/templates/apps/web/app/[locale]/products/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/products/page.tsx +9 -1
- package/templates/apps/web/app/[locale]/projects/[slug]/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/projects/__tests__/page-renderer-migration.test.tsx +10 -0
- package/templates/apps/web/app/[locale]/projects/apply/ListingApplicationClient.tsx +110 -0
- package/templates/apps/web/app/[locale]/projects/apply/__tests__/ListingApplicationClient.test.tsx +96 -0
- package/templates/apps/web/app/[locale]/projects/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/resources/[slug]/page.tsx +9 -0
- package/templates/apps/web/app/[locale]/resources/__tests__/page-renderer-migration.test.tsx +12 -2
- package/templates/apps/web/app/[locale]/resources/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/schedule/__tests__/page.test.tsx +117 -0
- package/templates/apps/web/app/[locale]/schedule/confirmed/__tests__/page.test.tsx +96 -0
- package/templates/apps/web/app/[locale]/schedule/confirmed/page.tsx +92 -0
- package/templates/apps/web/app/[locale]/schedule/page.tsx +82 -0
- package/templates/apps/web/app/[locale]/services/[slug]/page.tsx +9 -0
- package/templates/apps/web/app/[locale]/services/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/services/page.tsx +9 -1
- package/templates/apps/web/app/[locale]/sign-in/__tests__/next-path.test.ts +31 -0
- package/templates/apps/web/app/[locale]/sign-in/__tests__/page.test.tsx +152 -0
- package/templates/apps/web/app/[locale]/sign-in/next-path.ts +0 -0
- package/templates/apps/web/app/[locale]/sign-in/page.tsx +83 -0
- package/templates/apps/web/app/[locale]/sign-in/sign-in-card.tsx +123 -0
- package/templates/apps/web/app/[locale]/software/[slug]/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/software/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/tech-articles/[slug]/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/tech-articles/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/testimonials/__tests__/page-renderer-migration.test.tsx +11 -1
- package/templates/apps/web/app/[locale]/testimonials/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/thanks/[slug]/__tests__/page.test.tsx +93 -0
- package/templates/apps/web/app/[locale]/thanks/[slug]/page.tsx +48 -0
- package/templates/apps/web/app/[locale]/use-cases/__tests__/page-renderer-migration.test.tsx +11 -1
- package/templates/apps/web/app/[locale]/use-cases/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/whitepapers/[slug]/page.tsx +13 -1
- package/templates/apps/web/app/[locale]/whitepapers/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/globals.css +35 -0
- package/templates/apps/web/app/llms.txt/route.ts +2 -1
- package/templates/apps/web/app/og/route.tsx +10 -2
- package/templates/apps/web/auth.ts +8 -0
- package/templates/apps/web/components/sign-out-trigger.tsx +42 -0
- package/templates/apps/web/content/en/blog/README.txt +25 -0
- package/templates/apps/web/content/en/docs/index.mdx +28 -0
- package/templates/apps/web/jest.config.cjs +84 -27
- package/templates/apps/web/lib/__tests__/site-brand.test.ts +119 -0
- package/templates/apps/web/lib/__tests__/structured-data.test.tsx +499 -0
- package/templates/apps/web/lib/account-config.ts +13 -0
- package/templates/apps/web/lib/server-api.ts +85 -0
- package/templates/apps/web/lib/site-brand.tsx +118 -0
- package/templates/apps/web/messages/en.json +275 -7
- package/templates/apps/web/middleware.ts +11 -3
- package/templates/apps/web/next.config.mjs +8 -2
- package/templates/apps/web/package.json +16 -7
- package/templates/apps/web/postcss.config.mjs +23 -0
- package/templates/apps/web/public/.well-known/security.txt +3 -3
- package/templates/apps/web/src/lib/routes.ts +15 -2
- package/templates/apps/web/tsconfig.json +1 -16
- package/templates/content/_site.mdx +24 -25
- package/templates/content/en/AboutPage/about.mdx +24 -14
- package/templates/content/en/ContactPage/contact.mdx +23 -14
- package/templates/content/en/FAQPage/faq.mdx +10 -392
- package/templates/content/en/HomePage/home.mdx +14 -285
- package/templates/database/CHANGELOG.md +382 -0
- package/templates/database/LICENSE +201 -0
- package/templates/database/README.md +3 -1
- package/templates/database/__tests__/flows-listing-diagnostic.test.ts +392 -0
- package/templates/database/__tests__/flows-presets.test.ts +173 -0
- package/templates/database/__tests__/prefixed-ids.db.test.ts +146 -0
- package/templates/database/__tests__/seed.test.ts +88 -0
- package/templates/database/__tests__/user-cascade.test.ts +19 -4
- package/templates/database/auth/schema.prisma +521 -0
- package/templates/database/config/schema.prisma +234 -0
- package/templates/database/content/schema.prisma +263 -0
- package/templates/database/flows/listing-diagnostic.ts +182 -0
- package/templates/database/flows/presets.ts +315 -0
- package/templates/database/inbox/__tests__/schema.test.ts +4 -0
- package/templates/database/inbox/schema.prisma +476 -3
- package/templates/database/jest.config.cjs +8 -0
- package/templates/database/migrations/20260712215647_add_multi_tenant_tenancy/migration.sql +201 -0
- package/templates/database/migrations/20260713143320_reanchor_site_config_to_workspace/migration.sql +67 -0
- package/templates/database/migrations/20260713174000_add_audit_logs/migration.sql +46 -0
- package/templates/database/migrations/20260713190000_drop_telemetry_records/migration.sql +25 -0
- package/templates/database/migrations/20260713192000_add_uuidv7_function/migration.sql +49 -0
- package/templates/database/migrations/20260713192429_prefixed_uuid_entity_ids/migration.sql +197 -0
- package/templates/database/migrations/20260713200000_add_org_billing/migration.sql +32 -0
- package/templates/database/migrations/20260714000000_add_lead_promotion_fields/migration.sql +22 -0
- package/templates/database/migrations/20260714010000_add_usage_billing_content_models/migration.sql +151 -0
- package/templates/database/migrations/20260714020000_add_usage_billing_auth_config_models/migration.sql +223 -0
- package/templates/database/migrations/20260714030000_credit_balance_non_negative/migration.sql +22 -0
- package/templates/database/migrations/20260714030000_widen_usage_billing_report_aggregates/migration.sql +32 -0
- package/templates/database/migrations/20260810233516_add_flow_engine_models/migration.sql +40 -0
- package/templates/database/migrations/20260811020000_add_flow_session_abandon_email_columns/migration.sql +4 -0
- package/templates/database/migrations/20260811030000_add_flow_session_abandon_email_index/migration.sql +2 -0
- package/templates/database/migrations/20260811040000_add_flow_session_segment/migration.sql +2 -0
- package/templates/database/migrations/20260811050000_add_deliverable_models/migration.sql +29 -0
- package/templates/database/migrations/20260812000000_add_deliverable_grant_send_columns/migration.sql +6 -0
- package/templates/database/migrations/20260902222948_add_waitlist_experiment_models/migration.sql +39 -0
- package/templates/database/migrations/20260902224500_add_waitlist_id_format_checks/migration.sql +24 -0
- package/templates/database/migrations/20260903004112_add_flow_session_flags_aeo_score/migration.sql +3 -0
- package/templates/database/migrations/20260903010000_add_playbook_instance/migration.sql +33 -0
- package/templates/database/migrations/20260904000000_add_waitlist_followup_send/migration.sql +30 -0
- package/templates/database/migrations/20260905230000_add_flow_checkout/migration.sql +47 -0
- package/templates/database/migrations/20260906000000_add_flow_checkout_idempotency/migration.sql +16 -0
- package/templates/database/migrations/20260907120000_add_project_listing/migration.sql +47 -0
- package/templates/database/migrations/20260907130000_add_project_listing_slack_columns/migration.sql +10 -0
- package/templates/database/migrations/20260907180000_add_listing_csv_send/migration.sql +26 -0
- package/templates/database/migrations/20260909120000_project_listings_platform/migration.sql +90 -0
- package/templates/database/migrations/20260909180000_listing_draft_and_fields/migration.sql +174 -0
- package/templates/database/migrations/20260910120000_listing_public_site_key/migration.sql +14 -0
- package/templates/database/migrations/20260911120000_listing_copy_edit_audit/migration.sql +25 -0
- package/templates/database/ops/schema.prisma +27 -0
- package/templates/database/package.json +42 -4
- package/templates/database/prisma.config.ts +1 -1
- package/templates/database/schema.prisma +19 -435
- package/templates/database/scripts/db-generate-locked.sh +0 -0
- package/templates/database/seed-test.ts +14 -4
- package/templates/database/seed.ts +148 -0
- package/templates/database/tenancy.ts +45 -0
- package/templates/database/tsconfig.flows.json +15 -0
- package/templates/database/tsconfig.json +7 -1
- package/templates/database/tsconfig.tenancy.json +14 -0
- package/templates/package.json +30 -55
- package/templates/pnpm-workspace.yaml +0 -3
- package/templates/project.yaml +1 -1
- package/templates/tsconfig.json +1 -37
- package/templates/apps/web/__tests__/auth/adversarial/cookie-attributes.test.ts +0 -94
- package/templates/apps/web/__tests__/auth/adversarial/oauth-state-parameter.test.ts +0 -75
- package/templates/apps/web/__tests__/auth/adversarial/redirect-uri-allowlist.test.ts +0 -82
- package/templates/apps/web/__tests__/auth/env-helpers.test.ts +0 -168
- package/templates/apps/web/__tests__/authority-list-routes.test.tsx +0 -208
- package/templates/apps/web/__tests__/better-stack.test.ts +0 -66
- package/templates/apps/web/__tests__/blog-dir-resolution.test.ts +0 -87
- package/templates/apps/web/__tests__/blog-source-populated.test.ts +0 -130
- package/templates/apps/web/__tests__/data-testid-coverage.test.tsx +0 -60
- package/templates/apps/web/__tests__/google-analytics.test.tsx +0 -104
- package/templates/apps/web/__tests__/i18n/middleware.test.ts +0 -119
- package/templates/apps/web/__tests__/i18n/routing.test.ts +0 -114
- package/templates/apps/web/__tests__/i18n/translations.test.ts +0 -191
- package/templates/apps/web/__tests__/json-ld.test.ts +0 -98
- package/templates/apps/web/__tests__/knowledge-events-routes.test.tsx +0 -580
- package/templates/apps/web/__tests__/layout-stealth.test.ts +0 -39
- package/templates/apps/web/__tests__/lighthouse-fixtures/improvement-image-shrink.tsx +0 -103
- package/templates/apps/web/__tests__/lighthouse-fixtures/override-fixture.md +0 -114
- package/templates/apps/web/__tests__/lighthouse-fixtures/regression-bloat.tsx +0 -94
- package/templates/apps/web/__tests__/page.test.tsx +0 -230
- package/templates/apps/web/__tests__/products-services-phase1.test.tsx +0 -321
- package/templates/apps/web/__tests__/projects-routes.test.tsx +0 -392
- package/templates/apps/web/__tests__/resources-downloads-integrations-phase2.test.tsx +0 -475
- package/templates/apps/web/__tests__/routes/ai-plugin-json.test.ts +0 -53
- package/templates/apps/web/__tests__/routes/blog-route.test.tsx +0 -191
- package/templates/apps/web/__tests__/routes/llms-txt.test.ts +0 -123
- package/templates/apps/web/__tests__/routes/robots-txt.test.ts +0 -52
- package/templates/apps/web/__tests__/routes/sitemap-xml.test.ts +0 -78
- package/templates/apps/web/__tests__/routes/well-known-mcp.test.ts +0 -203
- package/templates/apps/web/__tests__/section-routes.test.tsx +0 -693
- package/templates/apps/web/__tests__/security-headers.test.ts +0 -201
- package/templates/apps/web/__tests__/sentry-config.test.ts +0 -116
- package/templates/apps/web/__tests__/sitemap-locales.test.ts +0 -415
- package/templates/apps/web/__tests__/standalone-informational-routes.test.tsx +0 -844
- package/templates/apps/web/app/[locale]/__tests__/layout.test.tsx +0 -120
- package/templates/apps/web/app/[locale]/__tests__/page-renderer-migration.test.tsx +0 -202
- package/templates/apps/web/app/__tests__/error-boundaries.test.tsx +0 -152
- package/templates/apps/web/content/en/blog/index.mdx +0 -15
- package/templates/apps/web/content/en/blog/launching-ailk.mdx +0 -20
- package/templates/apps/web/content/en/docs/getting-started.mdx +0 -30
- package/templates/content/.gitkeep +0 -0
- package/templates/content/CLAUDE.md +0 -85
- package/templates/content/ar/HomePage/home.mdx +0 -123
- package/templates/content/ar/_site.mdx +0 -35
- package/templates/content/de/_site.mdx +0 -29
- package/templates/content/en/.gitkeep +0 -0
- package/templates/content/en/AboutPage/about.schema.json +0 -82
- package/templates/content/en/BookCall/book-call.mdx +0 -19
- package/templates/content/en/BookCall/book-call.schema.json +0 -121
- package/templates/content/en/BreadcrumbList/site-breadcrumbs.mdx +0 -20
- package/templates/content/en/CareersList/careers.mdx +0 -24
- package/templates/content/en/CaseStudiesList/case-studies.mdx +0 -22
- package/templates/content/en/CaseStudiesList/showcase.mdx +0 -8
- package/templates/content/en/CaseStudy/ailk-aeo-rollout.mdx +0 -32
- package/templates/content/en/CaseStudy/schema-builder-migration.mdx +0 -41
- package/templates/content/en/ClientsList/clients.mdx +0 -38
- package/templates/content/en/ContactPage/contact.schema.json +0 -100
- package/templates/content/en/ContactPoint/primary.mdx +0 -14
- package/templates/content/en/Course/aeo-fundamentals.mdx +0 -37
- package/templates/content/en/Course/schema-builder-workshop.mdx +0 -62
- package/templates/content/en/CoursesList/courses.mdx +0 -22
- package/templates/content/en/DownloadsList/downloads.mdx +0 -22
- package/templates/content/en/Event/aeo-office-hours-may-2026.mdx +0 -39
- package/templates/content/en/Event/ailk-launch-day-2026.mdx +0 -35
- package/templates/content/en/EventsList/events.mdx +0 -26
- package/templates/content/en/FAQPage/faq.schema.json +0 -231
- package/templates/content/en/GlossaryList/glossary.mdx +0 -19
- package/templates/content/en/GlossaryList/glossary.schema.json +0 -300
- package/templates/content/en/HomePage/home.schema.json +0 -88
- package/templates/content/en/HomePage/launch-service.mdx +0 -475
- package/templates/content/en/HomePage/launch-service.schema.json +0 -138
- package/templates/content/en/HowTo/add-mdx-content.mdx +0 -38
- package/templates/content/en/HowTo/configure-aeo-scoring.mdx +0 -35
- package/templates/content/en/HowTo/set-up-json-ld.mdx +0 -36
- package/templates/content/en/Integration/github-actions.mdx +0 -31
- package/templates/content/en/Integration/openai-api.mdx +0 -26
- package/templates/content/en/Integration/vercel.mdx +0 -32
- package/templates/content/en/IntegrationsList/integrations.mdx +0 -22
- package/templates/content/en/JobPosting/content-strategist.mdx +0 -46
- package/templates/content/en/JobPosting/developer-advocate.mdx +0 -47
- package/templates/content/en/JobPosting/senior-fullstack-engineer.mdx +0 -57
- package/templates/content/en/LandingPage/aeo-audit.mdx +0 -19
- package/templates/content/en/LandingPage/aeo-audit.schema.json +0 -92
- package/templates/content/en/LandingPage/agency-waitlist.mdx +0 -340
- package/templates/content/en/LandingPage/agency-waitlist.schema.json +0 -152
- package/templates/content/en/LandingPage/developers.mdx +0 -19
- package/templates/content/en/LandingPage/developers.schema.json +0 -109
- package/templates/content/en/LandingPage/for-agencies.mdx +0 -390
- package/templates/content/en/LandingPage/for-agencies.schema.json +0 -107
- package/templates/content/en/LandingPage/for-ai-search-agencies.mdx +0 -417
- package/templates/content/en/LandingPage/for-ai-search-agencies.schema.json +0 -105
- package/templates/content/en/LandingPage/for-businesses.mdx +0 -19
- package/templates/content/en/LandingPage/for-businesses.schema.json +0 -96
- package/templates/content/en/LandingPage/platform.mdx +0 -369
- package/templates/content/en/LandingPage/platform.schema.json +0 -166
- package/templates/content/en/LandingPage/vs-ai-website-builders.mdx +0 -19
- package/templates/content/en/LandingPage/vs-ai-website-builders.schema.json +0 -102
- package/templates/content/en/LandingPage/vs-wordpress.mdx +0 -19
- package/templates/content/en/LandingPage/vs-wordpress.schema.json +0 -53
- package/templates/content/en/NewsletterSignup/newsletter.mdx +0 -236
- package/templates/content/en/NewsletterSignup/newsletter.schema.json +0 -91
- package/templates/content/en/Organization/site-owner.mdx +0 -16
- package/templates/content/en/Partner/prisma.mdx +0 -31
- package/templates/content/en/Partner/supabase.mdx +0 -30
- package/templates/content/en/Partner/vercel.mdx +0 -28
- package/templates/content/en/PartnersList/partners.mdx +0 -22
- package/templates/content/en/Person/founder.mdx +0 -18
- package/templates/content/en/Pricing/pricing.mdx +0 -538
- package/templates/content/en/Pricing/pricing.schema.json +0 -209
- package/templates/content/en/PrivacyPage/privacy.mdx +0 -165
- package/templates/content/en/PrivacyPage/privacy.schema.json +0 -64
- package/templates/content/en/Product/ailk.mdx +0 -19
- package/templates/content/en/Product/ailk.schema.json +0 -94
- package/templates/content/en/Product/api-launch-kit.mdx +0 -26
- package/templates/content/en/Product/launch-kit.mdx +0 -28
- package/templates/content/en/ProductsList/products.mdx +0 -26
- package/templates/content/en/Project/ailk-phase-2.mdx +0 -54
- package/templates/content/en/ProjectsList/projects.mdx +0 -25
- package/templates/content/en/ResourceDetail/aeo-scoring-guide.mdx +0 -27
- package/templates/content/en/ResourceDetail/content-model-whitepaper.mdx +0 -28
- package/templates/content/en/ResourceDetail/schema-org-quick-reference.mdx +0 -39
- package/templates/content/en/ResourcesHub/resources.mdx +0 -22
- package/templates/content/en/Service/consulting.mdx +0 -22
- package/templates/content/en/Service/implementation.mdx +0 -30
- package/templates/content/en/Service/launch-service.mdx +0 -232
- package/templates/content/en/Service/launch.mdx +0 -228
- package/templates/content/en/ServicesList/services.mdx +0 -84
- package/templates/content/en/SoftwareProduct/ailk-aeo.mdx +0 -44
- package/templates/content/en/SoftwareProduct/ailk-content-adapters.mdx +0 -47
- package/templates/content/en/SoftwareProduct/ailk-schema.mdx +0 -49
- package/templates/content/en/TeamList/team.mdx +0 -63
- package/templates/content/en/TeamMember/founder.mdx +0 -72
- package/templates/content/en/TermsPage/terms.mdx +0 -19
- package/templates/content/en/TermsPage/terms.schema.json +0 -99
- package/templates/content/en/TestimonialsList/testimonials.mdx +0 -44
- package/templates/content/en/UseCasesList/use-cases.mdx +0 -30
- package/templates/content/en/Whitepaper/ax-first-product-development.mdx +0 -27
- package/templates/content/en/Whitepaper/open-core-commercial-strategy.mdx +0 -27
- package/templates/content/en/Whitepaper/structured-data-for-answer-engines.mdx +0 -31
- package/templates/content/en-XA/AboutPage/about.mdx +0 -8
- package/templates/content/en-XA/FAQPage/faq.mdx +0 -8
- package/templates/content/en-XA/HomePage/home.mdx +0 -8
- package/templates/content/es/_site.mdx +0 -30
- package/templates/content/fr/_site.mdx +0 -30
- package/templates/content/ja/_site.mdx +0 -30
- package/templates/content/pt-BR/AboutPage/about.mdx +0 -8
- package/templates/content/pt-BR/FAQPage/faq.mdx +0 -8
- package/templates/content/pt-BR/HomePage/home.mdx +0 -23
|
@@ -1,38 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
version: "1"
|
|
3
|
-
siteName:
|
|
4
|
-
baseUrl: https://
|
|
3
|
+
siteName: "{{COMPANY_NAME}}"
|
|
4
|
+
baseUrl: https://{{COMPANY_DOMAIN}}
|
|
5
5
|
defaultLocale: en
|
|
6
6
|
siteIdentity:
|
|
7
7
|
kind: Organization
|
|
8
|
-
name:
|
|
9
|
-
url: https://
|
|
10
|
-
logo: https://ailaunchkit.ai/opengraph-image.png
|
|
8
|
+
name: "{{COMPANY_NAME}}"
|
|
9
|
+
url: https://{{COMPANY_DOMAIN}}
|
|
11
10
|
description: >
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
foundingDate: "2024"
|
|
17
|
-
founderName: Sam Henry
|
|
11
|
+
One or two sentences describing what your organization does. This text is
|
|
12
|
+
read by answer engines as your canonical self-description, so make it
|
|
13
|
+
concrete — what you do, for whom.
|
|
14
|
+
sameAs: []
|
|
18
15
|
analytics:
|
|
19
|
-
vercelAnalytics:
|
|
20
|
-
brand:
|
|
21
|
-
logomark:
|
|
22
|
-
light: /logomark-light.svg
|
|
23
|
-
dark: /logomark-dark.svg
|
|
24
|
-
alt: AI Launch Kit
|
|
16
|
+
vercelAnalytics: false
|
|
25
17
|
---
|
|
26
18
|
|
|
27
19
|
<!--
|
|
28
|
-
This file is your site's canonical configuration. Edit the frontmatter
|
|
29
|
-
|
|
30
|
-
(Organization, Person, or LocalBusiness).
|
|
20
|
+
This file is your site's canonical configuration. Edit the frontmatter above to
|
|
21
|
+
set your site name, base URL, default locale, and identity.
|
|
31
22
|
|
|
32
|
-
|
|
33
|
-
instead of editing this file directly — it validates input and writes
|
|
34
|
-
with optimistic locking.
|
|
23
|
+
`siteIdentity.kind` takes one of three values:
|
|
35
24
|
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
- Organization — a company, agency, nonprofit, or team
|
|
26
|
+
- Person — a solo practitioner, consultant, or personal site
|
|
27
|
+
- LocalBusiness — a business with a physical location customers visit
|
|
28
|
+
|
|
29
|
+
`sameAs` is the list of URLs that are unambiguously the same entity as you —
|
|
30
|
+
your LinkedIn company page, your GitHub org, your X profile. Answer engines use
|
|
31
|
+
it to reconcile your site with the rest of your presence, so it is worth
|
|
32
|
+
filling in.
|
|
33
|
+
|
|
34
|
+
For the agent-operator workflow, use the `set_site_identity` MCP tool rather
|
|
35
|
+
than editing this file directly — it validates input and writes with optimistic
|
|
36
|
+
locking.
|
|
38
37
|
-->
|
|
@@ -1,19 +1,29 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "AboutPage"
|
|
3
3
|
slug: "about"
|
|
4
|
-
title: "
|
|
5
|
-
description: "
|
|
6
|
-
sections:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
title: "About {{COMPANY_NAME}}"
|
|
5
|
+
description: "Replace this with a sentence about who you are and why you do this work."
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "hero",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"headline": "About {{COMPANY_NAME}}",
|
|
14
|
+
"subheadline": "Replace this with the short version of your story.",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "why-we-exist",
|
|
19
|
+
"type": "content-block",
|
|
20
|
+
"data":
|
|
21
|
+
{
|
|
22
|
+
"headline": "Why we exist",
|
|
23
|
+
"body": "Replace this paragraph with the reason your organization exists — the problem you kept running into, or the gap you decided to fill. Concrete beats aspirational.",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
]
|
|
13
27
|
---
|
|
14
28
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<JsonLd data={{"@context": "https://schema.org", "@graph": [{"@type": "Product", "additionalType": "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/#salessmyth", "name": "SalesSmyth LLC"}, "brand": {"@type": "Brand", "@id": "https://workingtheory.ai/#brand", "name": "Working Theory", "url": "https://workingtheory.ai"}, "creator": {"@type": "Person", "@id": "https://samhenry.org/#person", "name": "Sam Henry", "url": "https://samhenry.org"}, "contributor": [{"@type": "SoftwareApplication", "name": "Claudio Planck", "description": "AI engineering agent contributing across the AILK substrate."}, {"@type": "SoftwareApplication", "name": "Anders Stewart", "description": "AI VP Engineering agent, coordinating with the human team on shipped work."}]}, {"@type": "AboutPage", "@id": "https://ailaunchkit.ai/about/#webpage", "url": "https://ailaunchkit.ai/about", "name": "About", "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.", "isPartOf": {"@id": "https://ailaunchkit.ai/#product"}, "mainEntity": {"@type": "Organization", "@id": "https://ailaunchkit.ai/#salessmyth", "name": "SalesSmyth LLC"}, "about": {"@id": "https://ailaunchkit.ai/#product"}}]}} />
|
|
18
|
-
|
|
19
|
-
{/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. Landed by land-section-catalog.py (#3111). */}
|
|
29
|
+
{/* Rendered from frontmatter `sections[]`. A `team` section is a good next addition here once you have people to list. */}
|
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "ContactPage"
|
|
3
3
|
slug: "contact"
|
|
4
|
-
title: "Contact
|
|
5
|
-
description: "
|
|
6
|
-
sections:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
title: "Contact {{COMPANY_NAME}}"
|
|
5
|
+
description: "How to reach {{COMPANY_NAME}}. Replace this with the channels you actually monitor."
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "hero",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"headline": "Contact {{COMPANY_NAME}}",
|
|
14
|
+
"subheadline": "Replace this with how you prefer to be reached, and how quickly you reply.",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "channels",
|
|
19
|
+
"type": "content-block",
|
|
20
|
+
"data":
|
|
21
|
+
{
|
|
22
|
+
"body": "Replace this with your contact channels — email, a booking link, a form. List only the ones you actually monitor: a published channel nobody watches is worse than no channel.",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
]
|
|
13
26
|
---
|
|
14
27
|
|
|
15
|
-
|
|
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", "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": {"@id": "https://workingtheory.ai/#organization"}, "brand": {"@id": "https://workingtheory.ai/#organization"}, "creator": {"@id": "https://samhenry.org/#person"}, "offers": [{"@type": "Offer", "name": "Free (OSS, Apache 2.0)", "price": "0", "priceCurrency": "USD"}, {"@type": "Offer", "name": "Pro", "price": "249", "priceCurrency": "USD", "unitText": "per user per year"}, {"@type": "Offer", "name": "Pro Plus", "price": "449", "priceCurrency": "USD", "unitText": "per user per month"}, {"@type": "Offer", "name": "Launch Service", "price": "2495", "priceCurrency": "USD"}]}, {"@type": "ContactPage", "@id": "https://ailaunchkit.ai/contact#webpage", "url": "https://ailaunchkit.ai/contact", "name": "Contact AI Launch Kit", "description": "Contact AI Launch Kit by email, intro call, or GitHub Issues — reach the Working Theory team for Pro, Pro Plus, Launch Service, or OSS support.", "isPartOf": {"@id": "https://ailaunchkit.ai/#product"}, "mainEntity": {"@type": "Organization", "name": "AI Launch Kit by Working Theory", "email": "hello@ailaunchkit.ai", "sameAs": ["https://github.com/working-theory-labs/ai-launch-kit"], "contactPoint": [{"@type": "ContactPoint", "contactType": "customer support", "email": "hello@ailaunchkit.ai", "availableLanguage": "English"}]}}]}} />
|
|
18
|
-
|
|
19
|
-
{/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. Landed by land-section-catalog.py (#3111). */}
|
|
28
|
+
{/* Rendered from frontmatter `sections[]`. Swap the content-block above for a `contact-channels` section once you know your channels. */}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "FAQPage"
|
|
3
3
|
slug: "faq"
|
|
4
|
-
title: "
|
|
5
|
-
description: "Answers to the
|
|
4
|
+
title: "{{COMPANY_NAME}} — Frequently Asked Questions"
|
|
5
|
+
description: "Answers to the questions people actually ask about {{COMPANY_NAME}}."
|
|
6
6
|
sections:
|
|
7
7
|
[
|
|
8
8
|
{
|
|
@@ -10,411 +10,29 @@ sections:
|
|
|
10
10
|
"type": "hero",
|
|
11
11
|
"data":
|
|
12
12
|
{
|
|
13
|
-
"headline": "
|
|
14
|
-
"subheadline": "
|
|
13
|
+
"headline": "Frequently Asked Questions",
|
|
14
|
+
"subheadline": "Replace these with the questions you are actually asked.",
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
"id": "faq
|
|
18
|
+
"id": "faq",
|
|
19
19
|
"type": "faq",
|
|
20
20
|
"data":
|
|
21
21
|
{
|
|
22
|
-
"headline": "Pre-launch concerns",
|
|
23
22
|
"items":
|
|
24
23
|
[
|
|
25
24
|
{
|
|
26
|
-
"question": "
|
|
27
|
-
"answer": "
|
|
25
|
+
"question": "Replace this with a real question you get asked.",
|
|
26
|
+
"answer": "Answer it directly, in the first sentence. An FAQ answer that opens with context and buries the answer in paragraph three does not get quoted.",
|
|
28
27
|
},
|
|
29
28
|
{
|
|
30
|
-
"question": "
|
|
31
|
-
"answer": "
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"question": "What happens if AILK doesn't find traction?",
|
|
35
|
-
"answer": "You keep everything. AILK ships under Apache 2.0, so the codebase belongs to you regardless of what happens to the company behind it. No lock-in, no dependency on a vendor's survival — the license itself bounds the downside.",
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"question": "Do you have customer proof yet?",
|
|
39
|
-
"answer": "Not yet from outside the founding team, and we're not pretending otherwise. Sam Henry, Working Theory, and SalesSmyth all publish on AILK today — that's real dogfooding, not a case study. Independent customer proof builds over the next 90–180 days as Launch Service and Pro customers come on.",
|
|
40
|
-
},
|
|
41
|
-
],
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"id": "faq-fleet-management",
|
|
46
|
-
"type": "faq",
|
|
47
|
-
"data":
|
|
48
|
-
{
|
|
49
|
-
"headline": "Fleet management",
|
|
50
|
-
"items":
|
|
51
|
-
[
|
|
52
|
-
{
|
|
53
|
-
"question": "We run a portfolio of client sites. Where's fleet management?",
|
|
54
|
-
"answer": "Deferred. Fleet management, cross-site rollup, white-label, and per-seat licensing are planned as a future Enterprise multi-tenant entitlement, not a separate tier. At launch, agencies deliver on OSS plus Pro, managed per-site rather than as a fleet.",
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"question": "When will Fleet Management ship?",
|
|
58
|
-
"answer": "No fixed date. It lands in that same post-launch window, and the exact timing depends on demand for the entitlement. It ships once the core substrate is proven at single-site scale first.",
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"id": "faq-multi-site",
|
|
65
|
-
"type": "faq",
|
|
66
|
-
"data":
|
|
67
|
-
{
|
|
68
|
-
"headline": "Multi-site management",
|
|
69
|
-
"items":
|
|
70
|
-
[
|
|
71
|
-
{
|
|
72
|
-
"question": "How do I manage multiple client sites today, before fleet management ships?",
|
|
73
|
-
"answer": "Per-site, on OSS or Pro. Each client site is its own AILK deploy with its own repo, schema registry, and audit run. There's no fleet dashboard yet — that's the gap fleet management closes. Nothing stops you from running several client sites in parallel today.",
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"question": "Is there a discount for managing many sites on Pro?",
|
|
77
|
-
"answer": "Not currently. Pro is priced per user per year ($249), not per site, so an agency running several client sites on one Pro seat pays the same rate regardless of site count. Volume-based agency pricing arrives with the Enterprise multi-tenant entitlement.",
|
|
78
|
-
},
|
|
79
|
-
],
|
|
80
|
-
},
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"id": "faq-working-theory-relationship",
|
|
84
|
-
"type": "faq",
|
|
85
|
-
"data":
|
|
86
|
-
{
|
|
87
|
-
"headline": "Working Theory relationship",
|
|
88
|
-
"items":
|
|
89
|
-
[
|
|
90
|
-
{
|
|
91
|
-
"question": "How does this relate to Working Theory Platform? Am I locked in?",
|
|
92
|
-
"answer": "You're not locked in. AILK works fully standalone. Working Theory Platform is a separate product — growth marketing as a system that publishes into AILK with the deepest integration available. Neither product requires the other.",
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"question": "Do I need Working Theory Platform to use AILK?",
|
|
96
|
-
"answer": "No. Clone AILK, deploy it, run it — none of that touches Working Theory Platform. Platform is the recommended layer for customers who also want ongoing growth marketing; it isn't a requirement to use AILK.",
|
|
29
|
+
"question": "What makes a good FAQ entry?",
|
|
30
|
+
"answer": "A question phrased the way someone would actually ask it, and an answer that stands alone without the rest of the page. This page emits FAQPage JSON-LD, so each pair is machine-readable on its own.",
|
|
97
31
|
},
|
|
98
32
|
],
|
|
99
33
|
},
|
|
100
34
|
},
|
|
101
|
-
{
|
|
102
|
-
"id": "faq-nextjs-requirement",
|
|
103
|
-
"type": "faq",
|
|
104
|
-
"data":
|
|
105
|
-
{
|
|
106
|
-
"headline": "Next.js requirement",
|
|
107
|
-
"items":
|
|
108
|
-
[
|
|
109
|
-
{
|
|
110
|
-
"question": "We're not Next.js native. Is this still for us?",
|
|
111
|
-
"answer": "Yes, if AI search visibility is the deliverable you're selling. Launch Service is the path — a fixed-scope two-week deploy onto the substrate. Your team owns content and citation work from there. Next.js fluency helps. It isn't required.",
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
"question": "Do I need to write MDX myself?",
|
|
115
|
-
"answer": "No. Launch Service handles the build; your team works in content and citation strategy from there, with no MDX or build pipeline required on your end. Teams that want to write MDX directly can — it's the foundation's native content format.",
|
|
116
|
-
},
|
|
117
|
-
],
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
"id": "faq-migration-from-wordpress",
|
|
122
|
-
"type": "faq",
|
|
123
|
-
"data":
|
|
124
|
-
{
|
|
125
|
-
"headline": "Migration from WordPress",
|
|
126
|
-
"items":
|
|
127
|
-
[
|
|
128
|
-
{
|
|
129
|
-
"question": "Can I migrate my existing WordPress site to AILK?",
|
|
130
|
-
"answer": "Yes, though AILK isn't positioned as a migration tool — it's a foundation you rebuild on. Content and schema get recreated on AILK's typed page structure rather than imported wholesale, since the underlying data models don't match a plugin-based WordPress stack.",
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
"question": "What happens to my existing SEO rankings during a move off WordPress?",
|
|
134
|
-
"answer": "Rankings depend on redirect discipline and content parity, not the platform switch itself. A well-executed move preserves URLs where possible and 301s the rest. It typically improves the schema and entity markup that WordPress plugin stacks handle inconsistently.",
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
"question": "How long does a WordPress migration take?",
|
|
138
|
-
"answer": "Launch Service runs a fixed two-week scope for a new AILK deploy. Actual migration timeline depends on how much existing content needs to be recreated. A small brochure site fits inside two weeks; larger content libraries take longer to fully port over.",
|
|
139
|
-
},
|
|
140
|
-
],
|
|
141
|
-
},
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
"id": "faq-pricing-and-licensing",
|
|
145
|
-
"type": "faq",
|
|
146
|
-
"data":
|
|
147
|
-
{
|
|
148
|
-
"headline": "Pricing & licensing",
|
|
149
|
-
"items":
|
|
150
|
-
[
|
|
151
|
-
{
|
|
152
|
-
"question": "What's the difference between Free, Pro, and Pro Plus?",
|
|
153
|
-
"answer": "Free is the Apache 2.0 OSS foundation — complete, not crippled. Pro adds capability at $249 per user per year. Pro Plus adds ongoing care at $449 per user per month. Paid tiers build on the free foundation; they never gate access to it.",
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
"question": "Is the OSS version really free forever?",
|
|
157
|
-
"answer": 'Yes. AILK''s OSS layer is Apache 2.0 — not source-available, not "free until you make money," and not deliberately crippled to push a paid tier. It''s structurally complete today, and it stays that way regardless of what paid tiers add later.',
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
"question": "What license does AILK use?",
|
|
161
|
-
"answer": "Apache 2.0, the permissive open-source license, published on GitHub with no dual-licensing traps. Clone it. Modify it. Deploy it commercially — no royalty obligations back to Working Theory.",
|
|
162
|
-
},
|
|
163
|
-
],
|
|
164
|
-
},
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
"id": "faq-closing-cta",
|
|
168
|
-
"type": "cta",
|
|
169
|
-
"data":
|
|
170
|
-
{
|
|
171
|
-
"headline": "Still have questions?",
|
|
172
|
-
"description": "Talk to us directly about Launch Service, Pro, or Enterprise fleet management — or skip the conversation and clone the OSS foundation yourself.",
|
|
173
|
-
"primaryCta":
|
|
174
|
-
{ "label": "Book Launch Service call", "href": "/launch-service" },
|
|
175
|
-
"secondaryCta":
|
|
176
|
-
{
|
|
177
|
-
"label": "Clone OSS",
|
|
178
|
-
"href": "/developers",
|
|
179
|
-
"variant": "outline",
|
|
180
|
-
},
|
|
181
|
-
},
|
|
182
|
-
},
|
|
183
35
|
]
|
|
184
|
-
status: "Approved"
|
|
185
|
-
pageKey: "FAQPage"
|
|
186
|
-
entity: "ailaunchkit"
|
|
187
|
-
urlSlug: "faq-page"
|
|
188
|
-
lastUpdated: "2026-07-06"
|
|
189
|
-
pageLevelSchemaType: "FAQPage"
|
|
190
36
|
---
|
|
191
37
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
<JsonLd
|
|
195
|
-
data={{
|
|
196
|
-
"@context": "https://schema.org",
|
|
197
|
-
"@graph": [
|
|
198
|
-
{
|
|
199
|
-
"@type": "Product",
|
|
200
|
-
additionalType: "https://schema.org/SoftwareApplication",
|
|
201
|
-
"@id": "https://ailaunchkit.ai/#product",
|
|
202
|
-
name: "AI Launch Kit",
|
|
203
|
-
alternateName: [
|
|
204
|
-
"AI Launch Kit by Working Theory",
|
|
205
|
-
"AILK by Working Theory",
|
|
206
|
-
"AILK",
|
|
207
|
-
"@ailaunchkit",
|
|
208
|
-
"@ailk",
|
|
209
|
-
"@working-theory",
|
|
210
|
-
"ai-launch-kit",
|
|
211
|
-
],
|
|
212
|
-
url: "https://ailaunchkit.ai",
|
|
213
|
-
description:
|
|
214
|
-
"AI Launch Kit is the open-source website foundation for the agent-first internet — Apache 2.0, agent-ready, AEO-scored, deployable in days.",
|
|
215
|
-
sameAs: [
|
|
216
|
-
"https://github.com/working-theory-labs/ai-launch-kit",
|
|
217
|
-
"https://x.com/ailaunchkit",
|
|
218
|
-
"https://www.npmjs.com/org/ailk",
|
|
219
|
-
"https://youtube.com/@working-theory",
|
|
220
|
-
"https://linkedin.com/company/working-theory",
|
|
221
|
-
],
|
|
222
|
-
foundingDate: "2026",
|
|
223
|
-
category: "Open-source website foundation",
|
|
224
|
-
applicationCategory: "DeveloperApplication",
|
|
225
|
-
operatingSystem: "Cross-platform (Node.js)",
|
|
226
|
-
license: "https://www.apache.org/licenses/LICENSE-2.0",
|
|
227
|
-
codeRepository: "https://github.com/working-theory-labs/ai-launch-kit",
|
|
228
|
-
manufacturer: {
|
|
229
|
-
"@type": "Organization",
|
|
230
|
-
"@id": "https://ailaunchkit.ai/#organization",
|
|
231
|
-
name: "SalesSmyth LLC",
|
|
232
|
-
},
|
|
233
|
-
brand: {
|
|
234
|
-
"@type": "Brand",
|
|
235
|
-
name: "Working Theory",
|
|
236
|
-
url: "https://workingtheory.ai",
|
|
237
|
-
},
|
|
238
|
-
creator: { "@type": "Person", name: "Sam Henry" },
|
|
239
|
-
offers: [
|
|
240
|
-
{
|
|
241
|
-
"@type": "Offer",
|
|
242
|
-
name: "Free (OSS)",
|
|
243
|
-
price: "0",
|
|
244
|
-
priceCurrency: "USD",
|
|
245
|
-
},
|
|
246
|
-
{ "@type": "Offer", name: "Pro", price: "249", priceCurrency: "USD" },
|
|
247
|
-
{
|
|
248
|
-
"@type": "Offer",
|
|
249
|
-
name: "Pro Plus",
|
|
250
|
-
price: "449",
|
|
251
|
-
priceCurrency: "USD",
|
|
252
|
-
},
|
|
253
|
-
{
|
|
254
|
-
"@type": "Offer",
|
|
255
|
-
name: "Launch Service",
|
|
256
|
-
price: "2495",
|
|
257
|
-
priceCurrency: "USD",
|
|
258
|
-
},
|
|
259
|
-
],
|
|
260
|
-
},
|
|
261
|
-
{
|
|
262
|
-
"@type": "FAQPage",
|
|
263
|
-
"@id": "https://ailaunchkit.ai/faq#webpage",
|
|
264
|
-
url: "https://ailaunchkit.ai/faq",
|
|
265
|
-
name: "AI Launch Kit — Frequently Asked Questions",
|
|
266
|
-
description:
|
|
267
|
-
"Answers to the real questions about AI Launch Kit — pre-launch risk, fleet management, Working Theory ties, Next.js requirements, WordPress migration, and Apache 2.0 licensing.",
|
|
268
|
-
isPartOf: { "@id": "https://ailaunchkit.ai/#product" },
|
|
269
|
-
mainEntity: [
|
|
270
|
-
{
|
|
271
|
-
"@type": "Question",
|
|
272
|
-
name: "You're pre-launch. Why bet on this?",
|
|
273
|
-
acceptedAnswer: {
|
|
274
|
-
"@type": "Answer",
|
|
275
|
-
text: "The architecture is observable in the repo, not a pitch deck. The typed schema registry is a directory of 60 entries, the parity test runs in CI, and the audit CLI runs today. You're not taking our word for any of it.",
|
|
276
|
-
},
|
|
277
|
-
},
|
|
278
|
-
{
|
|
279
|
-
"@type": "Question",
|
|
280
|
-
name: "Is the architecture real, or just a pitch?",
|
|
281
|
-
acceptedAnswer: {
|
|
282
|
-
"@type": "Answer",
|
|
283
|
-
text: "It's real and checkable. `apps/web`, `apps/mcp`, and `apps/api` run as peer apps in one repo, with a CI-enforced parity test and a live `.well-known/mcp.json` endpoint. Clone the repo and verify it yourself — the `ailk audit` CLI runs against any AILK site, including this one.",
|
|
284
|
-
},
|
|
285
|
-
},
|
|
286
|
-
{
|
|
287
|
-
"@type": "Question",
|
|
288
|
-
name: "What happens if AILK doesn't find traction?",
|
|
289
|
-
acceptedAnswer: {
|
|
290
|
-
"@type": "Answer",
|
|
291
|
-
text: "You keep everything. AILK ships under Apache 2.0, so the codebase belongs to you regardless of what happens to the company behind it. No lock-in, no dependency on a vendor's survival — the license itself bounds the downside.",
|
|
292
|
-
},
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
"@type": "Question",
|
|
296
|
-
name: "Do you have customer proof yet?",
|
|
297
|
-
acceptedAnswer: {
|
|
298
|
-
"@type": "Answer",
|
|
299
|
-
text: "Not yet from outside the founding team, and we're not pretending otherwise. Sam Henry, Working Theory, and SalesSmyth all publish on AILK today — that's real dogfooding, not a case study. Independent customer proof builds over the next 90–180 days as Launch Service and Pro customers come on.",
|
|
300
|
-
},
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
"@type": "Question",
|
|
304
|
-
name: "We run a portfolio of client sites. Where's fleet management?",
|
|
305
|
-
acceptedAnswer: {
|
|
306
|
-
"@type": "Answer",
|
|
307
|
-
text: "Deferred. Fleet management, cross-site rollup, white-label, and per-seat licensing are planned as a future Enterprise multi-tenant entitlement, not a separate tier. At launch, agencies deliver on OSS plus Pro, managed per-site rather than as a fleet.",
|
|
308
|
-
},
|
|
309
|
-
},
|
|
310
|
-
{
|
|
311
|
-
"@type": "Question",
|
|
312
|
-
name: "When will Fleet Management ship?",
|
|
313
|
-
acceptedAnswer: {
|
|
314
|
-
"@type": "Answer",
|
|
315
|
-
text: "No fixed date. It lands in that same post-launch window, and the exact timing depends on demand for the entitlement. It ships once the core substrate is proven at single-site scale first.",
|
|
316
|
-
},
|
|
317
|
-
},
|
|
318
|
-
{
|
|
319
|
-
"@type": "Question",
|
|
320
|
-
name: "How do I manage multiple client sites today, before fleet management ships?",
|
|
321
|
-
acceptedAnswer: {
|
|
322
|
-
"@type": "Answer",
|
|
323
|
-
text: "Per-site, on OSS or Pro. Each client site is its own AILK deploy with its own repo, schema registry, and audit run. There's no fleet dashboard yet — that's the gap fleet management closes. Nothing stops you from running several client sites in parallel today.",
|
|
324
|
-
},
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
"@type": "Question",
|
|
328
|
-
name: "Is there a discount for managing many sites on Pro?",
|
|
329
|
-
acceptedAnswer: {
|
|
330
|
-
"@type": "Answer",
|
|
331
|
-
text: "Not currently. Pro is priced per user per year ($249), not per site, so an agency running several client sites on one Pro seat pays the same rate regardless of site count. Volume-based agency pricing arrives with the Enterprise multi-tenant entitlement.",
|
|
332
|
-
},
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
"@type": "Question",
|
|
336
|
-
name: "How does this relate to Working Theory Platform? Am I locked in?",
|
|
337
|
-
acceptedAnswer: {
|
|
338
|
-
"@type": "Answer",
|
|
339
|
-
text: "You're not locked in. AILK works fully standalone. Working Theory Platform is a separate product — growth marketing as a system that publishes into AILK with the deepest integration available. Neither product requires the other.",
|
|
340
|
-
},
|
|
341
|
-
},
|
|
342
|
-
{
|
|
343
|
-
"@type": "Question",
|
|
344
|
-
name: "Do I need Working Theory Platform to use AILK?",
|
|
345
|
-
acceptedAnswer: {
|
|
346
|
-
"@type": "Answer",
|
|
347
|
-
text: "No. Clone AILK, deploy it, run it — none of that touches Working Theory Platform. Platform is the recommended layer for customers who also want ongoing growth marketing; it isn't a requirement to use AILK.",
|
|
348
|
-
},
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
"@type": "Question",
|
|
352
|
-
name: "We're not Next.js native. Is this still for us?",
|
|
353
|
-
acceptedAnswer: {
|
|
354
|
-
"@type": "Answer",
|
|
355
|
-
text: "Yes, if AI search visibility is the deliverable you're selling. Launch Service is the path — a fixed-scope two-week deploy onto the substrate. Your team owns content and citation work from there. Next.js fluency helps. It isn't required.",
|
|
356
|
-
},
|
|
357
|
-
},
|
|
358
|
-
{
|
|
359
|
-
"@type": "Question",
|
|
360
|
-
name: "Do I need to write MDX myself?",
|
|
361
|
-
acceptedAnswer: {
|
|
362
|
-
"@type": "Answer",
|
|
363
|
-
text: "No. Launch Service handles the build; your team works in content and citation strategy from there, with no MDX or build pipeline required on your end. Teams that want to write MDX directly can — it's the foundation's native content format.",
|
|
364
|
-
},
|
|
365
|
-
},
|
|
366
|
-
{
|
|
367
|
-
"@type": "Question",
|
|
368
|
-
name: "Can I migrate my existing WordPress site to AILK?",
|
|
369
|
-
acceptedAnswer: {
|
|
370
|
-
"@type": "Answer",
|
|
371
|
-
text: "Yes, though AILK isn't positioned as a migration tool — it's a foundation you rebuild on. Content and schema get recreated on AILK's typed page structure rather than imported wholesale, since the underlying data models don't match a plugin-based WordPress stack.",
|
|
372
|
-
},
|
|
373
|
-
},
|
|
374
|
-
{
|
|
375
|
-
"@type": "Question",
|
|
376
|
-
name: "What happens to my existing SEO rankings during a move off WordPress?",
|
|
377
|
-
acceptedAnswer: {
|
|
378
|
-
"@type": "Answer",
|
|
379
|
-
text: "Rankings depend on redirect discipline and content parity, not the platform switch itself. A well-executed move preserves URLs where possible and 301s the rest. It typically improves the schema and entity markup that WordPress plugin stacks handle inconsistently.",
|
|
380
|
-
},
|
|
381
|
-
},
|
|
382
|
-
{
|
|
383
|
-
"@type": "Question",
|
|
384
|
-
name: "How long does a WordPress migration take?",
|
|
385
|
-
acceptedAnswer: {
|
|
386
|
-
"@type": "Answer",
|
|
387
|
-
text: "Launch Service runs a fixed two-week scope for a new AILK deploy. Actual migration timeline depends on how much existing content needs to be recreated. A small brochure site fits inside two weeks; larger content libraries take longer to fully port over.",
|
|
388
|
-
},
|
|
389
|
-
},
|
|
390
|
-
{
|
|
391
|
-
"@type": "Question",
|
|
392
|
-
name: "What's the difference between Free, Pro, and Pro Plus?",
|
|
393
|
-
acceptedAnswer: {
|
|
394
|
-
"@type": "Answer",
|
|
395
|
-
text: "Free is the Apache 2.0 OSS foundation — complete, not crippled. Pro adds capability at $249 per user per year. Pro Plus adds ongoing care at $449 per user per month. Paid tiers build on the free foundation; they never gate access to it.",
|
|
396
|
-
},
|
|
397
|
-
},
|
|
398
|
-
{
|
|
399
|
-
"@type": "Question",
|
|
400
|
-
name: "Is the OSS version really free forever?",
|
|
401
|
-
acceptedAnswer: {
|
|
402
|
-
"@type": "Answer",
|
|
403
|
-
text: "Yes. AILK's OSS layer is Apache 2.0 — not source-available, not \"free until you make money,\" and not deliberately crippled to push a paid tier. It's structurally complete today, and it stays that way regardless of what paid tiers add later.",
|
|
404
|
-
},
|
|
405
|
-
},
|
|
406
|
-
{
|
|
407
|
-
"@type": "Question",
|
|
408
|
-
name: "What license does AILK use?",
|
|
409
|
-
acceptedAnswer: {
|
|
410
|
-
"@type": "Answer",
|
|
411
|
-
text: "Apache 2.0, the permissive open-source license, published on GitHub with no dual-licensing traps. Clone it. Modify it. Deploy it commercially — no royalty obligations back to Working Theory.",
|
|
412
|
-
},
|
|
413
|
-
},
|
|
414
|
-
],
|
|
415
|
-
},
|
|
416
|
-
],
|
|
417
|
-
}}
|
|
418
|
-
/>
|
|
419
|
-
|
|
420
|
-
{/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. Landed by land-section-catalog.py (#3111). */}
|
|
38
|
+
{/* Rendered from frontmatter `sections[]`. Each question/answer pair is emitted as schema.org FAQPage structured data — keep answers self-contained. */}
|