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.
// 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.