create-ailk 0.1.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/LICENSE +201 -0
- package/README.md +39 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +80 -0
- package/dist/copy.d.ts +8 -0
- package/dist/copy.js +109 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +10 -0
- package/dist/lib/pro-callout.d.ts +12 -0
- package/dist/lib/pro-callout.js +20 -0
- package/dist/parse-args.d.ts +13 -0
- package/dist/parse-args.js +81 -0
- package/dist/programmatic.d.ts +49 -0
- package/dist/programmatic.js +89 -0
- package/dist/substitute.d.ts +31 -0
- package/dist/substitute.js +45 -0
- package/dist/validate.d.ts +8 -0
- package/dist/validate.js +70 -0
- package/package.json +47 -0
- package/templates/.claude/.gitkeep +0 -0
- package/templates/.claude/agents/web.md +80 -0
- package/templates/.claude/rules/architecture.md +62 -0
- package/templates/.claude/rules/preserve-existing-style.md +51 -0
- package/templates/.claude/skills/README.md +43 -0
- package/templates/.claude/skills/add-schema/SKILL.md +270 -0
- package/templates/.claude/skills/add-schema/references/conflict-handling.md +200 -0
- package/templates/.claude/skills/add-schema/references/file-finding.md +123 -0
- package/templates/.claude/skills/add-schema/references/schema-types.md +131 -0
- package/templates/.claude/skills/audit-site/SKILL.md +213 -0
- package/templates/.claude/skills/audit-site/references/common-errors.md +113 -0
- package/templates/.claude/skills/audit-site/references/findings-glossary.md +138 -0
- package/templates/.claude/skills/audit-site/references/severity-levels.md +114 -0
- package/templates/.claude/skills/provision-config/SKILL.md +243 -0
- package/templates/.claude/skills/provision-config/references/env-vars-template.md +184 -0
- package/templates/.claude/skills/provision-config/references/runbook-template.md +248 -0
- package/templates/.claude/skills/provision-config/references/vercel-json-template.md +98 -0
- package/templates/.claude/skills/scaffold-auth/SKILL.md +261 -0
- package/templates/.claude/skills/scaffold-auth/references/env-vars.md +91 -0
- package/templates/.claude/skills/scaffold-auth/references/oauth-app-setup.md +171 -0
- package/templates/.claude/skills/scaffold-commerce/SKILL.md +310 -0
- package/templates/.claude/skills/scaffold-commerce/references/lookup-keys-template.md +71 -0
- package/templates/.claude/skills/scaffold-commerce/references/marketplace-brand-pages.md +83 -0
- package/templates/.claude/skills/scaffold-commerce/templates/marketplace-cta-route.tsx.tmpl +72 -0
- package/templates/.claude/skills/scaffold-page/SKILL.md +243 -0
- package/templates/.claude/skills/scaffold-page/references/page-types.md +169 -0
- package/templates/.claude/skills/scaffold-page/templates/content.mdx.tmpl +28 -0
- package/templates/.claude/skills/scaffold-page/templates/route.tsx.tmpl +28 -0
- package/templates/.claude/skills/suggest-site-pages/SKILL.md +242 -0
- package/templates/.claude/skills/suggest-site-pages/references/categories.md +287 -0
- package/templates/.env.example +205 -0
- package/templates/.gitkeep +2 -0
- package/templates/CLAUDE.md +142 -0
- package/templates/CONVENTIONS.md +222 -0
- package/templates/README.md +110 -0
- package/templates/apps/api/.env.example +40 -0
- package/templates/apps/api/CLAUDE.md +63 -0
- package/templates/apps/api/api/index.ts +144 -0
- package/templates/apps/api/jest.config.cjs +74 -0
- package/templates/apps/api/package.json +54 -0
- package/templates/apps/api/src/__tests__/factories/content-fixture.ts +138 -0
- package/templates/apps/api/src/__tests__/factories/index.ts +70 -0
- package/templates/apps/api/src/__tests__/factories/lead-fixture.ts +82 -0
- package/templates/apps/api/src/__tests__/index.test.ts +118 -0
- package/templates/apps/api/src/__tests__/server.test.ts +207 -0
- package/templates/apps/api/src/__tests__/services/enrichment-shim.test.ts +126 -0
- package/templates/apps/api/src/__tests__/setup.ts +24 -0
- package/templates/apps/api/src/cli.ts +30 -0
- package/templates/apps/api/src/config/__tests__/index.test.ts +97 -0
- package/templates/apps/api/src/config/index.ts +56 -0
- package/templates/apps/api/src/index.ts +32 -0
- package/templates/apps/api/src/lib/__mocks__/prisma-client.js +15 -0
- package/templates/apps/api/src/lib/__mocks__/prisma.ts +45 -0
- package/templates/apps/api/src/lib/__tests__/content-adapter.test.ts +178 -0
- package/templates/apps/api/src/lib/__tests__/error-serializer.test.ts +100 -0
- package/templates/apps/api/src/lib/__tests__/errors.test.ts +94 -0
- package/templates/apps/api/src/lib/__tests__/file-fallback.test.ts +144 -0
- package/templates/apps/api/src/lib/__tests__/fixtures/HomePage/home.mdx +8 -0
- package/templates/apps/api/src/lib/__tests__/lead-capture-store.test.ts +227 -0
- package/templates/apps/api/src/lib/__tests__/outbound-http.test.ts +125 -0
- package/templates/apps/api/src/lib/__tests__/prisma.test.ts +165 -0
- package/templates/apps/api/src/lib/__tests__/require-paid-tier.test.ts +129 -0
- package/templates/apps/api/src/lib/__tests__/stripe.test.ts +74 -0
- package/templates/apps/api/src/lib/content-adapter.ts +86 -0
- package/templates/apps/api/src/lib/error-serializer.ts +77 -0
- package/templates/apps/api/src/lib/errors.ts +95 -0
- package/templates/apps/api/src/lib/file-fallback.ts +87 -0
- package/templates/apps/api/src/lib/lead-capture-store.ts +110 -0
- package/templates/apps/api/src/lib/locales.ts +201 -0
- package/templates/apps/api/src/lib/outbound-http.ts +122 -0
- package/templates/apps/api/src/lib/prisma.ts +21 -0
- package/templates/apps/api/src/lib/require-paid-tier.ts +53 -0
- package/templates/apps/api/src/lib/stripe.ts +30 -0
- package/templates/apps/api/src/lib/webhook-idempotency.ts +92 -0
- package/templates/apps/api/src/middleware/__tests__/adversarial/bearer-token-format.test.ts +111 -0
- package/templates/apps/api/src/middleware/__tests__/adversarial/cookie-or-bearer-precedence.test.ts +172 -0
- package/templates/apps/api/src/middleware/__tests__/adversarial/csrf-bearer-skip.test.ts +119 -0
- package/templates/apps/api/src/middleware/__tests__/adversarial/csrf-cookie-path.test.ts +138 -0
- package/templates/apps/api/src/middleware/__tests__/adversarial/session-fixation.test.ts +149 -0
- package/templates/apps/api/src/middleware/__tests__/adversarial/session-timeout.test.ts +139 -0
- package/templates/apps/api/src/middleware/__tests__/auth.bearer-path.test.ts +175 -0
- package/templates/apps/api/src/middleware/__tests__/auth.both-present-precedence.test.ts +76 -0
- package/templates/apps/api/src/middleware/__tests__/auth.cookie-path.test.ts +153 -0
- package/templates/apps/api/src/middleware/__tests__/auth.neither-present.test.ts +72 -0
- package/templates/apps/api/src/middleware/__tests__/rate-limit.test.ts +292 -0
- package/templates/apps/api/src/middleware/auth.ts +246 -0
- package/templates/apps/api/src/middleware/rate-limit.ts +132 -0
- package/templates/apps/api/src/openapi/__tests__/openapi.test.ts +129 -0
- package/templates/apps/api/src/openapi/index.ts +12 -0
- package/templates/apps/api/src/openapi/spec.ts +408 -0
- package/templates/apps/api/src/routes/auth/__tests__/auth-tokens.functional.test.ts +193 -0
- package/templates/apps/api/src/routes/auth/__tests__/auth-user.functional.test.ts +201 -0
- package/templates/apps/api/src/routes/auth/__tests__/tokens.test.ts +294 -0
- package/templates/apps/api/src/routes/auth/__tests__/user.test.ts +486 -0
- package/templates/apps/api/src/routes/auth/tokens.ts +199 -0
- package/templates/apps/api/src/routes/auth/user.ts +244 -0
- package/templates/apps/api/src/routes/checkout/__tests__/sessions.test.ts +588 -0
- package/templates/apps/api/src/routes/checkout/index.ts +13 -0
- package/templates/apps/api/src/routes/checkout/sessions.ts +185 -0
- package/templates/apps/api/src/routes/content/__tests__/create.test.ts +239 -0
- package/templates/apps/api/src/routes/content/__tests__/delete.test.ts +201 -0
- package/templates/apps/api/src/routes/content/__tests__/get-page.test.ts +141 -0
- package/templates/apps/api/src/routes/content/__tests__/list-pages.test.ts +122 -0
- package/templates/apps/api/src/routes/content/__tests__/list-types.test.ts +44 -0
- package/templates/apps/api/src/routes/content/__tests__/locale.test.ts +118 -0
- package/templates/apps/api/src/routes/content/__tests__/rate-limit.test.ts +51 -0
- package/templates/apps/api/src/routes/content/__tests__/update.test.ts +252 -0
- package/templates/apps/api/src/routes/content/create.ts +114 -0
- package/templates/apps/api/src/routes/content/delete.ts +81 -0
- package/templates/apps/api/src/routes/content/get-page.ts +98 -0
- package/templates/apps/api/src/routes/content/index.ts +32 -0
- package/templates/apps/api/src/routes/content/list-pages.ts +83 -0
- package/templates/apps/api/src/routes/content/list-types.ts +19 -0
- package/templates/apps/api/src/routes/content/rate-limit.ts +13 -0
- package/templates/apps/api/src/routes/content/slug.ts +9 -0
- package/templates/apps/api/src/routes/content/update.ts +111 -0
- package/templates/apps/api/src/routes/leads/__tests__/index.test.ts +415 -0
- package/templates/apps/api/src/routes/leads/__tests__/track.test.ts +165 -0
- package/templates/apps/api/src/routes/leads/index.ts +130 -0
- package/templates/apps/api/src/routes/test/auth/__tests__/session.test.ts +296 -0
- package/templates/apps/api/src/routes/test/auth/session.ts +141 -0
- package/templates/apps/api/src/routes/webhooks/README.md +57 -0
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-idempotency.test.ts +247 -0
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-rate-limit.test.ts +198 -0
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe.test.ts +633 -0
- package/templates/apps/api/src/routes/webhooks/index.ts +41 -0
- package/templates/apps/api/src/routes/webhooks/stripe.ts +253 -0
- package/templates/apps/api/src/server.ts +157 -0
- package/templates/apps/api/src/services/__tests__/lead-routing.test.ts +395 -0
- package/templates/apps/api/src/services/enrichment-shim.ts +53 -0
- package/templates/apps/api/src/services/lead-routing.ts +338 -0
- package/templates/apps/api/tsconfig.json +34 -0
- package/templates/apps/api/vercel.json +17 -0
- package/templates/apps/mcp/.env.example +52 -0
- package/templates/apps/mcp/CLAUDE.md +84 -0
- package/templates/apps/mcp/__tests__/abuse/daily-cap.test.ts +52 -0
- package/templates/apps/mcp/__tests__/abuse/email-validator.test.ts +46 -0
- package/templates/apps/mcp/__tests__/abuse/honeypot.test.ts +36 -0
- package/templates/apps/mcp/__tests__/abuse/user-agent-deny.test.ts +54 -0
- package/templates/apps/mcp/__tests__/aeo-cli-parity.test.ts +110 -0
- package/templates/apps/mcp/__tests__/audit-single-page.test.ts +213 -0
- package/templates/apps/mcp/__tests__/audit.test.ts +217 -0
- package/templates/apps/mcp/__tests__/catalog-drift.test.ts +52 -0
- package/templates/apps/mcp/__tests__/create_page.test.ts +201 -0
- package/templates/apps/mcp/__tests__/delete_page.test.ts +176 -0
- package/templates/apps/mcp/__tests__/get_business_hours.test.ts +82 -0
- package/templates/apps/mcp/__tests__/get_faq.test.ts +80 -0
- package/templates/apps/mcp/__tests__/get_locations.test.ts +65 -0
- package/templates/apps/mcp/__tests__/get_offerings.test.ts +90 -0
- package/templates/apps/mcp/__tests__/get_pricing.test.ts +80 -0
- package/templates/apps/mcp/__tests__/get_site_info.test.ts +81 -0
- package/templates/apps/mcp/__tests__/http-transport.test.ts +323 -0
- package/templates/apps/mcp/__tests__/lib/errors.test.ts +75 -0
- package/templates/apps/mcp/__tests__/lib/require-paid-tier.test.ts +75 -0
- package/templates/apps/mcp/__tests__/list_pages.test.ts +112 -0
- package/templates/apps/mcp/__tests__/locale.test.ts +135 -0
- package/templates/apps/mcp/__tests__/parity.test.ts +205 -0
- package/templates/apps/mcp/__tests__/purchase-disabled.test.ts +34 -0
- package/templates/apps/mcp/__tests__/read_content.test.ts +153 -0
- package/templates/apps/mcp/__tests__/request_callback.test.ts +163 -0
- package/templates/apps/mcp/__tests__/search_content.test.ts +153 -0
- package/templates/apps/mcp/__tests__/server.test.ts +115 -0
- package/templates/apps/mcp/__tests__/submit_lead.test.ts +165 -0
- package/templates/apps/mcp/__tests__/subscribe_newsletter.test.ts +161 -0
- package/templates/apps/mcp/__tests__/tools/purchase.test.ts +227 -0
- package/templates/apps/mcp/__tests__/tools/scaffold.test.ts +237 -0
- package/templates/apps/mcp/__tests__/update_page.test.ts +195 -0
- package/templates/apps/mcp/jest.config.cjs +82 -0
- package/templates/apps/mcp/package.json +37 -0
- package/templates/apps/mcp/src/abuse/daily-cap.ts +47 -0
- package/templates/apps/mcp/src/abuse/email-validator.ts +25 -0
- package/templates/apps/mcp/src/abuse/honeypot.ts +21 -0
- package/templates/apps/mcp/src/abuse/index.ts +111 -0
- package/templates/apps/mcp/src/abuse/user-agent-deny.ts +58 -0
- package/templates/apps/mcp/src/http-transport.ts +303 -0
- package/templates/apps/mcp/src/index.ts +67 -0
- package/templates/apps/mcp/src/lib/audit-single-page.ts +194 -0
- package/templates/apps/mcp/src/lib/errors.ts +61 -0
- package/templates/apps/mcp/src/lib/locales.ts +171 -0
- package/templates/apps/mcp/src/lib/require-paid-tier.ts +44 -0
- package/templates/apps/mcp/src/lib/resolve-locale.ts +30 -0
- package/templates/apps/mcp/src/server.ts +139 -0
- package/templates/apps/mcp/src/tools/audit.ts +103 -0
- package/templates/apps/mcp/src/tools/capture_lead.ts +52 -0
- package/templates/apps/mcp/src/tools/create_page.ts +95 -0
- package/templates/apps/mcp/src/tools/delete_page.ts +73 -0
- package/templates/apps/mcp/src/tools/get_business_hours.ts +66 -0
- package/templates/apps/mcp/src/tools/get_faq.ts +69 -0
- package/templates/apps/mcp/src/tools/get_locations.ts +85 -0
- package/templates/apps/mcp/src/tools/get_offerings.ts +66 -0
- package/templates/apps/mcp/src/tools/get_pricing.ts +74 -0
- package/templates/apps/mcp/src/tools/get_site_info.ts +84 -0
- package/templates/apps/mcp/src/tools/index.ts +125 -0
- package/templates/apps/mcp/src/tools/list_pages.ts +72 -0
- package/templates/apps/mcp/src/tools/purchase.ts +89 -0
- package/templates/apps/mcp/src/tools/read_content.ts +61 -0
- package/templates/apps/mcp/src/tools/request_callback.ts +51 -0
- package/templates/apps/mcp/src/tools/scaffold.ts +119 -0
- package/templates/apps/mcp/src/tools/search_content.ts +59 -0
- package/templates/apps/mcp/src/tools/subscribe_newsletter.ts +47 -0
- package/templates/apps/mcp/src/tools/update_page.ts +91 -0
- package/templates/apps/mcp/tsconfig.json +19 -0
- package/templates/apps/web/.env.example +47 -0
- package/templates/apps/web/CLAUDE.md +81 -0
- package/templates/apps/web/__tests__/auth/adversarial/cookie-attributes.test.ts +94 -0
- package/templates/apps/web/__tests__/auth/adversarial/oauth-state-parameter.test.ts +75 -0
- package/templates/apps/web/__tests__/auth/adversarial/redirect-uri-allowlist.test.ts +82 -0
- package/templates/apps/web/__tests__/auth/env-helpers.test.ts +168 -0
- package/templates/apps/web/__tests__/authority-list-routes.test.tsx +208 -0
- package/templates/apps/web/__tests__/better-stack.test.ts +66 -0
- package/templates/apps/web/__tests__/blog-dir-resolution.test.ts +87 -0
- package/templates/apps/web/__tests__/blog-source-populated.test.ts +130 -0
- package/templates/apps/web/__tests__/data-testid-coverage.test.tsx +60 -0
- package/templates/apps/web/__tests__/google-analytics.test.tsx +104 -0
- package/templates/apps/web/__tests__/i18n/middleware.test.ts +119 -0
- package/templates/apps/web/__tests__/i18n/routing.test.ts +114 -0
- package/templates/apps/web/__tests__/i18n/translations.test.ts +191 -0
- package/templates/apps/web/__tests__/json-ld.test.ts +98 -0
- package/templates/apps/web/__tests__/knowledge-events-routes.test.tsx +580 -0
- package/templates/apps/web/__tests__/layout-stealth.test.ts +39 -0
- package/templates/apps/web/__tests__/lighthouse-fixtures/improvement-image-shrink.tsx +103 -0
- package/templates/apps/web/__tests__/lighthouse-fixtures/override-fixture.md +114 -0
- package/templates/apps/web/__tests__/lighthouse-fixtures/regression-bloat.tsx +94 -0
- package/templates/apps/web/__tests__/page.test.tsx +230 -0
- package/templates/apps/web/__tests__/products-services-phase1.test.tsx +321 -0
- package/templates/apps/web/__tests__/projects-routes.test.tsx +392 -0
- package/templates/apps/web/__tests__/resources-downloads-integrations-phase2.test.tsx +475 -0
- package/templates/apps/web/__tests__/routes/ai-plugin-json.test.ts +53 -0
- package/templates/apps/web/__tests__/routes/blog-route.test.tsx +191 -0
- package/templates/apps/web/__tests__/routes/llms-txt.test.ts +123 -0
- package/templates/apps/web/__tests__/routes/robots-txt.test.ts +52 -0
- package/templates/apps/web/__tests__/routes/sitemap-xml.test.ts +78 -0
- package/templates/apps/web/__tests__/routes/well-known-mcp.test.ts +203 -0
- package/templates/apps/web/__tests__/section-routes.test.tsx +693 -0
- package/templates/apps/web/__tests__/security-headers.test.ts +201 -0
- package/templates/apps/web/__tests__/sentry-config.test.ts +116 -0
- package/templates/apps/web/__tests__/setup.ts +82 -0
- package/templates/apps/web/__tests__/sitemap-locales.test.ts +415 -0
- package/templates/apps/web/__tests__/standalone-informational-routes.test.tsx +844 -0
- package/templates/apps/web/app/.well-known/ai-plugin.json/route.ts +81 -0
- package/templates/apps/web/app/.well-known/mcp.json/build-manifest.ts +110 -0
- package/templates/apps/web/app/.well-known/mcp.json/route.ts +58 -0
- package/templates/apps/web/app/[locale]/__tests__/layout.test.tsx +120 -0
- package/templates/apps/web/app/[locale]/__tests__/page-renderer-migration.test.tsx +202 -0
- package/templates/apps/web/app/[locale]/about/page.tsx +31 -0
- package/templates/apps/web/app/[locale]/blog/[[...slug]]/page.tsx +173 -0
- package/templates/apps/web/app/[locale]/careers/[slug]/page.tsx +45 -0
- package/templates/apps/web/app/[locale]/careers/__tests__/page-renderer-migration.test.tsx +117 -0
- package/templates/apps/web/app/[locale]/careers/page.tsx +25 -0
- package/templates/apps/web/app/[locale]/case-studies/[slug]/page.tsx +44 -0
- package/templates/apps/web/app/[locale]/case-studies/__tests__/page-renderer-migration.test.tsx +113 -0
- package/templates/apps/web/app/[locale]/case-studies/page.tsx +25 -0
- package/templates/apps/web/app/[locale]/clients/__tests__/page-renderer-migration.test.tsx +63 -0
- package/templates/apps/web/app/[locale]/clients/page.tsx +27 -0
- package/templates/apps/web/app/[locale]/contact/ContactForm.tsx +130 -0
- package/templates/apps/web/app/[locale]/contact/__tests__/contact.actions.test.ts +152 -0
- package/templates/apps/web/app/[locale]/contact/__tests__/page-renderer-migration.test.tsx +92 -0
- package/templates/apps/web/app/[locale]/contact/contact.actions.ts +79 -0
- package/templates/apps/web/app/[locale]/contact/error.tsx +24 -0
- package/templates/apps/web/app/[locale]/contact/page.tsx +38 -0
- package/templates/apps/web/app/[locale]/courses/[slug]/page.tsx +34 -0
- package/templates/apps/web/app/[locale]/courses/__tests__/page-renderer-migration.test.tsx +119 -0
- package/templates/apps/web/app/[locale]/courses/page.tsx +25 -0
- package/templates/apps/web/app/[locale]/dev/purchase/__tests__/actions.test.ts +160 -0
- package/templates/apps/web/app/[locale]/dev/purchase/error.tsx +25 -0
- package/templates/apps/web/app/[locale]/dev/purchase/page.tsx +117 -0
- package/templates/apps/web/app/[locale]/dev/purchase/purchase.actions.ts +58 -0
- package/templates/apps/web/app/[locale]/docs/[[...slug]]/page.tsx +118 -0
- package/templates/apps/web/app/[locale]/downloads/__tests__/page-renderer-migration.test.tsx +72 -0
- package/templates/apps/web/app/[locale]/downloads/page.tsx +25 -0
- package/templates/apps/web/app/[locale]/events/[slug]/page.tsx +47 -0
- package/templates/apps/web/app/[locale]/events/__tests__/page-renderer-migration.test.tsx +130 -0
- package/templates/apps/web/app/[locale]/events/page.tsx +25 -0
- package/templates/apps/web/app/[locale]/faq/page.tsx +36 -0
- package/templates/apps/web/app/[locale]/how-to/[slug]/page.tsx +34 -0
- package/templates/apps/web/app/[locale]/how-to/__tests__/page-renderer-migration.test.tsx +78 -0
- package/templates/apps/web/app/[locale]/how-to/page.tsx +40 -0
- package/templates/apps/web/app/[locale]/integrations/[slug]/page.tsx +43 -0
- package/templates/apps/web/app/[locale]/integrations/__tests__/page-renderer-migration.test.tsx +129 -0
- package/templates/apps/web/app/[locale]/integrations/page.tsx +25 -0
- package/templates/apps/web/app/[locale]/launch-service/page.tsx +31 -0
- package/templates/apps/web/app/[locale]/layout.tsx +241 -0
- package/templates/apps/web/app/[locale]/page.tsx +41 -0
- package/templates/apps/web/app/[locale]/partners/[slug]/page.tsx +44 -0
- package/templates/apps/web/app/[locale]/partners/__tests__/page-renderer-migration.test.tsx +113 -0
- package/templates/apps/web/app/[locale]/partners/page.tsx +25 -0
- package/templates/apps/web/app/[locale]/products/[slug]/page.tsx +43 -0
- package/templates/apps/web/app/[locale]/products/__tests__/page-renderer-migration.test.tsx +129 -0
- package/templates/apps/web/app/[locale]/products/page.tsx +25 -0
- package/templates/apps/web/app/[locale]/projects/[slug]/page.tsx +39 -0
- package/templates/apps/web/app/[locale]/projects/__tests__/page-renderer-migration.test.tsx +138 -0
- package/templates/apps/web/app/[locale]/projects/page.tsx +30 -0
- package/templates/apps/web/app/[locale]/resources/[slug]/page.tsx +51 -0
- package/templates/apps/web/app/[locale]/resources/__tests__/page-renderer-migration.test.tsx +117 -0
- package/templates/apps/web/app/[locale]/resources/page.tsx +27 -0
- package/templates/apps/web/app/[locale]/services/[slug]/page.tsx +43 -0
- package/templates/apps/web/app/[locale]/services/__tests__/page-renderer-migration.test.tsx +129 -0
- package/templates/apps/web/app/[locale]/services/page.tsx +25 -0
- package/templates/apps/web/app/[locale]/software/[slug]/page.tsx +34 -0
- package/templates/apps/web/app/[locale]/software/__tests__/page-renderer-migration.test.tsx +81 -0
- package/templates/apps/web/app/[locale]/software/page.tsx +39 -0
- package/templates/apps/web/app/[locale]/tech-articles/[slug]/page.tsx +34 -0
- package/templates/apps/web/app/[locale]/tech-articles/__tests__/page-renderer-migration.test.tsx +82 -0
- package/templates/apps/web/app/[locale]/tech-articles/page.tsx +39 -0
- package/templates/apps/web/app/[locale]/testimonials/__tests__/page-renderer-migration.test.tsx +63 -0
- package/templates/apps/web/app/[locale]/testimonials/page.tsx +27 -0
- package/templates/apps/web/app/[locale]/use-cases/__tests__/page-renderer-migration.test.tsx +63 -0
- package/templates/apps/web/app/[locale]/use-cases/page.tsx +27 -0
- package/templates/apps/web/app/[locale]/whitepapers/[slug]/page.tsx +34 -0
- package/templates/apps/web/app/[locale]/whitepapers/__tests__/page-renderer-migration.test.tsx +82 -0
- package/templates/apps/web/app/[locale]/whitepapers/page.tsx +39 -0
- package/templates/apps/web/app/__tests__/error-boundaries.test.tsx +152 -0
- package/templates/apps/web/app/api/auth/[...all]/route.ts +16 -0
- package/templates/apps/web/app/error-fallback.tsx +75 -0
- package/templates/apps/web/app/error.tsx +23 -0
- package/templates/apps/web/app/layout.tsx +18 -0
- package/templates/apps/web/app/llms.txt/route.ts +101 -0
- package/templates/apps/web/app/not-found.tsx +48 -0
- package/templates/apps/web/app/og/__tests__/route.test.ts +164 -0
- package/templates/apps/web/app/og/route.tsx +135 -0
- package/templates/apps/web/app/robots.txt/route.ts +36 -0
- package/templates/apps/web/app/sitemap.xml/route.ts +146 -0
- package/templates/apps/web/auth.ts +141 -0
- package/templates/apps/web/components/ThemeToggle.tsx +60 -0
- package/templates/apps/web/components/google-analytics.tsx +34 -0
- package/templates/apps/web/content/en/blog/index.mdx +15 -0
- package/templates/apps/web/content/en/blog/launching-ailk.mdx +20 -0
- package/templates/apps/web/content/en/docs/getting-started.mdx +30 -0
- package/templates/apps/web/i18n/request.ts +36 -0
- package/templates/apps/web/jest.config.cjs +100 -0
- package/templates/apps/web/lib/__mocks__/next-mdx-remote-rsc.js +12 -0
- package/templates/apps/web/lib/__mocks__/source-server.js +31 -0
- package/templates/apps/web/lib/__tests__/og.test.ts +65 -0
- package/templates/apps/web/lib/auth-env.ts +66 -0
- package/templates/apps/web/lib/blog-list-data.ts +95 -0
- package/templates/apps/web/lib/blog-post-data.ts +79 -0
- package/templates/apps/web/lib/nav-config.ts +13 -0
- package/templates/apps/web/lib/observability/better-stack.ts +27 -0
- package/templates/apps/web/lib/og.ts +23 -0
- package/templates/apps/web/lib/prisma-for-auth.ts +34 -0
- package/templates/apps/web/lib/source.ts +34 -0
- package/templates/apps/web/messages/en.json +131 -0
- package/templates/apps/web/middleware.ts +80 -0
- package/templates/apps/web/next.config.mjs +167 -0
- package/templates/apps/web/package.json +62 -0
- package/templates/apps/web/public/.well-known/security.txt +17 -0
- package/templates/apps/web/public/android-chrome-192x192.png +0 -0
- package/templates/apps/web/public/android-chrome-512x512.png +0 -0
- package/templates/apps/web/public/apple-touch-icon.png +0 -0
- package/templates/apps/web/public/favicon-16x16.png +0 -0
- package/templates/apps/web/public/favicon-32x32.png +0 -0
- package/templates/apps/web/public/favicon.ico +0 -0
- package/templates/apps/web/public/favicon.svg +4 -0
- package/templates/apps/web/public/logo-dark.svg +21 -0
- package/templates/apps/web/public/logo-light.svg +21 -0
- package/templates/apps/web/public/logomark-dark.svg +4 -0
- package/templates/apps/web/public/logomark-light.svg +4 -0
- package/templates/apps/web/public/og-default.png +0 -0
- package/templates/apps/web/public/site.webmanifest +19 -0
- package/templates/apps/web/scripts/assert-content-bundled.ts +55 -0
- package/templates/apps/web/security-headers.config.ts +132 -0
- package/templates/apps/web/sentry.client.config.ts +27 -0
- package/templates/apps/web/sentry.edge.config.ts +15 -0
- package/templates/apps/web/sentry.server.config.ts +20 -0
- package/templates/apps/web/source.config.ts +78 -0
- package/templates/apps/web/src/components/SiteNav.tsx +21 -0
- package/templates/apps/web/src/lib/routes.ts +37 -0
- package/templates/apps/web/tsconfig.json +35 -0
- package/templates/apps/web/types/messages.d.ts +19 -0
- package/templates/content/.gitkeep +0 -0
- package/templates/content/CLAUDE.md +85 -0
- package/templates/content/_site.mdx +38 -0
- package/templates/content/ar/HomePage/home.mdx +123 -0
- package/templates/content/ar/_site.mdx +35 -0
- package/templates/content/de/_site.mdx +29 -0
- package/templates/content/en/.gitkeep +0 -0
- package/templates/content/en/AboutPage/about.mdx +19 -0
- package/templates/content/en/AboutPage/about.schema.json +82 -0
- package/templates/content/en/BookCall/book-call.mdx +19 -0
- package/templates/content/en/BookCall/book-call.schema.json +121 -0
- package/templates/content/en/BreadcrumbList/site-breadcrumbs.mdx +20 -0
- package/templates/content/en/CareersList/careers.mdx +24 -0
- package/templates/content/en/CaseStudiesList/case-studies.mdx +22 -0
- package/templates/content/en/CaseStudiesList/showcase.mdx +8 -0
- package/templates/content/en/CaseStudy/ailk-aeo-rollout.mdx +32 -0
- package/templates/content/en/CaseStudy/schema-builder-migration.mdx +41 -0
- package/templates/content/en/ClientsList/clients.mdx +38 -0
- package/templates/content/en/ContactPage/contact.mdx +19 -0
- package/templates/content/en/ContactPage/contact.schema.json +100 -0
- package/templates/content/en/ContactPoint/primary.mdx +14 -0
- package/templates/content/en/Course/aeo-fundamentals.mdx +37 -0
- package/templates/content/en/Course/schema-builder-workshop.mdx +62 -0
- package/templates/content/en/CoursesList/courses.mdx +22 -0
- package/templates/content/en/DownloadsList/downloads.mdx +22 -0
- package/templates/content/en/Event/aeo-office-hours-may-2026.mdx +39 -0
- package/templates/content/en/Event/ailk-launch-day-2026.mdx +35 -0
- package/templates/content/en/EventsList/events.mdx +26 -0
- package/templates/content/en/FAQPage/faq.mdx +420 -0
- package/templates/content/en/FAQPage/faq.schema.json +231 -0
- package/templates/content/en/GlossaryList/glossary.mdx +19 -0
- package/templates/content/en/GlossaryList/glossary.schema.json +300 -0
- package/templates/content/en/HomePage/home.mdx +312 -0
- package/templates/content/en/HomePage/home.schema.json +88 -0
- package/templates/content/en/HomePage/launch-service.mdx +475 -0
- package/templates/content/en/HomePage/launch-service.schema.json +138 -0
- package/templates/content/en/HowTo/add-mdx-content.mdx +38 -0
- package/templates/content/en/HowTo/configure-aeo-scoring.mdx +35 -0
- package/templates/content/en/HowTo/set-up-json-ld.mdx +36 -0
- package/templates/content/en/Integration/github-actions.mdx +31 -0
- package/templates/content/en/Integration/openai-api.mdx +26 -0
- package/templates/content/en/Integration/vercel.mdx +32 -0
- package/templates/content/en/IntegrationsList/integrations.mdx +22 -0
- package/templates/content/en/JobPosting/content-strategist.mdx +46 -0
- package/templates/content/en/JobPosting/developer-advocate.mdx +47 -0
- package/templates/content/en/JobPosting/senior-fullstack-engineer.mdx +57 -0
- package/templates/content/en/LandingPage/aeo-audit.mdx +19 -0
- package/templates/content/en/LandingPage/aeo-audit.schema.json +92 -0
- package/templates/content/en/LandingPage/agency-waitlist.mdx +340 -0
- package/templates/content/en/LandingPage/agency-waitlist.schema.json +152 -0
- package/templates/content/en/LandingPage/developers.mdx +19 -0
- package/templates/content/en/LandingPage/developers.schema.json +109 -0
- package/templates/content/en/LandingPage/for-agencies.mdx +390 -0
- package/templates/content/en/LandingPage/for-agencies.schema.json +107 -0
- package/templates/content/en/LandingPage/for-ai-search-agencies.mdx +417 -0
- package/templates/content/en/LandingPage/for-ai-search-agencies.schema.json +105 -0
- package/templates/content/en/LandingPage/for-businesses.mdx +19 -0
- package/templates/content/en/LandingPage/for-businesses.schema.json +96 -0
- package/templates/content/en/LandingPage/platform.mdx +369 -0
- package/templates/content/en/LandingPage/platform.schema.json +166 -0
- package/templates/content/en/LandingPage/vs-ai-website-builders.mdx +19 -0
- package/templates/content/en/LandingPage/vs-ai-website-builders.schema.json +102 -0
- package/templates/content/en/LandingPage/vs-wordpress.mdx +19 -0
- package/templates/content/en/LandingPage/vs-wordpress.schema.json +53 -0
- package/templates/content/en/NewsletterSignup/newsletter.mdx +236 -0
- package/templates/content/en/NewsletterSignup/newsletter.schema.json +91 -0
- package/templates/content/en/Organization/site-owner.mdx +16 -0
- package/templates/content/en/Partner/prisma.mdx +31 -0
- package/templates/content/en/Partner/supabase.mdx +30 -0
- package/templates/content/en/Partner/vercel.mdx +28 -0
- package/templates/content/en/PartnersList/partners.mdx +22 -0
- package/templates/content/en/Person/founder.mdx +18 -0
- package/templates/content/en/Pricing/pricing.mdx +538 -0
- package/templates/content/en/Pricing/pricing.schema.json +209 -0
- package/templates/content/en/PrivacyPage/privacy.mdx +165 -0
- package/templates/content/en/PrivacyPage/privacy.schema.json +64 -0
- package/templates/content/en/Product/ailk.mdx +19 -0
- package/templates/content/en/Product/ailk.schema.json +94 -0
- package/templates/content/en/Product/api-launch-kit.mdx +26 -0
- package/templates/content/en/Product/launch-kit.mdx +28 -0
- package/templates/content/en/ProductsList/products.mdx +26 -0
- package/templates/content/en/Project/ailk-phase-2.mdx +54 -0
- package/templates/content/en/ProjectsList/projects.mdx +25 -0
- package/templates/content/en/ResourceDetail/aeo-scoring-guide.mdx +27 -0
- package/templates/content/en/ResourceDetail/content-model-whitepaper.mdx +28 -0
- package/templates/content/en/ResourceDetail/schema-org-quick-reference.mdx +39 -0
- package/templates/content/en/ResourcesHub/resources.mdx +22 -0
- package/templates/content/en/Service/consulting.mdx +22 -0
- package/templates/content/en/Service/implementation.mdx +30 -0
- package/templates/content/en/Service/launch-service.mdx +232 -0
- package/templates/content/en/Service/launch.mdx +228 -0
- package/templates/content/en/ServicesList/services.mdx +84 -0
- package/templates/content/en/SoftwareProduct/ailk-aeo.mdx +44 -0
- package/templates/content/en/SoftwareProduct/ailk-content-adapters.mdx +47 -0
- package/templates/content/en/SoftwareProduct/ailk-schema.mdx +49 -0
- package/templates/content/en/TeamList/team.mdx +63 -0
- package/templates/content/en/TeamMember/founder.mdx +72 -0
- package/templates/content/en/TermsPage/terms.mdx +19 -0
- package/templates/content/en/TermsPage/terms.schema.json +99 -0
- package/templates/content/en/TestimonialsList/testimonials.mdx +44 -0
- package/templates/content/en/UseCasesList/use-cases.mdx +30 -0
- package/templates/content/en/Whitepaper/ax-first-product-development.mdx +27 -0
- package/templates/content/en/Whitepaper/open-core-commercial-strategy.mdx +27 -0
- package/templates/content/en/Whitepaper/structured-data-for-answer-engines.mdx +31 -0
- package/templates/content/en-XA/AboutPage/about.mdx +8 -0
- package/templates/content/en-XA/FAQPage/faq.mdx +8 -0
- package/templates/content/en-XA/HomePage/home.mdx +8 -0
- package/templates/content/es/_site.mdx +30 -0
- package/templates/content/fr/_site.mdx +30 -0
- package/templates/content/ja/_site.mdx +30 -0
- package/templates/content/pt-BR/AboutPage/about.mdx +8 -0
- package/templates/content/pt-BR/FAQPage/faq.mdx +8 -0
- package/templates/content/pt-BR/HomePage/home.mdx +23 -0
- package/templates/database/CHANGELOG.md +5 -0
- package/templates/database/README.md +234 -0
- package/templates/database/__tests__/user-cascade.test.ts +125 -0
- package/templates/database/auth/.gitkeep +0 -0
- package/templates/database/config/.gitkeep +0 -0
- package/templates/database/content/.gitkeep +0 -0
- package/templates/database/inbox/.gitkeep +0 -0
- package/templates/database/inbox/README.md +3 -0
- package/templates/database/inbox/__tests__/schema.test.ts +40 -0
- package/templates/database/inbox/schema.prisma +52 -0
- package/templates/database/jest.config.cjs +29 -0
- package/templates/database/migrations/20260508000000_add_inbox_namespace/migration.sql +328 -0
- package/templates/database/migrations/20260513000000_better_auth_migration/migration.sql +100 -0
- package/templates/database/migrations/20260515000000_add_user_billing_fields/migration.sql +28 -0
- package/templates/database/migrations/20260516000000_add_user_tier_care_plan_seat/migration.sql +25 -0
- package/templates/database/migrations/20260518000000_add_telemetry_records/migration.sql +42 -0
- package/templates/database/migrations/20260525000000_theme_wiring/migration.sql +67 -0
- package/templates/database/migrations/20260710000000_retire_commercial_tier/migration.sql +21 -0
- package/templates/database/migrations/migration_lock.toml +3 -0
- package/templates/database/ops/.gitkeep +0 -0
- package/templates/database/package.json +45 -0
- package/templates/database/prisma.config.ts +20 -0
- package/templates/database/schema.prisma +487 -0
- package/templates/database/scripts/db-generate-locked.sh +80 -0
- package/templates/database/seed-test.ts +85 -0
- package/templates/database/tsconfig.build.json +16 -0
- package/templates/database/tsconfig.json +9 -0
- package/templates/package.json +125 -0
- package/templates/pnpm-workspace.yaml +6 -0
- package/templates/project.yaml +59 -0
- package/templates/tsconfig.base.json +18 -0
- package/templates/tsconfig.json +45 -0
|
@@ -0,0 +1,18 @@
|
|
|
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: Person
|
|
4
|
+
slug: founder
|
|
5
|
+
title: Founder
|
|
6
|
+
description: The founder of AI Launch Kit — building open-source infrastructure for human-agent teams.
|
|
7
|
+
schema:
|
|
8
|
+
"@type": Person
|
|
9
|
+
name: Jane Doe
|
|
10
|
+
jobTitle: Founder & CEO
|
|
11
|
+
description: Building the infrastructure layer for human-agent teams.
|
|
12
|
+
url: /team/founder
|
|
13
|
+
worksFor:
|
|
14
|
+
"@type": Organization
|
|
15
|
+
name: AI Launch Kit
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
Founder of AI Launch Kit, focused on open-source tooling for agent-first product development.
|
|
@@ -0,0 +1,538 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "Pricing"
|
|
3
|
+
slug: "pricing"
|
|
4
|
+
title: "Pricing that adds capability, never gates access."
|
|
5
|
+
description: "AILK pricing: Apache 2.0 OSS free forever, Pro at $249/user/year, Pro Plus at $449/user/month, and a $2,495 fixed-scope Launch Service. Capability isn't gated."
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "hero-pricing",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"badge": "Apache 2.0 licensed — the OSS layer ships complete, forever",
|
|
14
|
+
"headline": "Pricing that adds capability, never gates access.",
|
|
15
|
+
"subheadline": "The Apache 2.0 OSS layer is structurally complete. Pro, Pro Plus, and Launch Service add speed and hands-on help — not access you're missing.",
|
|
16
|
+
"primaryCta": { "label": "Start Pro trial", "href": "/pricing#pro" },
|
|
17
|
+
"secondaryCta":
|
|
18
|
+
{
|
|
19
|
+
"label": "See Launch Service",
|
|
20
|
+
"href": "/launch-service",
|
|
21
|
+
"variant": "link",
|
|
22
|
+
},
|
|
23
|
+
"variant": "default",
|
|
24
|
+
"size": "display",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "tier-comparison",
|
|
29
|
+
"type": "comparison-table",
|
|
30
|
+
"data":
|
|
31
|
+
{
|
|
32
|
+
"eyebrow": "Pricing at a glance",
|
|
33
|
+
"headline": "Which AILK tier fits how you ship?",
|
|
34
|
+
"description": "Deploying it yourself? Free covers that. Standardizing across client work? Pro or Pro Plus carries it. Want the foundation deployed for you in two weeks instead? Book Launch Service. Fleet management for a portfolio of sites is planned as a future Enterprise entitlement, not shipped yet.",
|
|
35
|
+
"columns":
|
|
36
|
+
[
|
|
37
|
+
{ "key": "free", "name": "Free (OSS)" },
|
|
38
|
+
{ "key": "pro", "name": "Pro" },
|
|
39
|
+
{ "key": "pro_plus", "name": "Pro Plus" },
|
|
40
|
+
{ "key": "launch_service", "name": "Launch Service" },
|
|
41
|
+
],
|
|
42
|
+
"groups":
|
|
43
|
+
[
|
|
44
|
+
{
|
|
45
|
+
"groupName": "Price",
|
|
46
|
+
"rows":
|
|
47
|
+
[
|
|
48
|
+
{
|
|
49
|
+
"featureName": "Price",
|
|
50
|
+
"values":
|
|
51
|
+
{
|
|
52
|
+
"free": "$0",
|
|
53
|
+
"pro": "$249/user/year",
|
|
54
|
+
"pro_plus": "$449/user/month",
|
|
55
|
+
"launch_service": "$2,495 one-time",
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"groupName": "Who it's for",
|
|
62
|
+
"rows":
|
|
63
|
+
[
|
|
64
|
+
{
|
|
65
|
+
"featureName": "Best fit",
|
|
66
|
+
"values":
|
|
67
|
+
{
|
|
68
|
+
"free": "Developers shipping it themselves",
|
|
69
|
+
"pro": "Agencies standardizing client work",
|
|
70
|
+
"pro_plus": "Agencies running several client sites who want ongoing help",
|
|
71
|
+
"launch_service": "Agencies or SMB owners who want it deployed for them",
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"groupName": "What's included",
|
|
78
|
+
"rows":
|
|
79
|
+
[
|
|
80
|
+
{
|
|
81
|
+
"featureName": "Schema registry, peer surfaces, audit CLI, scaffolding",
|
|
82
|
+
"values":
|
|
83
|
+
{
|
|
84
|
+
"free": true,
|
|
85
|
+
"pro": true,
|
|
86
|
+
"pro_plus": true,
|
|
87
|
+
"launch_service": true,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"featureName": "Per-user seat licensing",
|
|
92
|
+
"values":
|
|
93
|
+
{
|
|
94
|
+
"free": false,
|
|
95
|
+
"pro": true,
|
|
96
|
+
"pro_plus": true,
|
|
97
|
+
"launch_service": "N/A",
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"featureName": "Hands-on deploy help",
|
|
102
|
+
"values":
|
|
103
|
+
{
|
|
104
|
+
"free": false,
|
|
105
|
+
"pro": false,
|
|
106
|
+
"pro_plus": true,
|
|
107
|
+
"launch_service": true,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"groupName": "License & ownership",
|
|
114
|
+
"rows":
|
|
115
|
+
[
|
|
116
|
+
{
|
|
117
|
+
"featureName": "You own the codebase",
|
|
118
|
+
"values":
|
|
119
|
+
{
|
|
120
|
+
"free": true,
|
|
121
|
+
"pro": true,
|
|
122
|
+
"pro_plus": true,
|
|
123
|
+
"launch_service": true,
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
"footnote": "Fleet management, cross-site rollup, and white-label are planned as a future Enterprise entitlement — not shipped yet.",
|
|
130
|
+
"actions":
|
|
131
|
+
[
|
|
132
|
+
{
|
|
133
|
+
"kind": "button",
|
|
134
|
+
"label": "Start Pro trial",
|
|
135
|
+
"href": "/pricing#pro",
|
|
136
|
+
"variant": "default",
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "tier-free-oss",
|
|
143
|
+
"type": "feature",
|
|
144
|
+
"data":
|
|
145
|
+
{
|
|
146
|
+
"headline": "What ships free, under Apache 2.0?",
|
|
147
|
+
"description": "Everything structural ships free. Clone the repo, deploy on Vercel, and you have the same substrate a paying customer gets — no crippled tier, no feature flags waiting behind a paywall. Developers and indie hackers pick this tier when they'd rather run the build themselves than pay someone else to run it.",
|
|
148
|
+
"features":
|
|
149
|
+
[
|
|
150
|
+
{
|
|
151
|
+
"title": "Typed schema registry",
|
|
152
|
+
"description": "60 page types, per-type Zod validation, JSON-LD emitted from frontmatter. Not a plugin bolted on later.",
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"title": "Peer surfaces — web, MCP, API",
|
|
156
|
+
"description": "The same capability, exposed three ways, with CI-enforced parity. Agents get a first-class surface from day one.",
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"title": "`ailk audit` CLI",
|
|
160
|
+
"description": "Scores AEO structure before launch and in CI. Free, in the OSS — not a $295/month add-on.",
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"title": "Agent-assisted scaffolding",
|
|
164
|
+
"description": "`create-ailk` plus the `.claude/` skill bundle. Reference brand to deployed site in days, not weeks.",
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
"variant": "default",
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"id": "tier-pro",
|
|
172
|
+
"type": "feature",
|
|
173
|
+
"data":
|
|
174
|
+
{
|
|
175
|
+
"headline": "What does Pro add for $249 per user per year?",
|
|
176
|
+
"description": "Pro adds per-user licensing on top of the same OSS substrate — nothing in the free layer gets held back. It's self-serve, billed through Stripe, priced per person on your team rather than per project.",
|
|
177
|
+
"features":
|
|
178
|
+
[
|
|
179
|
+
{
|
|
180
|
+
"title": "Per-user seat licensing",
|
|
181
|
+
"description": "Every teammate working across client projects gets their own seat, priced annually.",
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"title": "Self-serve billing",
|
|
185
|
+
"description": "Start or scale seats through Stripe. No sales call required to begin.",
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"title": "Continued access to every OSS update",
|
|
189
|
+
"description": "Schema registry, audit CLI, and scaffolding stay current. Pro adds seats to use the substrate across a team — it doesn't gate access to any of it.",
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
"variant": "default",
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"id": "tier-pro-plus",
|
|
197
|
+
"type": "feature",
|
|
198
|
+
"data":
|
|
199
|
+
{
|
|
200
|
+
"headline": "When do you need Pro Plus at $449 per user per month?",
|
|
201
|
+
"description": "Pro Plus is Pro with care — everything Pro ships, plus a direct support cadence with the Working Theory team. It suits agencies running several client sites who want a person to call, not just software to run.",
|
|
202
|
+
"features":
|
|
203
|
+
[
|
|
204
|
+
{
|
|
205
|
+
"title": "Everything in Pro",
|
|
206
|
+
"description": "Per-user licensing and every OSS update, unchanged.",
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"title": "Direct support cadence",
|
|
210
|
+
"description": "Ongoing hands-on help instead of self-serve-only — for teams managing multiple client sites at once.",
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"title": "Priced monthly, not annually",
|
|
214
|
+
"description": "$449/user/month reflects the ongoing support relationship, not a one-time software purchase.",
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
"variant": "default",
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"id": "tier-launch-service",
|
|
222
|
+
"type": "feature",
|
|
223
|
+
"data":
|
|
224
|
+
{
|
|
225
|
+
"headline": "What do you get from the $2,495 Launch Service?",
|
|
226
|
+
"description": "Launch Service is a fixed-scope, two-week deploy — you don't build it, we do. Onboarding takes a day; the site is live in two weeks. Agencies and SMB owners book it to get the foundation live without spending their own two weeks building it.",
|
|
227
|
+
"features":
|
|
228
|
+
[
|
|
229
|
+
{
|
|
230
|
+
"title": "Fixed two-week scope",
|
|
231
|
+
"description": "A single fixed price and a two-week deadline. Not an open-ended engagement.",
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"title": "Onboard in a day, live in two weeks",
|
|
235
|
+
"description": "The setup work that usually costs a senior developer's time is handled for you.",
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"title": "You own what ships",
|
|
239
|
+
"description": "The resulting codebase is Apache 2.0, same as the OSS layer. Nothing about Launch Service creates lock-in.",
|
|
240
|
+
"link":
|
|
241
|
+
{
|
|
242
|
+
"label": "Book Launch Service intro call",
|
|
243
|
+
"href": "/book-call",
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
],
|
|
247
|
+
"variant": "default",
|
|
248
|
+
},
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"id": "objection-fleet-management",
|
|
252
|
+
"type": "objection",
|
|
253
|
+
"data":
|
|
254
|
+
{
|
|
255
|
+
"eyebrow": "The honest answer",
|
|
256
|
+
"headline": "We run a portfolio of client sites — where's fleet management?",
|
|
257
|
+
"items":
|
|
258
|
+
[
|
|
259
|
+
{
|
|
260
|
+
"objection": "We manage a portfolio of client sites. Where's the fleet-management entitlement?",
|
|
261
|
+
"response": "Deferred. Fleet management (cross-site rollup, white-label, per-seat licensing) is planned as a future Enterprise multi-tenant entitlement, not a separate tier, and not shipped yet. At launch, agencies deliver on OSS plus Pro, priced per user. Multi-site management today is per-site, not fleet.",
|
|
262
|
+
},
|
|
263
|
+
],
|
|
264
|
+
"variant": "stacked",
|
|
265
|
+
},
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"id": "pricing-faq",
|
|
269
|
+
"type": "faq",
|
|
270
|
+
"data":
|
|
271
|
+
{
|
|
272
|
+
"headline": "Common questions about AILK pricing",
|
|
273
|
+
"items":
|
|
274
|
+
[
|
|
275
|
+
{
|
|
276
|
+
"question": "Why isn't the free OSS layer crippled to push Pro?",
|
|
277
|
+
"answer": "Because AILK is Apache 2.0 — complete, not source-available or feature-flagged. The schema registry, peer surfaces, audit CLI, and scaffolding all ship free. Pro and Pro Plus add per-user seats and support, not access to capability you'd otherwise lack.",
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"question": "Can I move from Pro to Launch Service later?",
|
|
281
|
+
"answer": "Yes. Pro and Launch Service aren't sequential tiers you graduate through — they solve different problems. Start on Pro if you're building it yourself; book Launch Service any time you want a fixed-scope deploy handled for you, whether or not you're already a Pro subscriber.",
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"question": "What happens to my site if I stop paying for Pro?",
|
|
285
|
+
"answer": "Nothing breaks. The codebase is Apache 2.0 — you keep it, deployed or not, whether or not you're a Pro subscriber. Pro pays for per-user seats and continued updates, not for the right to keep what you already built.",
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"question": "Is there a trial before I commit to Pro?",
|
|
289
|
+
"answer": "Start with the free OSS layer first — clone the repo, run `pnpm create ailk@latest`, and see the substrate directly. Because Pro adds seats and support rather than gating capability, evaluating the free tier is effectively your trial.",
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"question": "How is Pro Plus different from just hiring a freelancer?",
|
|
293
|
+
"answer": "A freelancer is a one-off relationship you have to re-onboard every time. Pro Plus is an ongoing support cadence with the team that built the substrate — the people who wrote the schema registry and the audit CLI are the ones answering when something breaks.",
|
|
294
|
+
},
|
|
295
|
+
],
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"id": "cta-final",
|
|
300
|
+
"type": "cta",
|
|
301
|
+
"data":
|
|
302
|
+
{
|
|
303
|
+
"headline": "Pick the path that matches how you ship.",
|
|
304
|
+
"description": "Self-serve on Free or Pro. Get ongoing support on Pro Plus. Or book Launch Service and have the foundation deployed for you in two weeks.",
|
|
305
|
+
"primaryCta": { "label": "Start Pro trial", "href": "/pricing#pro" },
|
|
306
|
+
"secondaryCta":
|
|
307
|
+
{
|
|
308
|
+
"label": "Book Launch Service intro call",
|
|
309
|
+
"href": "/book-call",
|
|
310
|
+
"variant": "outline",
|
|
311
|
+
},
|
|
312
|
+
"variant": "default",
|
|
313
|
+
},
|
|
314
|
+
},
|
|
315
|
+
]
|
|
316
|
+
status: "Approved"
|
|
317
|
+
pageKey: "Pricing"
|
|
318
|
+
entity: "ailaunchkit"
|
|
319
|
+
urlSlug: "pricing"
|
|
320
|
+
lastUpdated: "2026-07-06"
|
|
321
|
+
pageLevelSchemaType: "Pricing"
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
import { JsonLd } from "@/components/JsonLd";
|
|
325
|
+
|
|
326
|
+
<JsonLd
|
|
327
|
+
data={{
|
|
328
|
+
"@context": "https://schema.org",
|
|
329
|
+
"@graph": [
|
|
330
|
+
{
|
|
331
|
+
"@type": "Product",
|
|
332
|
+
additionalType: "SoftwareApplication",
|
|
333
|
+
"@id": "https://ailaunchkit.ai/#product",
|
|
334
|
+
name: "AI Launch Kit",
|
|
335
|
+
alternateName: [
|
|
336
|
+
"AI Launch Kit by Working Theory",
|
|
337
|
+
"AILK by Working Theory",
|
|
338
|
+
"AILK",
|
|
339
|
+
"@ailaunchkit",
|
|
340
|
+
"@ailk",
|
|
341
|
+
"@working-theory",
|
|
342
|
+
"ai-launch-kit",
|
|
343
|
+
],
|
|
344
|
+
url: "https://ailaunchkit.ai",
|
|
345
|
+
description:
|
|
346
|
+
"AI Launch Kit is the open-source website foundation for the agent-first internet — Apache 2.0, agent-ready, AEO-scored, deployable in days.",
|
|
347
|
+
sameAs: [
|
|
348
|
+
"https://github.com/working-theory-labs/ai-launch-kit",
|
|
349
|
+
"https://x.com/ailaunchkit",
|
|
350
|
+
"https://www.npmjs.com/org/ailk",
|
|
351
|
+
"https://youtube.com/@working-theory",
|
|
352
|
+
"https://linkedin.com/company/working-theory",
|
|
353
|
+
],
|
|
354
|
+
foundingDate: "2026",
|
|
355
|
+
manufacturer: {
|
|
356
|
+
"@id": "https://ailaunchkit.ai/#salessmyth-organization",
|
|
357
|
+
"@type": "Organization",
|
|
358
|
+
name: "SalesSmyth LLC",
|
|
359
|
+
},
|
|
360
|
+
brand: {
|
|
361
|
+
"@id": "https://workingtheory.ai/#organization",
|
|
362
|
+
"@type": "Brand",
|
|
363
|
+
name: "Working Theory",
|
|
364
|
+
},
|
|
365
|
+
creator: {
|
|
366
|
+
"@id": "https://ailaunchkit.ai/#sam-henry",
|
|
367
|
+
"@type": "Person",
|
|
368
|
+
name: "Sam Henry",
|
|
369
|
+
},
|
|
370
|
+
category: "Open-source website foundation",
|
|
371
|
+
applicationCategory: "DeveloperApplication",
|
|
372
|
+
operatingSystem: "Cross-platform (Node.js)",
|
|
373
|
+
license: "https://www.apache.org/licenses/LICENSE-2.0",
|
|
374
|
+
codeRepository: "https://github.com/working-theory-labs/ai-launch-kit",
|
|
375
|
+
offers: [
|
|
376
|
+
{
|
|
377
|
+
"@type": "Offer",
|
|
378
|
+
name: "Free (OSS)",
|
|
379
|
+
price: "0",
|
|
380
|
+
priceCurrency: "USD",
|
|
381
|
+
category: "Apache 2.0 open-source layer",
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"@type": "Offer",
|
|
385
|
+
name: "Pro",
|
|
386
|
+
price: "249",
|
|
387
|
+
priceCurrency: "USD",
|
|
388
|
+
priceSpecification: {
|
|
389
|
+
"@type": "UnitPriceSpecification",
|
|
390
|
+
price: "249",
|
|
391
|
+
priceCurrency: "USD",
|
|
392
|
+
unitText: "per user per year",
|
|
393
|
+
},
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"@type": "Offer",
|
|
397
|
+
name: "Pro Plus",
|
|
398
|
+
price: "449",
|
|
399
|
+
priceCurrency: "USD",
|
|
400
|
+
priceSpecification: {
|
|
401
|
+
"@type": "UnitPriceSpecification",
|
|
402
|
+
price: "449",
|
|
403
|
+
priceCurrency: "USD",
|
|
404
|
+
unitText: "per user per month",
|
|
405
|
+
},
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"@type": "Offer",
|
|
409
|
+
name: "Launch Service",
|
|
410
|
+
price: "2495",
|
|
411
|
+
priceCurrency: "USD",
|
|
412
|
+
category: "Fixed-scope two-week deploy engagement",
|
|
413
|
+
},
|
|
414
|
+
],
|
|
415
|
+
contributor: [
|
|
416
|
+
{
|
|
417
|
+
"@type": "SoftwareApplication",
|
|
418
|
+
name: "Claudio Planck",
|
|
419
|
+
description:
|
|
420
|
+
"AI engineering agent contributing to architecture, code review, and implementation across the AILK substrate.",
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"@type": "SoftwareApplication",
|
|
424
|
+
name: "Anders Stewart",
|
|
425
|
+
description:
|
|
426
|
+
"AI VP Engineering agent owning implementation strategy across the AILK substrate.",
|
|
427
|
+
},
|
|
428
|
+
],
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"@type": "WebPage",
|
|
432
|
+
"@id": "https://ailaunchkit.ai/pricing#webpage",
|
|
433
|
+
url: "https://ailaunchkit.ai/pricing",
|
|
434
|
+
name: "Pricing that adds capability, never gates access.",
|
|
435
|
+
description:
|
|
436
|
+
"AILK pricing: Apache 2.0 OSS free forever, Pro at $249/user/year, Pro Plus at $449/user/month, and a $2,495 fixed-scope Launch Service. Capability isn't gated.",
|
|
437
|
+
isPartOf: { "@id": "https://ailaunchkit.ai/#product" },
|
|
438
|
+
mainEntity: {
|
|
439
|
+
"@type": "Product",
|
|
440
|
+
"@id": "https://ailaunchkit.ai/#product",
|
|
441
|
+
offers: [
|
|
442
|
+
{
|
|
443
|
+
"@type": "Offer",
|
|
444
|
+
name: "Free (OSS)",
|
|
445
|
+
price: "0",
|
|
446
|
+
priceCurrency: "USD",
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"@type": "Offer",
|
|
450
|
+
name: "Pro",
|
|
451
|
+
price: "249",
|
|
452
|
+
priceCurrency: "USD",
|
|
453
|
+
priceSpecification: {
|
|
454
|
+
"@type": "UnitPriceSpecification",
|
|
455
|
+
price: "249",
|
|
456
|
+
priceCurrency: "USD",
|
|
457
|
+
unitText: "per user per year",
|
|
458
|
+
},
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"@type": "Offer",
|
|
462
|
+
name: "Pro Plus",
|
|
463
|
+
price: "449",
|
|
464
|
+
priceCurrency: "USD",
|
|
465
|
+
priceSpecification: {
|
|
466
|
+
"@type": "UnitPriceSpecification",
|
|
467
|
+
price: "449",
|
|
468
|
+
priceCurrency: "USD",
|
|
469
|
+
unitText: "per user per month",
|
|
470
|
+
},
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"@type": "Offer",
|
|
474
|
+
name: "Launch Service",
|
|
475
|
+
price: "2495",
|
|
476
|
+
priceCurrency: "USD",
|
|
477
|
+
},
|
|
478
|
+
],
|
|
479
|
+
},
|
|
480
|
+
mainContentOfPage: {
|
|
481
|
+
"@type": "WebPageElement",
|
|
482
|
+
cssSelector: "#pricing-faq",
|
|
483
|
+
},
|
|
484
|
+
about: { "@id": "https://ailaunchkit.ai/#product" },
|
|
485
|
+
hasPart: [
|
|
486
|
+
{
|
|
487
|
+
"@type": "FAQPage",
|
|
488
|
+
"@id": "https://ailaunchkit.ai/pricing#faq",
|
|
489
|
+
mainEntity: [
|
|
490
|
+
{
|
|
491
|
+
"@type": "Question",
|
|
492
|
+
name: "Why isn't the free OSS layer crippled to push Pro?",
|
|
493
|
+
acceptedAnswer: {
|
|
494
|
+
"@type": "Answer",
|
|
495
|
+
text: "Because AILK is Apache 2.0 — complete, not source-available or feature-flagged. The schema registry, peer surfaces, audit CLI, and scaffolding all ship free. Pro and Pro Plus add per-user seats and support, not access to capability you'd otherwise lack.",
|
|
496
|
+
},
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"@type": "Question",
|
|
500
|
+
name: "Can I move from Pro to Launch Service later?",
|
|
501
|
+
acceptedAnswer: {
|
|
502
|
+
"@type": "Answer",
|
|
503
|
+
text: "Yes. Pro and Launch Service aren't sequential tiers you graduate through — they solve different problems. Start on Pro if you're building it yourself; book Launch Service any time you want a fixed-scope deploy handled for you, whether or not you're already a Pro subscriber.",
|
|
504
|
+
},
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"@type": "Question",
|
|
508
|
+
name: "What happens to my site if I stop paying for Pro?",
|
|
509
|
+
acceptedAnswer: {
|
|
510
|
+
"@type": "Answer",
|
|
511
|
+
text: "Nothing breaks. The codebase is Apache 2.0 — you keep it, deployed or not, whether or not you're a Pro subscriber. Pro pays for per-user seats and continued updates, not for the right to keep what you already built.",
|
|
512
|
+
},
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"@type": "Question",
|
|
516
|
+
name: "Is there a trial before I commit to Pro?",
|
|
517
|
+
acceptedAnswer: {
|
|
518
|
+
"@type": "Answer",
|
|
519
|
+
text: "Start with the free OSS layer first — clone the repo, run `pnpm create ailk@latest`, and see the substrate directly. Because Pro adds seats and support rather than gating capability, evaluating the free tier is effectively your trial.",
|
|
520
|
+
},
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"@type": "Question",
|
|
524
|
+
name: "How is Pro Plus different from just hiring a freelancer?",
|
|
525
|
+
acceptedAnswer: {
|
|
526
|
+
"@type": "Answer",
|
|
527
|
+
text: "A freelancer is a one-off relationship you have to re-onboard every time. Pro Plus is an ongoing support cadence with the team that built the substrate — the people who wrote the schema registry and the audit CLI are the ones answering when something breaks.",
|
|
528
|
+
},
|
|
529
|
+
},
|
|
530
|
+
],
|
|
531
|
+
},
|
|
532
|
+
],
|
|
533
|
+
},
|
|
534
|
+
],
|
|
535
|
+
}}
|
|
536
|
+
/>
|
|
537
|
+
|
|
538
|
+
{/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. Landed by land-section-catalog.py (#3111). */}
|