Batterien inklusive.
Ein Vertrag, 40+ Plugins.

Der Stack, den eine echte SaaS braucht — Billing, Storage, Mail, Notifications, Search, Analytics, Rate-Limiting — als First-Party-Plugins über einen einzigen Vertrag. Jedes kann Handler intercepten, das Schema erweitern, Routes ergänzen oder Lifecycle-Hooks laufen lassen. Installiere nur, was du brauchst; sie komponieren.

plugins.ts
TypeScript
// definePlugin — one contract for every extension
import { definePlugin } from '@voltro/protocol'

export const billing = () => definePlugin({
  name: 'billing',
  extendSchema:      { tables: [subscriptions, plans] },
  interceptMutation: guardEntitlements,
  routes:            [checkoutRoute],
})

// install only what you need — they compose
plugins: [billing(), storage(), mail(), notifications()]

Das Ökosystem, nach Aufgabe.

Ein Plugin-Vertrag

definePlugin lässt ein Plugin Mutations / Queries / Actions intercepten, das Schema erweitern (Tabellen + Migrationen oder ein Mixin), Effect-Service-Layer bereitstellen, Routes und Inspect-Endpunkte registrieren und Install- / Activate-Lifecycle-Hooks laufen lassen. Die Reihenfolge ist explizit; Plugins komponieren outer→inner.

Commerce & Billing

plugin-billing modelliert Subscriptions, Pläne, Entitlements und Usage-Metering über einen Provider (Stripe + Mock) mit Seats, Proration, Dunning und einem requireEntitlement()-Guard. plugin-licensing verifiziert offline EdDSA-Lizenzschlüssel.

Storage, Mail & Notifications

plugin-storage (S3 / R2 / GCS / Azure / Filesystem) mit Presigned URLs und Image-Transforms; plugin-mail (Resend / Postmark / SES / SMTP) mit React-Email-Templates; plugin-notifications über E-Mail / Slack / SMS / Push / In-App.

Daten- & Schema-Mixins

audit(), softDelete(), deactivation(), Versioning (Row-History + Time-Travel), Governance (Retention, GDPR-Export/-Löschung, Feld-Verschlüsselung) und Multitenancy — Querschnittsbelange als komponierbare Mixins.

Search, Analytics & Webhooks

plugin-search synct zu Typesense / Meilisearch / Algolia; fünf Analytics-Sinks (Postgres, DuckDB, ClickHouse, Tinybird, PostHog) hinter einem ctx.analytics; plugin-webhooks macht durable Outgoing + verifiziertes Incoming (Stripe- / GitHub- / Slack-Presets).

Kontrolle & Betrieb

plugin-ratelimit (fixed / sliding / Token-Bucket), plugin-flags (Targeting + %-Rollout + Kill-Switch), plugin-moderation, plugin-rbac, plugin-openapi und die Observability-Exporter (Prometheus, Datadog, Sentry, Log-Ship).

Füg nur hinzu, was du brauchst.

Komponierbar, kein Monolith

Eine Voltro-App installiert die Plugins, die sie nutzt, und sonst nichts — jedes ist ein Paket über denselben Vertrag, also teilen sie Runtime, Change-Feed und Migrations-Planer. Ein paar Plugins füllen sich noch: plugin-cdc-out shippt seine Engine plus Memory- und Webhook-Sinks, aber die Kafka- / Snowflake- / BigQuery-Konnektoren sind Interface-Stubs, die du implementierst, nicht schlüsselfertig.

Plugins komponieren mit dem Kern.

Öffne das Framework. Schau es dir selbst an.

Jede Primitive auf dieser Seite ist heute im Framework. Klone den Starter, lass `voltro dev` laufen, in zwei Minuten ist es auf dem Bildschirm.