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,209 @@
|
|
|
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
|
+
"manufacturer": {
|
|
29
|
+
"@id": "https://ailaunchkit.ai/#salessmyth-organization",
|
|
30
|
+
"@type": "Organization",
|
|
31
|
+
"name": "SalesSmyth LLC"
|
|
32
|
+
},
|
|
33
|
+
"brand": {
|
|
34
|
+
"@id": "https://workingtheory.ai/#organization",
|
|
35
|
+
"@type": "Brand",
|
|
36
|
+
"name": "Working Theory"
|
|
37
|
+
},
|
|
38
|
+
"creator": {
|
|
39
|
+
"@id": "https://ailaunchkit.ai/#sam-henry",
|
|
40
|
+
"@type": "Person",
|
|
41
|
+
"name": "Sam Henry"
|
|
42
|
+
},
|
|
43
|
+
"category": "Open-source website foundation",
|
|
44
|
+
"applicationCategory": "DeveloperApplication",
|
|
45
|
+
"operatingSystem": "Cross-platform (Node.js)",
|
|
46
|
+
"license": "https://www.apache.org/licenses/LICENSE-2.0",
|
|
47
|
+
"codeRepository": "https://github.com/working-theory-labs/ai-launch-kit",
|
|
48
|
+
"offers": [
|
|
49
|
+
{
|
|
50
|
+
"@type": "Offer",
|
|
51
|
+
"name": "Free (OSS)",
|
|
52
|
+
"price": "0",
|
|
53
|
+
"priceCurrency": "USD",
|
|
54
|
+
"category": "Apache 2.0 open-source layer"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"@type": "Offer",
|
|
58
|
+
"name": "Pro",
|
|
59
|
+
"price": "249",
|
|
60
|
+
"priceCurrency": "USD",
|
|
61
|
+
"priceSpecification": {
|
|
62
|
+
"@type": "UnitPriceSpecification",
|
|
63
|
+
"price": "249",
|
|
64
|
+
"priceCurrency": "USD",
|
|
65
|
+
"unitText": "per user per year"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"@type": "Offer",
|
|
70
|
+
"name": "Pro Plus",
|
|
71
|
+
"price": "449",
|
|
72
|
+
"priceCurrency": "USD",
|
|
73
|
+
"priceSpecification": {
|
|
74
|
+
"@type": "UnitPriceSpecification",
|
|
75
|
+
"price": "449",
|
|
76
|
+
"priceCurrency": "USD",
|
|
77
|
+
"unitText": "per user per month"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"@type": "Offer",
|
|
82
|
+
"name": "Launch Service",
|
|
83
|
+
"price": "2495",
|
|
84
|
+
"priceCurrency": "USD",
|
|
85
|
+
"category": "Fixed-scope two-week deploy engagement"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"contributor": [
|
|
89
|
+
{
|
|
90
|
+
"@type": "SoftwareApplication",
|
|
91
|
+
"name": "Claudio Planck",
|
|
92
|
+
"description": "AI engineering agent contributing to architecture, code review, and implementation across the AILK substrate."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"@type": "SoftwareApplication",
|
|
96
|
+
"name": "Anders Stewart",
|
|
97
|
+
"description": "AI VP Engineering agent owning implementation strategy across the AILK substrate."
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"@type": "WebPage",
|
|
103
|
+
"@id": "https://ailaunchkit.ai/pricing#webpage",
|
|
104
|
+
"url": "https://ailaunchkit.ai/pricing",
|
|
105
|
+
"name": "Pricing that adds capability, never gates access.",
|
|
106
|
+
"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.",
|
|
107
|
+
"isPartOf": {
|
|
108
|
+
"@id": "https://ailaunchkit.ai/#product"
|
|
109
|
+
},
|
|
110
|
+
"mainEntity": {
|
|
111
|
+
"@type": "Product",
|
|
112
|
+
"@id": "https://ailaunchkit.ai/#product",
|
|
113
|
+
"offers": [
|
|
114
|
+
{
|
|
115
|
+
"@type": "Offer",
|
|
116
|
+
"name": "Free (OSS)",
|
|
117
|
+
"price": "0",
|
|
118
|
+
"priceCurrency": "USD"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"@type": "Offer",
|
|
122
|
+
"name": "Pro",
|
|
123
|
+
"price": "249",
|
|
124
|
+
"priceCurrency": "USD",
|
|
125
|
+
"priceSpecification": {
|
|
126
|
+
"@type": "UnitPriceSpecification",
|
|
127
|
+
"price": "249",
|
|
128
|
+
"priceCurrency": "USD",
|
|
129
|
+
"unitText": "per user per year"
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"@type": "Offer",
|
|
134
|
+
"name": "Pro Plus",
|
|
135
|
+
"price": "449",
|
|
136
|
+
"priceCurrency": "USD",
|
|
137
|
+
"priceSpecification": {
|
|
138
|
+
"@type": "UnitPriceSpecification",
|
|
139
|
+
"price": "449",
|
|
140
|
+
"priceCurrency": "USD",
|
|
141
|
+
"unitText": "per user per month"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"@type": "Offer",
|
|
146
|
+
"name": "Launch Service",
|
|
147
|
+
"price": "2495",
|
|
148
|
+
"priceCurrency": "USD"
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
"mainContentOfPage": {
|
|
153
|
+
"@type": "WebPageElement",
|
|
154
|
+
"cssSelector": "#pricing-faq"
|
|
155
|
+
},
|
|
156
|
+
"about": {
|
|
157
|
+
"@id": "https://ailaunchkit.ai/#product"
|
|
158
|
+
},
|
|
159
|
+
"hasPart": [
|
|
160
|
+
{
|
|
161
|
+
"@type": "FAQPage",
|
|
162
|
+
"@id": "https://ailaunchkit.ai/pricing#faq",
|
|
163
|
+
"mainEntity": [
|
|
164
|
+
{
|
|
165
|
+
"@type": "Question",
|
|
166
|
+
"name": "Why isn't the free OSS layer crippled to push Pro?",
|
|
167
|
+
"acceptedAnswer": {
|
|
168
|
+
"@type": "Answer",
|
|
169
|
+
"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."
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"@type": "Question",
|
|
174
|
+
"name": "Can I move from Pro to Launch Service later?",
|
|
175
|
+
"acceptedAnswer": {
|
|
176
|
+
"@type": "Answer",
|
|
177
|
+
"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."
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"@type": "Question",
|
|
182
|
+
"name": "What happens to my site if I stop paying for Pro?",
|
|
183
|
+
"acceptedAnswer": {
|
|
184
|
+
"@type": "Answer",
|
|
185
|
+
"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."
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"@type": "Question",
|
|
190
|
+
"name": "Is there a trial before I commit to Pro?",
|
|
191
|
+
"acceptedAnswer": {
|
|
192
|
+
"@type": "Answer",
|
|
193
|
+
"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."
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"@type": "Question",
|
|
198
|
+
"name": "How is Pro Plus different from just hiring a freelancer?",
|
|
199
|
+
"acceptedAnswer": {
|
|
200
|
+
"@type": "Answer",
|
|
201
|
+
"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."
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
]
|
|
209
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "PrivacyPage"
|
|
3
|
+
slug: "privacy"
|
|
4
|
+
title: "Privacy Policy"
|
|
5
|
+
description: "AI Launch Kit's privacy policy — what SalesSmyth LLC collects on ailaunchkit.ai, how it's used, and how to reach us with questions."
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "hero",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"headline": "Privacy Policy",
|
|
14
|
+
"subheadline": "What we collect on ailaunchkit.ai, how we use it, and how to reach us. Last updated 2026-07-11.",
|
|
15
|
+
"primaryCta":
|
|
16
|
+
{
|
|
17
|
+
"label": "Email us with questions",
|
|
18
|
+
"href": "mailto:hello@ailaunchkit.ai",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "who-we-are",
|
|
24
|
+
"type": "content-block",
|
|
25
|
+
"data":
|
|
26
|
+
{
|
|
27
|
+
"body": "SalesSmyth LLC operates ailaunchkit.ai. AI Launch Kit (AILK) is a product published under the Working Theory brand, and SalesSmyth LLC is the company behind it. This policy covers three things: the marketing pages, the forms you can submit, and the open-source project referenced from this site.",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "what-we-collect",
|
|
32
|
+
"type": "content-block",
|
|
33
|
+
"data":
|
|
34
|
+
{
|
|
35
|
+
"body": "We collect the email address you submit through the newsletter signup, the contact form, or the book-a-call form. If you write to us directly, we keep the content of that message. We also collect standard server logs (IP address, browser type, pages requested) and basic analytics data (pages viewed, referring source, approximate location) generated by visiting the site. We do not collect payment information on this marketing site. Our payment provider handles Pro and Launch Service purchases directly, and that data never reaches us.",
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "how-we-use-it",
|
|
40
|
+
"type": "content-block",
|
|
41
|
+
"data":
|
|
42
|
+
{
|
|
43
|
+
"body": "Your email gets used for three things: replying to what you asked, sending the newsletter updates you opted into, and running the service, which means scheduling calls, following up on Launch Service requests, and keeping the site working. Server logs and analytics help us spot problems and understand how the site performs. We do not sell personal data. We do not build advertising profiles from it.",
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "third-party-processors",
|
|
48
|
+
"type": "content-block",
|
|
49
|
+
"data":
|
|
50
|
+
{
|
|
51
|
+
"body": "A small number of processors act on our behalf: a hosting provider that serves the site, an analytics provider that measures traffic, a scheduling provider that runs the book-a-call flow, and an email-delivery provider that sends the newsletter and transactional messages. Each one handles only the data it needs to do its job. None of them uses it for their own purposes.",
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "retention-and-choices",
|
|
56
|
+
"type": "content-block",
|
|
57
|
+
"data":
|
|
58
|
+
{
|
|
59
|
+
"body": "Unsubscribe from the newsletter any time using the link in any email we send. Want to see what we hold on you, or want it gone? Email hello@ailaunchkit.ai. Contact-form and inquiry data stays on file only as long as we need it to respond and to keep a record of the exchange, and we remove it on request.",
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "contact-and-changes",
|
|
64
|
+
"type": "contact-channels",
|
|
65
|
+
"data":
|
|
66
|
+
{
|
|
67
|
+
"items":
|
|
68
|
+
[
|
|
69
|
+
{
|
|
70
|
+
"icon": "mail",
|
|
71
|
+
"headline": "Privacy questions",
|
|
72
|
+
"description": "Email hello@ailaunchkit.ai with any question about this policy or your data.",
|
|
73
|
+
"cta":
|
|
74
|
+
{
|
|
75
|
+
"label": "Email hello@ailaunchkit.ai",
|
|
76
|
+
"href": "mailto:hello@ailaunchkit.ai",
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"icon": "file-text",
|
|
81
|
+
"headline": "Policy changes",
|
|
82
|
+
"description": "When this policy changes, the update is posted here with a new last-updated date. We do not notify you separately for routine updates.",
|
|
83
|
+
"cta":
|
|
84
|
+
{ "label": "Re-read this page anytime", "href": "/privacy" },
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
]
|
|
90
|
+
status: "Approved"
|
|
91
|
+
pageKey: "PrivacyPage"
|
|
92
|
+
entity: "ailaunchkit"
|
|
93
|
+
urlSlug: "privacy-page"
|
|
94
|
+
lastUpdated: "2026-07-06"
|
|
95
|
+
pageLevelSchemaType: "PrivacyPage"
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
import { JsonLd } from "@/components/JsonLd";
|
|
99
|
+
|
|
100
|
+
<JsonLd
|
|
101
|
+
data={{
|
|
102
|
+
"@context": "https://schema.org",
|
|
103
|
+
"@graph": [
|
|
104
|
+
{
|
|
105
|
+
"@type": "Product",
|
|
106
|
+
additionalType: "SoftwareApplication",
|
|
107
|
+
"@id": "https://ailaunchkit.ai/#product",
|
|
108
|
+
name: "AI Launch Kit",
|
|
109
|
+
alternateName: [
|
|
110
|
+
"AI Launch Kit by Working Theory",
|
|
111
|
+
"AILK by Working Theory",
|
|
112
|
+
"AILK",
|
|
113
|
+
"@ailaunchkit",
|
|
114
|
+
"@ailk",
|
|
115
|
+
"@working-theory",
|
|
116
|
+
"ai-launch-kit",
|
|
117
|
+
],
|
|
118
|
+
url: "https://ailaunchkit.ai",
|
|
119
|
+
description:
|
|
120
|
+
"AI Launch Kit is the open-source website foundation for the agent-first internet — Apache 2.0, agent-ready, AEO-scored, deployable in days.",
|
|
121
|
+
sameAs: [
|
|
122
|
+
"https://github.com/working-theory-labs/ai-launch-kit",
|
|
123
|
+
"https://x.com/ailaunchkit",
|
|
124
|
+
"https://www.npmjs.com/org/ailk",
|
|
125
|
+
"https://youtube.com/@working-theory",
|
|
126
|
+
"https://linkedin.com/company/working-theory",
|
|
127
|
+
],
|
|
128
|
+
foundingDate: "2026",
|
|
129
|
+
manufacturer: {
|
|
130
|
+
"@type": "Organization",
|
|
131
|
+
"@id": "https://ailaunchkit.ai/#salessmyth-llc",
|
|
132
|
+
name: "SalesSmyth LLC",
|
|
133
|
+
},
|
|
134
|
+
brand: {
|
|
135
|
+
"@type": "Brand",
|
|
136
|
+
"@id": "https://workingtheory.ai/#organization",
|
|
137
|
+
name: "Working Theory",
|
|
138
|
+
},
|
|
139
|
+
creator: {
|
|
140
|
+
"@type": "Person",
|
|
141
|
+
"@id": "https://samhenry.org/#person",
|
|
142
|
+
name: "Sam Henry",
|
|
143
|
+
},
|
|
144
|
+
category: "Open-source website foundation",
|
|
145
|
+
applicationCategory: "DeveloperApplication",
|
|
146
|
+
operatingSystem: "Cross-platform (Node.js)",
|
|
147
|
+
license: "https://www.apache.org/licenses/LICENSE-2.0",
|
|
148
|
+
codeRepository: "https://github.com/working-theory-labs/ai-launch-kit",
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"@type": "PrivacyPolicy",
|
|
152
|
+
"@id": "https://ailaunchkit.ai/privacy#privacypolicy",
|
|
153
|
+
url: "https://ailaunchkit.ai/privacy",
|
|
154
|
+
name: "Privacy Policy",
|
|
155
|
+
description:
|
|
156
|
+
"AI Launch Kit's privacy policy — what SalesSmyth LLC collects on ailaunchkit.ai, how it's used, and how to reach us with questions.",
|
|
157
|
+
isPartOf: { "@id": "https://ailaunchkit.ai/#product" },
|
|
158
|
+
publisher: { "@id": "https://ailaunchkit.ai/#salessmyth-llc" },
|
|
159
|
+
dateModified: "2026-07-11",
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
}}
|
|
163
|
+
/>
|
|
164
|
+
|
|
165
|
+
{/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. Landed by land-section-catalog.py (#3111). */}
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
"manufacturer": {
|
|
29
|
+
"@type": "Organization",
|
|
30
|
+
"@id": "https://ailaunchkit.ai/#salessmyth-llc",
|
|
31
|
+
"name": "SalesSmyth LLC"
|
|
32
|
+
},
|
|
33
|
+
"brand": {
|
|
34
|
+
"@type": "Brand",
|
|
35
|
+
"@id": "https://workingtheory.ai/#organization",
|
|
36
|
+
"name": "Working Theory"
|
|
37
|
+
},
|
|
38
|
+
"creator": {
|
|
39
|
+
"@type": "Person",
|
|
40
|
+
"@id": "https://samhenry.org/#person",
|
|
41
|
+
"name": "Sam Henry"
|
|
42
|
+
},
|
|
43
|
+
"category": "Open-source website foundation",
|
|
44
|
+
"applicationCategory": "DeveloperApplication",
|
|
45
|
+
"operatingSystem": "Cross-platform (Node.js)",
|
|
46
|
+
"license": "https://www.apache.org/licenses/LICENSE-2.0",
|
|
47
|
+
"codeRepository": "https://github.com/working-theory-labs/ai-launch-kit"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"@type": "PrivacyPolicy",
|
|
51
|
+
"@id": "https://ailaunchkit.ai/privacy#privacypolicy",
|
|
52
|
+
"url": "https://ailaunchkit.ai/privacy",
|
|
53
|
+
"name": "Privacy Policy",
|
|
54
|
+
"description": "AI Launch Kit's privacy policy — what SalesSmyth LLC collects on ailaunchkit.ai, how it's used, and how to reach us with questions.",
|
|
55
|
+
"isPartOf": {
|
|
56
|
+
"@id": "https://ailaunchkit.ai/#product"
|
|
57
|
+
},
|
|
58
|
+
"publisher": {
|
|
59
|
+
"@id": "https://ailaunchkit.ai/#salessmyth-llc"
|
|
60
|
+
},
|
|
61
|
+
"dateModified": "2026-07-11"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "Product"
|
|
3
|
+
slug: "ailk"
|
|
4
|
+
title: "Ship the open-source website foundation built for the agent-first internet."
|
|
5
|
+
description: "AI Launch Kit is the open-source, Apache 2.0 website foundation for the agent-first internet — schema-typed, agent-callable, AEO-scored, and deployable in days."
|
|
6
|
+
sections: [{"id": "hero", "type": "hero", "data": {"badge": "Sam Henry, Working Theory, and SalesSmyth all publish on this same foundation.", "headline": "Ship the open-source website foundation built for the agent-first internet.", "subheadline": "Apache 2.0. A typed schema registry, peer surfaces for agents, and an audit CLI that runs in CI — before the site ships.", "primaryCta": {"label": "pnpm create ailk@latest", "href": "https://github.com/working-theory-labs/ai-launch-kit", "variant": "default"}, "secondaryCta": {"label": "See pricing", "href": "/pricing", "variant": "outline"}, "variant": "default"}}, {"id": "what-is-ailk", "type": "content-block", "data": {"headline": "What is AI Launch Kit?", "body": "AI Launch Kit (AILK) is the open-source website foundation for the agent-first internet — the substrate AI-search agencies and developers use to ship SMB sites that work for agents and humans from day one. The Apache 2.0 starter ships a typed schema registry, a first-class MCP server with CI-enforced parity to the human UI, an AEO scoring CLI, and an agent-assisted scaffolding workflow.\n\nMost website foundations were built for one audience. WordPress was built when Google was the only entry point. SaaS starters were built for dashboards and auth. AILK is built so a model can read a page, identify the brand behind it, and trust the structure enough to quote — and so an agent acting on a buyer's behalf can call the same capabilities a human uses.\n\nBuilt by the Working Theory Labs team, who run Sam Henry, Working Theory, and SalesSmyth on the same substrate. Paid tiers add capability. They never gate access."}}, {"id": "what-ships-out-of-the-box", "type": "bento-grid", "data": {"headline": "What does AILK ship out of the box?", "description": "Five structural capabilities ship in the Apache 2.0 starter — each one a thing the alternatives don't ship, paired with what it changes for the team publishing on it.", "items": [{"title": "A typed schema registry, native to the foundation", "description": "Sixty page types, each with Zod validation and JSON-LD emission from frontmatter. Ship a page, ship the structure — no plugin stack to maintain. The result: citation work compounds instead of re-fighting the foundation on every campaign.", "span": "default"}, {"title": "Peer surfaces over one substrate", "description": "Web for humans, MCP for agents, HTTP API for programmatic callers — one repo, CI-enforced parity. That's enterprise-grade architecture, running at SMB-engagement economics.", "span": "default"}, {"title": "The ailk audit CLI, built into the OSS", "description": "Runs pre-launch and in CI, catching missing schema and ambiguous entities before the site ships. The result: AEO gaps get caught in minutes, not three months after a client notices they're invisible.", "span": "default"}, {"title": "Apache 2.0. Complete OSS.", "description": "Not source-available, not crippled to sell the paid tier. Paid tiers add capability, not access. So you own the substrate — and the client relationship that runs on it.", "span": "default"}, {"title": "Agent-assisted scaffolding and iteration", "description": "create-ailk generates the project; the .claude/ bundle ships eight skills for scaffolding, schema, and auditing. That's why onboarding takes a day, deploy takes two weeks, and the marginal cost of a page approaches zero.", "span": "wide"}]}}, {"id": "peer-surfaces-architecture", "type": "feature", "data": {"headline": "How does the peer-surfaces architecture work?", "features": [{"title": "Three peer apps, one repo", "description": "Three apps live in the same repo: `apps/web` for humans, `apps/mcp` for agents, `apps/api` for programmatic callers. Whatever a person can do on the web, an agent can do through MCP, and a script can do through the API — one-to-one, CI-enforced. A test in CI fails the build if a capability lands in `apps/web` without an equivalent MCP tool and API route.\n\nThat's the difference between agent-ready as a claim and agent-ready as a structural property of the repo. No SaaS starter or closed builder is architected this way. Enterprise CMS platforms charge six figures for something like it. AILK ships it as the default, in an Apache 2.0 starter, because agents reading and acting on a buyer's behalf are no longer a hypothetical audience."}], "variant": "default"}}, {"id": "ailk-audit-cli", "type": "feature", "data": {"headline": "What does the ailk audit CLI check before you ship?", "features": [{"title": "Pre-launch and CI-enforced AEO scoring", "description": "`ailk audit` runs against any AILK site before it ships and again on every pull request in CI. It checks for missing schema, ambiguous entity markup, and pages that don't emit JSON-LD — the structural gaps that make a page invisible to AI search even though nothing looks broken to a human visitor.\n\nEnterprise AEO platforms charge $295 a month or more to measure the same problems after they've already cost a client citations. AILK measures structural readiness before launch, free, because it's part of the foundation rather than a paid layer bolted on top.\n\nOutput comes in two forms: JSON for CI tooling, a human-readable report for review.\n\nRun it against this site — the audit that grades ailaunchkit.ai is the same audit that ships in the OSS."}], "variant": "default"}}, {"id": "apache-2-0-complete-oss", "type": "feature", "data": {"headline": "Why does Apache 2.0 matter here?", "features": [{"title": "Structurally complete OSS", "description": "AILK ships under Apache 2.0. The schema registry, the peer-surfaces architecture, and the audit CLI are all in the free tier — not source-available, not free-until-you-make-money, not deliberately crippled so the paid tier earns its keep.\n\nPro and Pro Plus add capability: lead-routing, care and maintenance, and features layered on top of a foundation that already works without them. They don't gate access to what makes a site agent-ready or AEO-scored in the first place.\n\nDeveloper OSS-skepticism is a real filter — most open-source starters hold something back. AILK passes it because the downside is bounded: if the project never finds traction, you keep the codebase and the client relationship running on it."}], "variant": "default"}}, {"id": "agent-assisted-scaffolding", "type": "feature", "data": {"headline": "How does agent-assisted scaffolding cut the marginal cost of a page to zero?", "features": [{"title": "create-ailk plus the .claude/ skill bundle", "description": "`create-ailk` generates the three-peer-app skeleton in one command. The `.claude/` bundle that ships with it carries eight skills — `extract-design-from-reference`, `suggest-site-pages`, `scaffold-page`, `add-schema`, `audit-site`, `scaffold-auth`, `scaffold-commerce`, and `provision-config` — that turn scaffolding and iteration into guided agent workflows instead of senior-developer setup work.\n\nThe initial deploy is one workflow. Adding a service page next week is the same workflow. Restructuring a content surface six months in is still the same workflow. That's what it means for the marginal cost of a page to approach zero: onboarding takes a day, the first deploy takes about two weeks, and every page after that is a Claude Code session, not a project."}], "variant": "default"}}, {"id": "product-faq", "type": "faq", "data": {"headline": "Common questions about AILK", "items": [{"question": "Is the OSS layer really complete, or is it crippled to sell the paid tiers?", "answer": "It's complete. The typed schema registry, the peer-surfaces architecture (web, MCP, API), and the ailk audit CLI all ship in the free, Apache 2.0 tier. Pro and Pro Plus add capability — lead routing, care and maintenance — on top of a foundation that already works without them. Nothing structural is held back to force an upgrade."}, {"question": "Do I have to use MDX and Next.js to get the AEO benefits?", "answer": "The foundation is Next.js and MDX under the hood, and that's what the typed schema registry and JSON-LD emission run on. If your team isn't Next.js-native, the Launch Service path deploys the foundation for you — you get the same schema and agent-ready structure without writing the MDX yourself."}, {"question": "What's the difference between the free tier and Pro?", "answer": "The free, Apache 2.0 tier ships the full foundation — schema registry, peer surfaces, audit CLI, scaffolding. Pro and Pro Plus, priced per user, add capability like lead-routing and ongoing care on top. See Pricing for the full tier breakdown."}, {"question": "Can I run the ailk audit CLI without adopting the whole foundation?", "answer": "The CLI is built to grade AILK sites specifically — it checks the schema registry and JSON-LD conventions the foundation ships with. It's not a standalone tool for arbitrary sites today; running it means running it against a site built on AILK."}]}}, {"id": "closing-cta", "type": "cta", "data": {"headline": "Clone the foundation and see the structure for yourself.", "description": "The schema registry, the peer-surfaces architecture, and the audit CLI are in the repo, not on a slide deck. Clone it and check.", "primaryCta": {"label": "pnpm create ailk@latest", "href": "https://github.com/working-theory-labs/ai-launch-kit", "variant": "default"}, "secondaryCta": {"label": "See pricing", "href": "/pricing", "variant": "outline"}, "variant": "default"}}]
|
|
7
|
+
status: "Approved"
|
|
8
|
+
pageKey: "Product"
|
|
9
|
+
entity: "ailaunchkit"
|
|
10
|
+
urlSlug: "product"
|
|
11
|
+
lastUpdated: "2026-07-06"
|
|
12
|
+
pageLevelSchemaType: "Product"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
import { JsonLd } from '@/components/JsonLd'
|
|
16
|
+
|
|
17
|
+
<JsonLd data={{"@context": "https://schema.org", "@graph": [{"@type": "Product", "@id": "https://ailaunchkit.ai/#product", "name": "AI Launch Kit", "alternateName": ["AI Launch Kit by Working Theory", "AILK by Working Theory", "AILK", "@ailaunchkit", "@ailk", "@working-theory", "ai-launch-kit"], "url": "https://ailaunchkit.ai", "description": "AI Launch Kit is the open-source website foundation for the agent-first internet — Apache 2.0, agent-ready, AEO-scored, deployable in days.", "sameAs": ["https://github.com/working-theory-labs/ai-launch-kit", "https://x.com/ailaunchkit", "https://www.npmjs.com/org/ailk", "https://youtube.com/@working-theory", "https://linkedin.com/company/working-theory"], "foundingDate": "2026", "category": "Open-source website foundation", "applicationCategory": "DeveloperApplication", "operatingSystem": "Cross-platform (Node.js)", "license": "https://www.apache.org/licenses/LICENSE-2.0", "codeRepository": "https://github.com/working-theory-labs/ai-launch-kit", "manufacturer": {"@id": "https://workingtheory.ai/#organization"}, "brand": {"@id": "https://workingtheory.ai/#organization"}, "creator": {"@id": "https://samhenry.org/#person"}, "offers": [{"@type": "Offer", "name": "Free (OSS, Apache 2.0)", "price": "0", "priceCurrency": "USD"}, {"@type": "Offer", "name": "Pro", "price": "249", "priceCurrency": "USD", "priceSpecification": {"@type": "UnitPriceSpecification", "price": "249", "priceCurrency": "USD", "unitText": "per user per year"}}, {"@type": "Offer", "name": "Pro Plus", "price": "449", "priceCurrency": "USD", "priceSpecification": {"@type": "UnitPriceSpecification", "price": "449", "priceCurrency": "USD", "unitText": "per user per month"}}, {"@type": "Offer", "name": "Launch Service", "price": "2495", "priceCurrency": "USD"}]}, {"@type": "WebPage", "@id": "https://ailaunchkit.ai/ailk#webpage", "url": "https://ailaunchkit.ai/ailk", "name": "Ship the open-source website foundation built for the agent-first internet.", "description": "AI Launch Kit is the open-source, Apache 2.0 website foundation for the agent-first internet — schema-typed, agent-callable, AEO-scored, and deployable in days.", "isPartOf": {"@id": "https://ailaunchkit.ai/#product"}, "mainEntity": {"@id": "https://ailaunchkit.ai/#product"}}]}} />
|
|
18
|
+
|
|
19
|
+
{/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. Landed by land-section-catalog.py (#3111). */}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": "https://schema.org",
|
|
3
|
+
"@graph": [
|
|
4
|
+
{
|
|
5
|
+
"@type": "Product",
|
|
6
|
+
"@id": "https://ailaunchkit.ai/#product",
|
|
7
|
+
"name": "AI Launch Kit",
|
|
8
|
+
"alternateName": [
|
|
9
|
+
"AI Launch Kit by Working Theory",
|
|
10
|
+
"AILK by Working Theory",
|
|
11
|
+
"AILK",
|
|
12
|
+
"@ailaunchkit",
|
|
13
|
+
"@ailk",
|
|
14
|
+
"@working-theory",
|
|
15
|
+
"ai-launch-kit"
|
|
16
|
+
],
|
|
17
|
+
"url": "https://ailaunchkit.ai",
|
|
18
|
+
"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.",
|
|
19
|
+
"sameAs": [
|
|
20
|
+
"https://github.com/working-theory-labs/ai-launch-kit",
|
|
21
|
+
"https://x.com/ailaunchkit",
|
|
22
|
+
"https://www.npmjs.com/org/ailk",
|
|
23
|
+
"https://youtube.com/@working-theory",
|
|
24
|
+
"https://linkedin.com/company/working-theory"
|
|
25
|
+
],
|
|
26
|
+
"foundingDate": "2026",
|
|
27
|
+
"category": "Open-source website foundation",
|
|
28
|
+
"applicationCategory": "DeveloperApplication",
|
|
29
|
+
"operatingSystem": "Cross-platform (Node.js)",
|
|
30
|
+
"license": "https://www.apache.org/licenses/LICENSE-2.0",
|
|
31
|
+
"codeRepository": "https://github.com/working-theory-labs/ai-launch-kit",
|
|
32
|
+
"manufacturer": {
|
|
33
|
+
"@id": "https://workingtheory.ai/#organization"
|
|
34
|
+
},
|
|
35
|
+
"brand": {
|
|
36
|
+
"@id": "https://workingtheory.ai/#organization"
|
|
37
|
+
},
|
|
38
|
+
"creator": {
|
|
39
|
+
"@id": "https://samhenry.org/#person"
|
|
40
|
+
},
|
|
41
|
+
"offers": [
|
|
42
|
+
{
|
|
43
|
+
"@type": "Offer",
|
|
44
|
+
"name": "Free (OSS, Apache 2.0)",
|
|
45
|
+
"price": "0",
|
|
46
|
+
"priceCurrency": "USD"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"@type": "Offer",
|
|
50
|
+
"name": "Pro",
|
|
51
|
+
"price": "249",
|
|
52
|
+
"priceCurrency": "USD",
|
|
53
|
+
"priceSpecification": {
|
|
54
|
+
"@type": "UnitPriceSpecification",
|
|
55
|
+
"price": "249",
|
|
56
|
+
"priceCurrency": "USD",
|
|
57
|
+
"unitText": "per user per year"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"@type": "Offer",
|
|
62
|
+
"name": "Pro Plus",
|
|
63
|
+
"price": "449",
|
|
64
|
+
"priceCurrency": "USD",
|
|
65
|
+
"priceSpecification": {
|
|
66
|
+
"@type": "UnitPriceSpecification",
|
|
67
|
+
"price": "449",
|
|
68
|
+
"priceCurrency": "USD",
|
|
69
|
+
"unitText": "per user per month"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"@type": "Offer",
|
|
74
|
+
"name": "Launch Service",
|
|
75
|
+
"price": "2495",
|
|
76
|
+
"priceCurrency": "USD"
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"@type": "WebPage",
|
|
82
|
+
"@id": "https://ailaunchkit.ai/ailk#webpage",
|
|
83
|
+
"url": "https://ailaunchkit.ai/ailk",
|
|
84
|
+
"name": "Ship the open-source website foundation built for the agent-first internet.",
|
|
85
|
+
"description": "AI Launch Kit is the open-source, Apache 2.0 website foundation for the agent-first internet — schema-typed, agent-callable, AEO-scored, and deployable in days.",
|
|
86
|
+
"isPartOf": {
|
|
87
|
+
"@id": "https://ailaunchkit.ai/#product"
|
|
88
|
+
},
|
|
89
|
+
"mainEntity": {
|
|
90
|
+
"@id": "https://ailaunchkit.ai/#product"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Product
|
|
3
|
+
slug: api-launch-kit
|
|
4
|
+
title: API Launch Kit
|
|
5
|
+
description: The Fastify + Zod API layer for AX-first products — typed routes, validated schemas, and MCP-ready handlers out of the box.
|
|
6
|
+
schema:
|
|
7
|
+
brand:
|
|
8
|
+
"@type": Brand
|
|
9
|
+
name: AI Launch Kit
|
|
10
|
+
offers:
|
|
11
|
+
"@type": Offer
|
|
12
|
+
price: "0"
|
|
13
|
+
priceCurrency: USD
|
|
14
|
+
availability: https://schema.org/InStock
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# API Launch Kit
|
|
18
|
+
|
|
19
|
+
The API layer is where agents do real work. API Launch Kit gives you a Fastify application pre-wired with Zod validation, architecture boundary linting, and MCP-compatible route shapes.
|
|
20
|
+
|
|
21
|
+
## What you get
|
|
22
|
+
|
|
23
|
+
- Fastify 5 with typed route schemas via `@working-theory/validation`
|
|
24
|
+
- Zod discriminated-union schemas for every lead type (demo, newsletter, callback)
|
|
25
|
+
- Architecture boundary lint that fails CI when `apps/api` imports from `apps/web`
|
|
26
|
+
- MCP handler scaffolding — the same data flows available to AI agents as to HTTP clients
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Product
|
|
3
|
+
slug: launch-kit
|
|
4
|
+
title: AI Launch Kit
|
|
5
|
+
description: The AX-first OSS template — apps, packages, and a content adapter you can run today.
|
|
6
|
+
schema:
|
|
7
|
+
brand:
|
|
8
|
+
"@type": Brand
|
|
9
|
+
name: AI Launch Kit
|
|
10
|
+
offers:
|
|
11
|
+
"@type": Offer
|
|
12
|
+
price: "0"
|
|
13
|
+
priceCurrency: USD
|
|
14
|
+
availability: https://schema.org/InStock
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# AI Launch Kit
|
|
18
|
+
|
|
19
|
+
The template ships with everything you need to launch a product whose canonical
|
|
20
|
+
surfaces are the API and MCP server. The web app is the human edge — equally
|
|
21
|
+
supported, no longer the center of gravity.
|
|
22
|
+
|
|
23
|
+
## What you get
|
|
24
|
+
|
|
25
|
+
- Three peer apps wired through shared `packages/*`
|
|
26
|
+
- MDX content adapter with hot reload
|
|
27
|
+
- JSON-LD pipeline emitting valid schema.org for every page type
|
|
28
|
+
- Architecture-boundary linter that fails CI on cross-app imports
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ProductsList
|
|
3
|
+
slug: products
|
|
4
|
+
title: Products
|
|
5
|
+
description: Purpose-built tools for teams running on human-agent pairs — from structured JSON-LD generation to citation-readiness scoring.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Products
|
|
9
|
+
|
|
10
|
+
AI Launch Kit ships as a collection of composable packages. Each package solves one layer of the AX-first stack and can be used independently or together.
|
|
11
|
+
|
|
12
|
+
## @working-theory/schema
|
|
13
|
+
|
|
14
|
+
Typed schema.org JSON-LD builders — 60 page types, one builder each. Every builder accepts a structural page input and emits a serializable JSON-LD object. Works from MDX frontmatter or programmatic input.
|
|
15
|
+
|
|
16
|
+
## @working-theory/aeo
|
|
17
|
+
|
|
18
|
+
Deterministic AEO scoring. Grades pages against Layer 1 citation-readiness rules: schema completeness, inLanguage presence, structured data coverage. Same input always returns the same score — no network calls, no randomness.
|
|
19
|
+
|
|
20
|
+
## @working-theory/content-adapters
|
|
21
|
+
|
|
22
|
+
Adapters that bridge MDX content files to the schema package's input contract. Drop a directory into `content/`, follow the frontmatter convention, and the adapter returns a typed `ContentPage` ready for a builder.
|
|
23
|
+
|
|
24
|
+
## What's next
|
|
25
|
+
|
|
26
|
+
The roadmap runs through Phases 3–8: scoring rules, audit runner, trend tracking, dashboard, template library. Each phase ships as a versioned package update.
|