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.yamlkomplette Maschinen-Spec
  • GET /api/healthHealth-Endpoint (Standard)
  • contracts/*.tsversionierte zod-Contracts