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.
- package/README.md +124 -3
- package/component-catalog.md +456 -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 +12 -5
- 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 +78 -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 +241 -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 +558 -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 +869 -0
- package/templates/apps/api/src/routes/project-listings/__tests__/me-route-precedence.test.ts +221 -0
- package/templates/apps/api/src/routes/project-listings/__tests__/me.test.ts +468 -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-answers.test.ts +707 -0
- package/templates/apps/api/src/routes/project-listings/__tests__/site-key.test.ts +375 -0
- package/templates/apps/api/src/routes/project-listings/__tests__/structured-address.test.ts +467 -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 +120 -0
- package/templates/apps/api/src/routes/project-listings/list.ts +47 -0
- package/templates/apps/api/src/routes/project-listings/me.ts +76 -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 +106 -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 +307 -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__/consent-migration.test.ts +65 -0
- package/templates/apps/api/src/services/__tests__/consent.test.ts +282 -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__/listing-promotion.test.ts +684 -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/consent.ts +236 -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 +1296 -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/listing-promotion.ts +342 -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 +510 -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 +1472 -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 +127 -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 +90 -27
- package/templates/apps/web/lib/__tests__/site-brand.test.ts +119 -0
- package/templates/apps/web/lib/__tests__/site-theme.test.ts +112 -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 +121 -0
- package/templates/apps/web/lib/site-theme.ts +74 -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 +17 -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 +36 -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 +443 -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 +574 -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/migrations/20260911140000_listing_structured_address/migration.sql +32 -0
- package/templates/database/migrations/20260911180000_consent_grants/migration.sql +71 -0
- package/templates/database/migrations/20260911200000_listing_site_answers/migration.sql +30 -0
- package/templates/database/migrations/20260912120000_listing_owner_link/migration.sql +49 -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/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,123 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: HomePage
|
|
3
|
-
slug: home
|
|
4
|
-
title: AI Launch Kit — أساس الموقع الإلكتروني مفتوح المصدر لإنترنت عصر الذكاء الاصطناعي
|
|
5
|
-
description: قالب مفتوح المصدر Apache 2.0 مُصمَّم لبحث الذكاء الاصطناعي. جاهز للوكلاء، مُقيَّم بمعايير AEO، قابل للنشر في أيام.
|
|
6
|
-
sections:
|
|
7
|
-
- id: hero-1
|
|
8
|
-
type: hero
|
|
9
|
-
data:
|
|
10
|
-
variant: centered
|
|
11
|
-
headline: AI Launch Kit — أساس الموقع الإلكتروني مفتوح المصدر لإنترنت عصر الذكاء الاصطناعي
|
|
12
|
-
subheadline: قالب مفتوح المصدر Apache 2.0 مُصمَّم لبحث الذكاء الاصطناعي. جاهز للوكلاء، مُقيَّم بمعايير AEO، قابل للنشر في أيام.
|
|
13
|
-
body: مبني من قِبَل فريق Working Theory ومُستخدَم لتشغيل Sam Henry وWorking Theory وSalesSmyth على نفس البنية التحتية. ثلاثة مسارات أدناه. اختر الذي يناسبك.
|
|
14
|
-
primaryCta:
|
|
15
|
-
label: اختر مسارك
|
|
16
|
-
href: "#choose-your-path"
|
|
17
|
-
secondaryCta:
|
|
18
|
-
label: نجوم على GitHub
|
|
19
|
-
href: https://github.com/working-theory/ai-launch-kit
|
|
20
|
-
external: true
|
|
21
|
-
|
|
22
|
-
- id: stats-1
|
|
23
|
-
type: stats
|
|
24
|
-
data:
|
|
25
|
-
variant: tiles
|
|
26
|
-
headline: مبني ليُستشهد به منذ اليوم الأول
|
|
27
|
-
items:
|
|
28
|
-
- value: "45"
|
|
29
|
-
label: أنواع مخطط الصفحة
|
|
30
|
-
- value: "21"
|
|
31
|
-
label: أنواع الأقسام
|
|
32
|
-
- value: "14"
|
|
33
|
-
label: أدوات MCP
|
|
34
|
-
- value: Apache 2.0
|
|
35
|
-
label: الرخصة
|
|
36
|
-
|
|
37
|
-
- id: content-block-1
|
|
38
|
-
type: content-block
|
|
39
|
-
data:
|
|
40
|
-
variant: narrow
|
|
41
|
-
headline: الصفحة هي وحدة الاستشهاد، وليس الموقع بأكمله
|
|
42
|
-
body: |
|
|
43
|
-
عندما يوصي نموذج ذكاء اصطناعي بشركة ما، فإنه يجمع التوصية من صفحات فردية
|
|
44
|
-
قرأها ونسبها إلى علامة تجارية ووثق بها بما يكفي لاقتباسها. العلامة التجارية التي يُستشهد
|
|
45
|
-
بها هي العلامة التجارية التي قُرئت صفحاتها بشكل صحيح.
|
|
46
|
-
|
|
47
|
-
المواقع التي لا تحتوي على كيانات مُعلَنة تخسر في خطوة الإسناد. لا يستطيع النموذج
|
|
48
|
-
تحديد الكيان الذي تنتمي إليه الصفحة، لذا يستشهد بمنافس كانت صفحته أوضح.
|
|
49
|
-
ويفشل عمل AEO بصمت عند هذه النقطة.
|
|
50
|
-
|
|
51
|
-
- id: feature-1
|
|
52
|
-
type: feature
|
|
53
|
-
data:
|
|
54
|
-
variant: alternating
|
|
55
|
-
headline: أربع قدرات هيكلية تجعل الموقع قابلاً للاستشهاد به منذ وقت النشر
|
|
56
|
-
description: >
|
|
57
|
-
كل قدرة قابلة للتحقق اليوم — ليست وعداً في خارطة الطريق.
|
|
58
|
-
انسخ المستودع وشغِّل ailk audit لترى بنفسك.
|
|
59
|
-
features:
|
|
60
|
-
- title: سجل مخططات مُصنَّفة
|
|
61
|
-
description: >
|
|
62
|
-
45 نوع صفحة تُعلِن كل كيان بشكل صحيح. النموذج يعرف موضوع الصفحة
|
|
63
|
-
والشركة التي تنتمي إليها.
|
|
64
|
-
icon: database
|
|
65
|
-
- title: خادم MCP من الدرجة الأولى
|
|
66
|
-
description: >
|
|
67
|
-
تكافؤ مُطبَّق في CI مع واجهة المستخدم البشرية. الوكلاء الذين يبحثون نيابة عن
|
|
68
|
-
المشتري يجدون نفس السطح، وليس تقريباً متدهوراً.
|
|
69
|
-
icon: bot
|
|
70
|
-
- title: CLI لتسجيل نقاط AEO
|
|
71
|
-
description: >
|
|
72
|
-
يُشغِّل ailk audit فحوصات الاستشهاد في CI قبل إطلاق الموقع.
|
|
73
|
-
المشاكل الهيكلية تُكتَشف في CI، وليس بعد ثلاثة أشهر من الإطلاق.
|
|
74
|
-
icon: check-circle
|
|
75
|
-
- title: سقالة مُساعَدة بالذكاء الاصطناعي
|
|
76
|
-
description: >
|
|
77
|
-
من العلامة التجارية المرجعية إلى الموقع المُنشَر في أيام. مسارات السقالة
|
|
78
|
-
تستهدف وكلاء Claude Code بمسار تثبيت قابل للتكرار.
|
|
79
|
-
icon: zap
|
|
80
|
-
|
|
81
|
-
- id: items-1
|
|
82
|
-
type: items
|
|
83
|
-
data:
|
|
84
|
-
headline: اختر مسارك
|
|
85
|
-
description: ثلاثة مسارات، بنية تحتية واحدة. كل بطاقة تقودك إلى الصفحة المكتوبة لدورك.
|
|
86
|
-
columns: 3
|
|
87
|
-
items:
|
|
88
|
-
- title: أدير وكالة بحث الذكاء الاصطناعي
|
|
89
|
-
description: AILK هو البنية التحتية لإطلاق مواقع الشركات الصغيرة والمتوسطة التي تعمل للوكلاء والبشر منذ اليوم الأول.
|
|
90
|
-
icon: briefcase
|
|
91
|
-
link:
|
|
92
|
-
label: اقرأ أطروحة الوكالة
|
|
93
|
-
href: /partners
|
|
94
|
-
- title: أنا مطور أو مستقل
|
|
95
|
-
description: مستودع Apache 2.0. pnpm create ailk@latest للسقالة؛ ailk audit للتسجيل؛ النشر على Vercel من نسخة جديدة.
|
|
96
|
-
icon: code
|
|
97
|
-
link:
|
|
98
|
-
label: افتح توثيقات المطور
|
|
99
|
-
href: /docs
|
|
100
|
-
- title: وكالة أخبرتني للنظر في هذا
|
|
101
|
-
description: AILK هو أساس الموقع الذي تستخدمه وكالتك. ChatGPT وClaude يستطيعان قراءة الصفحات المبنية عليه.
|
|
102
|
-
icon: users
|
|
103
|
-
link:
|
|
104
|
-
label: اعرف ما تبني وكالتك عليه
|
|
105
|
-
href: /for-businesses
|
|
106
|
-
|
|
107
|
-
- id: cta-1
|
|
108
|
-
type: cta
|
|
109
|
-
data:
|
|
110
|
-
variant: box
|
|
111
|
-
headline: اختر مساراً
|
|
112
|
-
description: ثلاثة مسارات من هنا. اختر المكتوب لك، أو نجِّم AILK على GitHub وارجع عندما تكون مستعداً.
|
|
113
|
-
primaryCta:
|
|
114
|
-
label: أدير وكالة بحث الذكاء الاصطناعي
|
|
115
|
-
href: /partners
|
|
116
|
-
secondaryCta:
|
|
117
|
-
label: نجِّم AILK على GitHub
|
|
118
|
-
href: https://github.com/working-theory/ai-launch-kit
|
|
119
|
-
external: true
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
<!-- محتوى MDX محفوظ لمحولات المحتوى التي تستخدمه، لكن الصفحة تعرض من أقسام frontmatter. -->
|
|
123
|
-
<!-- RTL test page — Arabic placeholder content for architecture verification (TWP2-IV) -->
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
version: "1"
|
|
3
|
-
siteName: AI Launch Kit
|
|
4
|
-
baseUrl: https://ailaunchkit.ai
|
|
5
|
-
defaultLocale: ar
|
|
6
|
-
siteIdentity:
|
|
7
|
-
kind: Organization
|
|
8
|
-
name: AI Launch Kit
|
|
9
|
-
url: https://ailaunchkit.ai
|
|
10
|
-
logo: https://ailaunchkit.ai/opengraph-image.png
|
|
11
|
-
description: >
|
|
12
|
-
AI Launch Kit هو الأساس مفتوح المصدر للمواقع الإلكترونية في إنترنت عصر الذكاء الاصطناعي.
|
|
13
|
-
Apache 2.0، جاهز للوكلاء، مُقيَّم بمعايير AEO، قابل للنشر في أيام.
|
|
14
|
-
sameAs:
|
|
15
|
-
- https://github.com/tailwind-ai/ai-launch-kit
|
|
16
|
-
foundingDate: "2024"
|
|
17
|
-
founderName: Sam Henry
|
|
18
|
-
analytics:
|
|
19
|
-
vercelAnalytics: true
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
<!--
|
|
23
|
-
Locale-specific site configuration for the 'ar' (Arabic) locale.
|
|
24
|
-
This is an RTL test locale — Arabic is not in the active production locale set.
|
|
25
|
-
Its purpose is to exercise the RTL layout architecture (ADR-0019, spec TWP2-IV).
|
|
26
|
-
|
|
27
|
-
RTL direction: <html dir="rtl" lang="ar"> is set conditionally in
|
|
28
|
-
app/[locale]/layout.tsx for the 'ar' locale (and any future RTL locales).
|
|
29
|
-
|
|
30
|
-
Per-route font: Arabic pages fall back to the Inter (en) font — no dedicated
|
|
31
|
-
Arabic font is registered in the LOCALE_FONTS registry for the test locale.
|
|
32
|
-
Production Arabic adoption would add a Noto Sans Arabic or IBM Plex Arabic entry.
|
|
33
|
-
|
|
34
|
-
Theme fonts for this locale: Inter (fallback — no ar entry in LOCALE_FONTS registry).
|
|
35
|
-
-->
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
version: "1"
|
|
3
|
-
siteName: AI Launch Kit
|
|
4
|
-
baseUrl: https://ailaunchkit.ai
|
|
5
|
-
defaultLocale: de
|
|
6
|
-
siteIdentity:
|
|
7
|
-
kind: Organization
|
|
8
|
-
name: AI Launch Kit
|
|
9
|
-
url: https://ailaunchkit.ai
|
|
10
|
-
logo: https://ailaunchkit.ai/opengraph-image.png
|
|
11
|
-
description: >
|
|
12
|
-
AI Launch Kit ist die Open-Source-Website-Grundlage für das agentenzentrierte
|
|
13
|
-
Internet. Apache 2.0, agentenbereit, AEO-bewertet, in Tagen einsatzbereit.
|
|
14
|
-
sameAs:
|
|
15
|
-
- https://github.com/tailwind-ai/ai-launch-kit
|
|
16
|
-
foundingDate: "2024"
|
|
17
|
-
founderName: Sam Henry
|
|
18
|
-
analytics:
|
|
19
|
-
vercelAnalytics: true
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
<!--
|
|
23
|
-
Locale-specific site configuration for the 'de' (German) locale.
|
|
24
|
-
Theme fonts for this locale are declared in app/[locale]/layout.tsx
|
|
25
|
-
under the LOCALE_FONTS registry (locale key: "de" → IBM Plex Sans).
|
|
26
|
-
|
|
27
|
-
Per-route font scoping: German pages ship IBM Plex Sans (Latin-ext + umlauts).
|
|
28
|
-
Japanese font (Noto Sans JP) is NOT registered on German pages.
|
|
29
|
-
-->
|
|
File without changes
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"@context": "https://schema.org",
|
|
3
|
-
"@graph": [
|
|
4
|
-
{
|
|
5
|
-
"@type": "Product",
|
|
6
|
-
"additionalType": "SoftwareApplication",
|
|
7
|
-
"@id": "https://ailaunchkit.ai/#product",
|
|
8
|
-
"name": "AI Launch Kit",
|
|
9
|
-
"alternateName": [
|
|
10
|
-
"AI Launch Kit by Working Theory",
|
|
11
|
-
"AILK by Working Theory",
|
|
12
|
-
"AILK",
|
|
13
|
-
"@ailaunchkit",
|
|
14
|
-
"@ailk",
|
|
15
|
-
"@working-theory",
|
|
16
|
-
"ai-launch-kit"
|
|
17
|
-
],
|
|
18
|
-
"url": "https://ailaunchkit.ai",
|
|
19
|
-
"description": "AI Launch Kit is the open-source website foundation for the agent-first internet — Apache 2.0, agent-ready, AEO-scored, deployable in days.",
|
|
20
|
-
"sameAs": [
|
|
21
|
-
"https://github.com/working-theory-labs/ai-launch-kit",
|
|
22
|
-
"https://x.com/ailaunchkit",
|
|
23
|
-
"https://www.npmjs.com/org/ailk",
|
|
24
|
-
"https://youtube.com/@working-theory",
|
|
25
|
-
"https://linkedin.com/company/working-theory"
|
|
26
|
-
],
|
|
27
|
-
"foundingDate": "2026",
|
|
28
|
-
"category": "Open-source website foundation",
|
|
29
|
-
"applicationCategory": "DeveloperApplication",
|
|
30
|
-
"operatingSystem": "Cross-platform (Node.js)",
|
|
31
|
-
"license": "https://www.apache.org/licenses/LICENSE-2.0",
|
|
32
|
-
"codeRepository": "https://github.com/working-theory-labs/ai-launch-kit",
|
|
33
|
-
"manufacturer": {
|
|
34
|
-
"@type": "Organization",
|
|
35
|
-
"@id": "https://ailaunchkit.ai/#salessmyth",
|
|
36
|
-
"name": "SalesSmyth LLC"
|
|
37
|
-
},
|
|
38
|
-
"brand": {
|
|
39
|
-
"@type": "Brand",
|
|
40
|
-
"@id": "https://workingtheory.ai/#brand",
|
|
41
|
-
"name": "Working Theory",
|
|
42
|
-
"url": "https://workingtheory.ai"
|
|
43
|
-
},
|
|
44
|
-
"creator": {
|
|
45
|
-
"@type": "Person",
|
|
46
|
-
"@id": "https://samhenry.org/#person",
|
|
47
|
-
"name": "Sam Henry",
|
|
48
|
-
"url": "https://samhenry.org"
|
|
49
|
-
},
|
|
50
|
-
"contributor": [
|
|
51
|
-
{
|
|
52
|
-
"@type": "SoftwareApplication",
|
|
53
|
-
"name": "Claudio Planck",
|
|
54
|
-
"description": "AI engineering agent contributing across the AILK substrate."
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"@type": "SoftwareApplication",
|
|
58
|
-
"name": "Anders Stewart",
|
|
59
|
-
"description": "AI VP Engineering agent, coordinating with the human team on shipped work."
|
|
60
|
-
}
|
|
61
|
-
]
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"@type": "AboutPage",
|
|
65
|
-
"@id": "https://ailaunchkit.ai/about/#webpage",
|
|
66
|
-
"url": "https://ailaunchkit.ai/about",
|
|
67
|
-
"name": "About",
|
|
68
|
-
"description": "Sam Henry, Working Theory, and SalesSmyth all run on AI Launch Kit. Meet the team building the open-source foundation for the agent-first internet.",
|
|
69
|
-
"isPartOf": {
|
|
70
|
-
"@id": "https://ailaunchkit.ai/#product"
|
|
71
|
-
},
|
|
72
|
-
"mainEntity": {
|
|
73
|
-
"@type": "Organization",
|
|
74
|
-
"@id": "https://ailaunchkit.ai/#salessmyth",
|
|
75
|
-
"name": "SalesSmyth LLC"
|
|
76
|
-
},
|
|
77
|
-
"about": {
|
|
78
|
-
"@id": "https://ailaunchkit.ai/#product"
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
]
|
|
82
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "BookCall"
|
|
3
|
-
slug: "book-call"
|
|
4
|
-
title: "Book your AILK intro call."
|
|
5
|
-
description: "Book a 20-minute AILK intro call to confirm whether Pro, Pro Plus, or Launch Service fits — and agree your next step."
|
|
6
|
-
sections: [{"id": "hero-book-call", "type": "hero", "data": {"badge": "For agencies and developers evaluating Pro, Pro Plus, or Launch Service", "headline": "Book your AILK intro call.", "subheadline": "In 20 minutes, we confirm whether Pro, Pro Plus, or Launch Service fits — then agree the next step. No pitch deck, no pressure.", "primaryCta": {"label": "Book the call", "href": "/book-call#schedule"}}}, {"id": "what-happens-on-the-call", "type": "items", "data": {"headline": "What happens on the call?", "description": "The call has one job: confirm fit and agree a next step. Here's what the 20 minutes cover.", "items": [{"title": "Confirm which tier fits", "description": "We walk through what you're building and land on the tier that matches — Pro, Pro Plus, or Launch Service. Pricing for each is below."}, {"title": "Walk the substrate that matters to you", "description": "We show the parts of AILK that matter for your case: the schema registry, the peer-surfaces architecture, or the Launch Service scope."}, {"title": "Agree the next step", "description": "You leave with a decision: start a Pro trial, book the Launch Service scope, or take time to think it over. Either way, you know the path."}]}}, {"id": "which-path-fits-you", "type": "items", "data": {"headline": "Which path fits you?", "description": "Three paths, depending on where your team is.", "items": [{"title": "Pro — $249/user/year", "description": "For agencies and developers standardizing their stack who want the full capability set, self-serve."}, {"title": "Pro Plus — $449/user/month", "description": "Pro with ongoing care — for teams that want the substrate managed, not just licensed."}, {"title": "Launch Service — $2,495", "description": "A fixed-scope two-week deploy for agencies or SMB owners who want the foundation shipped, not built."}]}}, {"id": "before-you-book", "type": "faq", "data": {"headline": "Before you book", "items": [{"question": "AILK is pre-launch. Why book a call now?", "answer": "The architecture is in the repo, not on a slide deck — the schema registry, the CI-enforced parity, and the audit CLI all run today. The call is where we show you the substrate directly, not where you take our word for it."}, {"question": "Do I have to choose between Pro and Launch Service?", "answer": "No. They're not either/or. Launch Service gets the foundation deployed; Pro is the ongoing license for the team running it. Most agency engagements end up using both."}, {"question": "What if I'm not sure which tier I need yet?", "answer": "That's what the call resolves. Tell us what you're building and we'll tell you honestly which tier fits — including if the honest answer is none of these yet."}]}}, {"id": "or-reach-us-directly", "type": "contact-channels", "data": {"headline": "Prefer email?", "items": [{"icon": "mail", "headline": "Email us directly", "description": "Reach the team at hello@ailaunchkit.ai. We respond within one business day, 09:00–17:00 America/Denver.", "cta": {"label": "Email hello@ailaunchkit.ai", "href": "mailto:hello@ailaunchkit.ai"}}]}}, {"id": "final-booking-nudge", "type": "cta", "data": {"headline": "Ready when you are", "description": "Book the call. Twenty minutes, one outcome: you know which path fits.", "primaryCta": {"label": "Book the call", "href": "/book-call#schedule"}}}]
|
|
7
|
-
status: "Approved"
|
|
8
|
-
pageKey: "BookCall"
|
|
9
|
-
entity: "ailaunchkit"
|
|
10
|
-
urlSlug: "book-call"
|
|
11
|
-
lastUpdated: "2026-07-06"
|
|
12
|
-
pageLevelSchemaType: "BookCall"
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
import { JsonLd } from '@/components/JsonLd'
|
|
16
|
-
|
|
17
|
-
<JsonLd data={{"@context": "https://schema.org", "@graph": [{"@type": ["Product", "SoftwareApplication"], "@id": "https://ailaunchkit.ai/#product", "name": "AI Launch Kit", "alternateName": ["AI Launch Kit by Working Theory", "AILK by Working Theory", "AILK", "@ailaunchkit", "@ailk", "@working-theory", "ai-launch-kit"], "url": "https://ailaunchkit.ai", "description": "AI Launch Kit is the open-source website foundation for the agent-first internet — Apache 2.0, agent-ready, AEO-scored, deployable in days.", "sameAs": ["https://github.com/working-theory-labs/ai-launch-kit", "https://x.com/ailaunchkit", "https://www.npmjs.com/org/ailk", "https://youtube.com/@working-theory", "https://linkedin.com/company/working-theory"], "foundingDate": "2026", "manufacturer": {"@type": "Organization", "name": "SalesSmyth LLC", "url": "https://ailaunchkit.ai/#organization"}, "brand": {"@type": "Brand", "name": "Working Theory", "url": "https://workingtheory.ai"}, "creator": {"@type": "Person", "name": "Sam Henry", "url": "https://samhenry.org"}, "category": "Open-source website foundation", "applicationCategory": "DeveloperApplication", "operatingSystem": "Cross-platform (Node.js)", "license": "https://www.apache.org/licenses/LICENSE-2.0", "codeRepository": "https://github.com/working-theory-labs/ai-launch-kit", "offers": [{"@type": "Offer", "name": "Free (OSS, Apache 2.0)", "price": "0", "priceCurrency": "USD"}, {"@type": "Offer", "name": "Pro", "price": "249", "priceCurrency": "USD", "description": "Per user per year"}, {"@type": "Offer", "name": "Pro Plus", "price": "449", "priceCurrency": "USD", "description": "Per user per month"}, {"@type": "Offer", "name": "Launch Service", "price": "2495", "priceCurrency": "USD", "description": "Fixed-scope two-week deploy"}]}, {"@type": "WebPage", "@id": "https://ailaunchkit.ai/book-call#webpage", "url": "https://ailaunchkit.ai/book-call", "name": "Book your AILK intro call", "description": "Book a 20-minute AILK intro call to confirm whether Pro, Pro Plus, or Launch Service fits — and agree your next step.", "isPartOf": {"@id": "https://ailaunchkit.ai/#product"}, "mainEntity": {"@type": "FAQPage", "@id": "https://ailaunchkit.ai/book-call#faq", "mainEntity": [{"@type": "Question", "name": "AILK is pre-launch. Why book a call now?", "acceptedAnswer": {"@type": "Answer", "text": "The architecture is in the repo, not on a slide deck — the schema registry, the CI-enforced parity, and the audit CLI all run today. The call is where we show you the substrate directly, not where you take our word for it."}}, {"@type": "Question", "name": "Do I have to choose between Pro and Launch Service?", "acceptedAnswer": {"@type": "Answer", "text": "No. They're not either/or. Launch Service gets the foundation deployed; Pro is the ongoing license for the team running it. Most agency engagements end up using both."}}, {"@type": "Question", "name": "What if I'm not sure which tier I need yet?", "acceptedAnswer": {"@type": "Answer", "text": "That's what the call resolves. Tell us what you're building and we'll tell you honestly which tier fits — including if the honest answer is none of these yet."}}]}}]}} />
|
|
18
|
-
|
|
19
|
-
{/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. Landed by land-section-catalog.py (#3111). */}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"@context": "https://schema.org",
|
|
3
|
-
"@graph": [
|
|
4
|
-
{
|
|
5
|
-
"@type": [
|
|
6
|
-
"Product",
|
|
7
|
-
"SoftwareApplication"
|
|
8
|
-
],
|
|
9
|
-
"@id": "https://ailaunchkit.ai/#product",
|
|
10
|
-
"name": "AI Launch Kit",
|
|
11
|
-
"alternateName": [
|
|
12
|
-
"AI Launch Kit by Working Theory",
|
|
13
|
-
"AILK by Working Theory",
|
|
14
|
-
"AILK",
|
|
15
|
-
"@ailaunchkit",
|
|
16
|
-
"@ailk",
|
|
17
|
-
"@working-theory",
|
|
18
|
-
"ai-launch-kit"
|
|
19
|
-
],
|
|
20
|
-
"url": "https://ailaunchkit.ai",
|
|
21
|
-
"description": "AI Launch Kit is the open-source website foundation for the agent-first internet — Apache 2.0, agent-ready, AEO-scored, deployable in days.",
|
|
22
|
-
"sameAs": [
|
|
23
|
-
"https://github.com/working-theory-labs/ai-launch-kit",
|
|
24
|
-
"https://x.com/ailaunchkit",
|
|
25
|
-
"https://www.npmjs.com/org/ailk",
|
|
26
|
-
"https://youtube.com/@working-theory",
|
|
27
|
-
"https://linkedin.com/company/working-theory"
|
|
28
|
-
],
|
|
29
|
-
"foundingDate": "2026",
|
|
30
|
-
"manufacturer": {
|
|
31
|
-
"@type": "Organization",
|
|
32
|
-
"name": "SalesSmyth LLC",
|
|
33
|
-
"url": "https://ailaunchkit.ai/#organization"
|
|
34
|
-
},
|
|
35
|
-
"brand": {
|
|
36
|
-
"@type": "Brand",
|
|
37
|
-
"name": "Working Theory",
|
|
38
|
-
"url": "https://workingtheory.ai"
|
|
39
|
-
},
|
|
40
|
-
"creator": {
|
|
41
|
-
"@type": "Person",
|
|
42
|
-
"name": "Sam Henry",
|
|
43
|
-
"url": "https://samhenry.org"
|
|
44
|
-
},
|
|
45
|
-
"category": "Open-source website foundation",
|
|
46
|
-
"applicationCategory": "DeveloperApplication",
|
|
47
|
-
"operatingSystem": "Cross-platform (Node.js)",
|
|
48
|
-
"license": "https://www.apache.org/licenses/LICENSE-2.0",
|
|
49
|
-
"codeRepository": "https://github.com/working-theory-labs/ai-launch-kit",
|
|
50
|
-
"offers": [
|
|
51
|
-
{
|
|
52
|
-
"@type": "Offer",
|
|
53
|
-
"name": "Free (OSS, Apache 2.0)",
|
|
54
|
-
"price": "0",
|
|
55
|
-
"priceCurrency": "USD"
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"@type": "Offer",
|
|
59
|
-
"name": "Pro",
|
|
60
|
-
"price": "249",
|
|
61
|
-
"priceCurrency": "USD",
|
|
62
|
-
"description": "Per user per year"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"@type": "Offer",
|
|
66
|
-
"name": "Pro Plus",
|
|
67
|
-
"price": "449",
|
|
68
|
-
"priceCurrency": "USD",
|
|
69
|
-
"description": "Per user per month"
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"@type": "Offer",
|
|
73
|
-
"name": "Launch Service",
|
|
74
|
-
"price": "2495",
|
|
75
|
-
"priceCurrency": "USD",
|
|
76
|
-
"description": "Fixed-scope two-week deploy"
|
|
77
|
-
}
|
|
78
|
-
]
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"@type": "WebPage",
|
|
82
|
-
"@id": "https://ailaunchkit.ai/book-call#webpage",
|
|
83
|
-
"url": "https://ailaunchkit.ai/book-call",
|
|
84
|
-
"name": "Book your AILK intro call",
|
|
85
|
-
"description": "Book a 20-minute AILK intro call to confirm whether Pro, Pro Plus, or Launch Service fits — and agree your next step.",
|
|
86
|
-
"isPartOf": {
|
|
87
|
-
"@id": "https://ailaunchkit.ai/#product"
|
|
88
|
-
},
|
|
89
|
-
"mainEntity": {
|
|
90
|
-
"@type": "FAQPage",
|
|
91
|
-
"@id": "https://ailaunchkit.ai/book-call#faq",
|
|
92
|
-
"mainEntity": [
|
|
93
|
-
{
|
|
94
|
-
"@type": "Question",
|
|
95
|
-
"name": "AILK is pre-launch. Why book a call now?",
|
|
96
|
-
"acceptedAnswer": {
|
|
97
|
-
"@type": "Answer",
|
|
98
|
-
"text": "The architecture is in the repo, not on a slide deck — the schema registry, the CI-enforced parity, and the audit CLI all run today. The call is where we show you the substrate directly, not where you take our word for it."
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
"@type": "Question",
|
|
103
|
-
"name": "Do I have to choose between Pro and Launch Service?",
|
|
104
|
-
"acceptedAnswer": {
|
|
105
|
-
"@type": "Answer",
|
|
106
|
-
"text": "No. They're not either/or. Launch Service gets the foundation deployed; Pro is the ongoing license for the team running it. Most agency engagements end up using both."
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"@type": "Question",
|
|
111
|
-
"name": "What if I'm not sure which tier I need yet?",
|
|
112
|
-
"acceptedAnswer": {
|
|
113
|
-
"@type": "Answer",
|
|
114
|
-
"text": "That's what the call resolves. Tell us what you're building and we'll tell you honestly which tier fits — including if the honest answer is none of these yet."
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
]
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
]
|
|
121
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{/* Sub-object — not rendered as a standalone page; consumed by the builder embedding this object in other pages' JSON-LD output. */}
|
|
2
|
-
---
|
|
3
|
-
type: BreadcrumbList
|
|
4
|
-
slug: site-breadcrumbs
|
|
5
|
-
title: Site Breadcrumbs
|
|
6
|
-
description: The default breadcrumb trail for AI Launch Kit pages — used in JSON-LD BreadcrumbList output on detail pages.
|
|
7
|
-
schema:
|
|
8
|
-
"@type": BreadcrumbList
|
|
9
|
-
itemListElement:
|
|
10
|
-
- "@type": ListItem
|
|
11
|
-
position: 1
|
|
12
|
-
name: Home
|
|
13
|
-
item: /
|
|
14
|
-
- "@type": ListItem
|
|
15
|
-
position: 2
|
|
16
|
-
name: Products
|
|
17
|
-
item: /products
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
Default breadcrumb template for AI Launch Kit pages, embedded in detail-page JSON-LD output.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: CareersList
|
|
3
|
-
slug: careers
|
|
4
|
-
title: Careers at AI Launch Kit
|
|
5
|
-
description: Join the team building the infrastructure layer for human-agent products. Remote-first, async-friendly, and deeply technical.
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Careers at AI Launch Kit
|
|
9
|
-
|
|
10
|
-
We are a small team building the tooling that lets any product run on human-agent pairs. If you care about structured data, AEO, and the infrastructure layer of the agent era — we want to hear from you.
|
|
11
|
-
|
|
12
|
-
## Open positions
|
|
13
|
-
|
|
14
|
-
- [Senior Full-Stack Engineer](/careers/senior-fullstack-engineer) — build the schema builders, content adapters, and Next.js routes that power AILK
|
|
15
|
-
- [Content Strategist](/careers/content-strategist) — own the content pipeline and AEO optimization
|
|
16
|
-
- [Developer Advocate](/careers/developer-advocate) — help the community succeed and bring feedback back to the product
|
|
17
|
-
|
|
18
|
-
## How we work
|
|
19
|
-
|
|
20
|
-
We are remote-first and async-friendly. Most decisions happen in GitHub issues and PRs, not in meetings. We use AILK to run AILK — the site, the docs, and the job listings are all MDX + structured data.
|
|
21
|
-
|
|
22
|
-
## How to apply
|
|
23
|
-
|
|
24
|
-
Send a note to the contact page with the role you are interested in and a link to your work.
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: CaseStudiesList
|
|
3
|
-
slug: case-studies
|
|
4
|
-
title: Case Studies
|
|
5
|
-
description: Real-world accounts of teams using AI Launch Kit to ship AX-first products — from AEO rollouts to schema migrations and beyond.
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Case Studies
|
|
9
|
-
|
|
10
|
-
These case studies document how teams use the AI Launch Kit toolchain in production. Each story covers the challenge, the approach, and the measurable outcome.
|
|
11
|
-
|
|
12
|
-
## What you'll find here
|
|
13
|
-
|
|
14
|
-
Each case study follows a consistent structure:
|
|
15
|
-
|
|
16
|
-
- **The challenge** — what problem the team faced before AILK
|
|
17
|
-
- **What was built** — which packages and patterns were applied
|
|
18
|
-
- **Outcome** — measured improvements in AEO scores, developer velocity, or citation pickup
|
|
19
|
-
|
|
20
|
-
## Contributing a case study
|
|
21
|
-
|
|
22
|
-
If your team has shipped with AI Launch Kit and would like to share your experience, open an issue on GitHub with the `case-study` label.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: CaseStudiesList
|
|
3
|
-
slug: showcase
|
|
4
|
-
title: "Showcase"
|
|
5
|
-
description: Real-world teams using AI Launch Kit to ship agent-ready, AEO-first sites — from schema rollouts to MCP deployments and beyond.
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
Showcase is coming — real case studies in progress.
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: CaseStudy
|
|
3
|
-
slug: ailk-aeo-rollout
|
|
4
|
-
title: AEO Rollout at AI Launch Kit
|
|
5
|
-
description: How the AI Launch Kit team implemented Answer Engine Optimization across 60 page types, driving a 3× increase in AI-citation pickup within 30 days.
|
|
6
|
-
publishedAt: "2026-05-01"
|
|
7
|
-
schema:
|
|
8
|
-
author:
|
|
9
|
-
"@type": Person
|
|
10
|
-
name: AI Launch Kit Team
|
|
11
|
-
about:
|
|
12
|
-
"@type": Thing
|
|
13
|
-
name: Answer Engine Optimization
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# AEO Rollout at AI Launch Kit
|
|
17
|
-
|
|
18
|
-
When AI Launch Kit shipped Phase 2 of the schema builder layer, the team needed to verify that every page type produced citation-ready structured data. The AEO scoring package became the linchpin of that effort.
|
|
19
|
-
|
|
20
|
-
## The challenge
|
|
21
|
-
|
|
22
|
-
Sixty page types. Each with its own JSON-LD shape. Each needing deterministic, reproducible AEO scores before shipping.
|
|
23
|
-
|
|
24
|
-
## What we built
|
|
25
|
-
|
|
26
|
-
The `@working-theory/aeo` package runs entirely at build time — no network calls, no randomness. Given the same MDX frontmatter, the scorer always returns the same grade. This made it safe to run in CI.
|
|
27
|
-
|
|
28
|
-
## Results
|
|
29
|
-
|
|
30
|
-
- All 60 page types scored above the Layer 1 threshold on first run
|
|
31
|
-
- AI-citation pickup increased 3× within the first month of deployment
|
|
32
|
-
- Zero regressions across 6 subsequent content updates
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: CaseStudy
|
|
3
|
-
slug: schema-builder-migration
|
|
4
|
-
title: Migrating to the Schema Builder Layer
|
|
5
|
-
description: A step-by-step account of how one team replaced hand-rolled JSON-LD with the @working-theory/schema builder package, cutting schema maintenance time by 80%.
|
|
6
|
-
publishedAt: "2026-04-15"
|
|
7
|
-
schema:
|
|
8
|
-
author:
|
|
9
|
-
"@type": Person
|
|
10
|
-
name: AI Launch Kit Team
|
|
11
|
-
about:
|
|
12
|
-
"@type": Thing
|
|
13
|
-
name: Schema.org JSON-LD
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Migrating to the Schema Builder Layer
|
|
17
|
-
|
|
18
|
-
Hand-rolling JSON-LD is error-prone. A single typo in a `@type` value invalidates an entire rich-result opportunity. The `@working-theory/schema` builder layer makes errors impossible by construction.
|
|
19
|
-
|
|
20
|
-
## Before: hand-rolled JSON-LD
|
|
21
|
-
|
|
22
|
-
Every page had a one-off `<script type="application/ld+json">` block. No shared types. No validation. No consistency.
|
|
23
|
-
|
|
24
|
-
## After: typed builders
|
|
25
|
-
|
|
26
|
-
```typescript
|
|
27
|
-
import { buildProductJsonLd } from "@working-theory/schema";
|
|
28
|
-
|
|
29
|
-
const jsonLd = buildProductJsonLd({
|
|
30
|
-
name: "AI Launch Kit",
|
|
31
|
-
description: "The AX-first OSS template.",
|
|
32
|
-
});
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
The builder validates inputs at the TypeScript layer and emits a correct `@type: "Product"` block every time.
|
|
36
|
-
|
|
37
|
-
## Outcome
|
|
38
|
-
|
|
39
|
-
- Schema maintenance time reduced by 80%
|
|
40
|
-
- Zero invalid rich results since migration
|
|
41
|
-
- Consistent AEO scores across all product pages
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: ClientsList
|
|
3
|
-
slug: clients
|
|
4
|
-
title: Clients
|
|
5
|
-
description: Organizations and teams using AI Launch Kit to build agent-first products.
|
|
6
|
-
schema:
|
|
7
|
-
mainEntity:
|
|
8
|
-
"@type": ItemList
|
|
9
|
-
name: AI Launch Kit Clients
|
|
10
|
-
description: A selection of teams building with AI Launch Kit.
|
|
11
|
-
itemListElement:
|
|
12
|
-
- "@type": ListItem
|
|
13
|
-
position: 1
|
|
14
|
-
item:
|
|
15
|
-
"@type": Organization
|
|
16
|
-
name: Acme Corp
|
|
17
|
-
description: Building an AX-first customer portal with AI Launch Kit.
|
|
18
|
-
url: https://acme.example.com
|
|
19
|
-
- "@type": ListItem
|
|
20
|
-
position: 2
|
|
21
|
-
item:
|
|
22
|
-
"@type": Organization
|
|
23
|
-
name: Beta Labs
|
|
24
|
-
description: Using the schema and AEO packages for structured content at scale.
|
|
25
|
-
url: https://beta.example.com
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
# Clients
|
|
29
|
-
|
|
30
|
-
Teams and organizations building agent-first products with AI Launch Kit.
|
|
31
|
-
|
|
32
|
-
## Acme Corp
|
|
33
|
-
|
|
34
|
-
Building an AX-first customer portal powered by the AILK section catalog and schema builders.
|
|
35
|
-
|
|
36
|
-
## Beta Labs
|
|
37
|
-
|
|
38
|
-
Using `@working-theory/schema` and `@working-theory/aeo` to deliver citation-ready structured content at scale.
|