LaunchKit — Dokumentation
Grundgerüst für Setup und Integration.
Schnellstart
Kit klonen, Env setzen, starten:
# 1) install npx launchkit create acme && cd acme pnpm install # 2) configure (.env from .env.example) cp .env.example .env # set AUTH_ISSUER, PAYMENTS_PROVIDER, MAIL_DSN, AI_PROVIDER ... # 3) run pnpm dev # local dev server pnpm build && pnpm start
Alle Secrets kommen aus der Env, nie aus dem Code.
Projektstruktur
launchkit/
src/
modules/
auth/ # OIDC / sessions / roles (adapter)
payments/ # checkout / webhooks / invoices (adapter)
email/ # transactional + broadcast (adapter)
ai/ # model-agnostic chat + tool-calls (adapter)
design/ # design-md token sets (on-brand)
sections/ # component-forge blocks (hero/pricing/faq)
quality/ # design-value gate (grade before ship)
lib/ # seo, i18n, tracking (utm+cid), audit
routes/ # http surface + OpenAPI
contracts/ # versioned zod/openapi contracts
deploy/ # Dockerfile + Caddyfile recipe
.env.example
Auth-Integration
Auth ist providerneutral (OIDC), kompatibel mit sign.it.
AUTH_ISSUER=https://<tenant>.auth00.sign.it.com AUTH_CLIENT_ID=app_xxx AUTH_SCOPES=openid email profile
Geschützte Routen nutzen die forward_auth-Naht.
Payments-Integration
Ein Contract, austauschbare Provider.
PAYMENTS_PROVIDER=stripe # | paddle | mock PAYMENTS_WEBHOOK_SECRET=whsec_xxx // checkout a one-time Lifetime licence await payments.checkout({ sku: "launchkit-lifetime", mode: "payment" })
AI-Schicht
Modell-agnostisch mit Streaming und Tool-Calls.
AI_PROVIDER=claude # | openai | mistral const stream = await ai.chat({ messages, tools, stream: true })
WWA-Module — der Unterschied
Diese drei Module machen LaunchKit zum besseren Original.
design-md — Design-System
import tokens from "@wwa/design-md/acme" theme.apply(tokens) // 1288 AI-ready token sets, on-brand from line 1
component-forge — Sektionen
import { Hero, Pricing, Faq } from "@wwa/forge" page(Hero(), Pricing(plan), Faq(items)) // production blocks
design-value — Qualitäts-Gate
const report = await designValue.grade(url) if (report.quality < "AA") ship.hold() // provably good, not just fast
Jedes WWA-Modul hat sein eigenes Live-Tool auf wildwildagents.
SEO / LLMO
- Meta-, OG- und Twitter-Tags pro Route
- Automatische sitemap.xml + robots
- JSON-LD (Product/FAQ/Breadcrumb)
- AI-readable Struktur für LLM-Antworten (LLMO)
Deploy
Docker-Image bauen, hinter Caddy-Edge betreiben:
# Caddyfile app.example.com { encode gzip zstd reverse_proxy 127.0.0.1:PORT }
Port aus einer Registry beziehen statt per Hand.
Für KI-Coding-Agenten
Jedes Modul liefert versionierte Contracts und eine OpenAPI-Spec.
GET /openapi.yaml— komplette Maschinen-SpecGET /api/health— Health-Endpoint (Standard)contracts/*.ts— versionierte zod-Contracts