Starte mit einer laufenden App,
nicht mit einem leeren Ordner.

Jedes Template ist eine kleine, opinionierte, dogfooded Referenz — eine echte App, die bootet, kein Skelett voller TODOs. Scaffolden, in einem Rutsch durchlesen, dann besitzen. Es gibt keinen Update-Channel und nichts telefoniert nach Hause: ab dem Moment, in dem es in deinem Repo liegt, ist es dein Code.

terminal
bash
# One project, a backend and a frontend that talk to it
voltro create-project acme --api=api-backend --web=frontend-app

# Add more later — a mobile app, a docs site, edge functions
voltro add-app mobile --template=mobile-app --to acme
voltro list-templates          # the registry itself, never a stale list

Was ein Template dir tatsächlich gibt.

Vier Arten, ein CLI-Aufruf

Backends (api-*), Frontends (frontend-*), eine Serverless-Function-Library und eine Expo-Mobile-App. `voltro create-project acme --api=api-backend --web=frontend-app` scaffoldet ein ganzes Projekt; `voltro add-app` erweitert es später. `voltro list-templates` ist die Autorität — es liest die Registry und kann deshalb nicht von dem abweichen, was deine CLI tatsächlich hat.

Feature-Showcases, keine Spielzeug-Demos

Über die minimalen Formen hinaus exerziert jeder Showcase eine ganze Schicht des Frameworks end-to-end durch: Auth mit MFA und Passkeys, Storage mit öffentlichen und privaten Objekten, durable Workflows, RBAC, Suche, Moderation, Governance, Billing, kollaboratives Editieren. Du liest ein Template, um die Schicht zu verstehen, und löschst dann, was du nicht brauchst.

Sie kommen mit Tests — und wir fahren sie

Jedes Template trägt eine echte Test-Suite, und ein Harness scaffoldet jedes in einen Temp-Workspace, installiert es und fährt diese Tests. Das hat nicht bootende Templates gefunden, Schemas mit nicht mehr existierenden APIs und eine fehlende Dependency — bevor ein einziger Nutzer sie scaffoldet hat.

Zweisprachig out of the box

Jedes Frontend-Template kommt en/de mit typisierten Katalogen, Locale-Switcher und der zum Render-Modus passenden URL-Strategie — Cookie-basiert, wo die Seite interaktiv ist, URL-präfigiert, wo sie statisch und ohne JS ausgeliefert wird. Eine fehlende Übersetzung scheitert am Typecheck, statt einem deutschen Besucher einen englischen String zu zeigen.

Die Deploy-Schicht ist eine Baseline, keine Vermutung

Wähl beim Scaffolden eine Baseline und das Projekt bekommt die passende Deploy-Oberfläche — einen Docker-Compose-Stack, ein Helm-Chart oder gar nichts. Die Templates bleiben identisch; nur die Schicht drumherum ändert sich, falsch wählen ist also ein erneuter Lauf, kein Rewrite.

Ein Template, das du selbst schreiben kannst

Ein Template ist ein Verzeichnis mit einem Manifest und den zu kopierenden Dateien — keine Plugin-API, kein Lifecycle. Zeig die CLI auf dein eigenes Repo privater Templates und `voltro add-app --template my-template` funktioniert genau wie die mitgelieferten.

Content aus Markdown, typisiert

Blog-, Docs- und Changelog-Template laufen auf Content Collections: Markdown-Dateien mit schema-geprüftem Frontmatter (ein Verstoß failt den Build und benennt die Datei), serverseitig gerenderte Bodies mit gehighlighteten Code-Fences, Locale-Bäume mit Fallback und ein vom Build emittierter RSS-Feed — ohne eine eigene Markdown-Dependency zu installieren.

Warum wir unsere eigenen Beispiele testen.

Ein veraltetes Template lehrt jedes Projekt die falsche Form

Templates sind der erste Framework-Code, den die meisten lesen, und ein kaputtes ist schlimmer als gar keins — es ist ein falsches Muster, das mit vollem Vertrauen in hundert Projekte kopiert wird. Deshalb werden sie nicht auf Vertrauen ausgeliefert: das Harness rendert jedes in einen echten Workspace, installiert es und fährt seine Suite; ein separater Durchgang typecheckt sie, weil ein grüner Testlauf transpiliert, ohne Typen zu prüfen. Ändert sich eine Framework-Konvention, ziehen die Templates mit — oder das Gate wird rot.

Was die Bibliothek wirklich enthält.

47

Templates, jedes eine echte App, die bootet — 26 Backends, 19 Frontends, eine Serverless-Bibliothek und eine Expo-App

5

Datenbank-Dialekte, auf die sich jedes davon richten lässt, ohne Anwendungscode zu ändern

Von einem Befehl zum laufenden Projekt.

terminal
bash
# One project, a backend and a frontend that talk to it
voltro create-project acme --api=api-backend --web=frontend-app

# Add more later — a mobile app, a docs site, edge functions
voltro add-app mobile --template=mobile-app --to acme
voltro list-templates          # the registry itself, never a stale list

Der Baum gehört dir ab diesem Moment: kein Update-Channel schreibt hinein, und nichts telefoniert nach Hause. Eine zweite App später hinzuzufügen ist derselbe Befehl mit einem anderen Template.

Die Template-Bibliothek im Detail.

Was steckt eigentlich in einem Template?

Eine funktionierende Anwendung. Kein Skelett mit TODO-Kommentaren, sondern eine App, die bootet, Requests bedient, ein Schema hat, Tests hat und eine zusammenhängende Schicht des Frameworks end-to-end zeigt. Du scaffoldest sie, liest sie in einem Rutsch — und dann gehört sie dir.

Mechanisch ist es ein Verzeichnis mit einem Manifest und den zu kopierenden Dateien, mit einer Handvoll Tokens für Projekt- und App-Namen. Es gibt keine Plugin-API und keinen Lifecycle — deshalb funktioniert es genau gleich, wenn du die CLI auf dein eigenes Repository privater Templates zeigst.

Danach bleibt nichts zurück. Kein Update-Channel schreibt später in dein Projekt, und nichts telefoniert nach Hause; ein Template ist ein Startpunkt, keine geerbte Abhängigkeit.

Wie unterscheiden sich die Feature-Showcases von den minimalen?

Die minimalen Backends teilen eine kleine Domäne und unterscheiden sich nur im Store oder Plugin darüber — der richtige Start, wenn du die Form ohne Lärm willst. Die Showcases exerzieren je eine ganze Schicht durch: Auth mit MFA und Passkeys, Storage mit öffentlichen und privaten Objekten, RBAC, Suche, Moderation, Governance, Billing, kollaboratives Editieren.

Ein Showcase ist als Dokumentation gedacht, die man laufen lassen kann. Zu lesen, wie das Storage-Template ein privates Objekt mit Access-Policy deklariert, ist schneller, als die Storage-Seite zu lesen und die Verdrahtung zu erraten — denn die Verdrahtung steht da, und sie funktioniert.

Sie sind außerdem zum Zusammenstreichen gedacht. Scaffolden, löschen, was du nicht brauchst, das Muster behalten. Das ist eine bessere Startposition als ein leerer Ordner plus ein Doku-Tab — und eine viel bessere als kopierte Schnipsel, die nie zusammen liefen.

Warum liefern die Templates Tests, und warum fahrt ihr sie?

Weil Templates der erste Framework-Code sind, den die meisten lesen, und ein kaputtes schlimmer ist als keins — es ist ein falsches Muster, das mit vollem Vertrauen in hundert Projekte kopiert wird. Deshalb trägt jedes Template eine echte Test-Suite, und ein Harness scaffoldet jedes in einen temporären Workspace, installiert es und fährt diese Tests.

Dieses Gate hat echte Defekte gefunden, bevor sie jemand gescaffoldet hat: Templates mit nicht mehr existierenden APIs, eine fehlende Dependency und eine App, die nicht booten konnte. Ein separater Durchgang typecheckt sie, denn ein grüner Testlauf transpiliert ohne Typprüfung — eine Unterscheidung, die dieses Repository mehr als einmal getroffen hat.

Ändert sich eine Framework-Konvention, ziehen die betroffenen Templates mit — oder das Gate wird rot. Ein veraltetes Template lehrt jedem neuen Projekt still die falsche Form, und zwar so lange, bis es jemand merkt.

Wie passen Templates und Deploy-Baselines zusammen?

Eine Baseline ist die Deploy-Oberfläche, unabhängig von der App gewählt: ein Docker-Compose-Stack für eine Maschine, ein Helm-Chart für Kubernetes oder nichts, wenn du schon eine Pipeline hast. Die Templates sind unter jeder identisch — nur die Schicht drumherum unterscheidet sich.

Diese Trennung macht eine falsche Wahl billig. Die falsche Baseline zu nehmen ist ein erneuter Lauf und kein Rewrite, weil nichts in der Anwendung davon abhängt, welche du genommen hast.

Ein Projekt kann auch Arten mischen: eine dauerhaft laufende api, eine statische Marketing-Site und eine Serverless-Function-Library in einem Workspace, aus einem Repository an drei Orte deployt, Befehl für Befehl gescaffoldet.

Die vier Arten und was sie scaffolden.

Template-Arten und was jede scaffoldet
ArtWas du bekommst
api-*Ein dauerhaft laufendes Backend: Schema, Procedures, Tests — minimale Formen plus Feature-Showcases.
frontend-*Eine Web-App mit dem für die Aufgabe passenden Render-Modus, zweisprachig, an eine Geschwister-api verdrahtet.
edge-functionsEine Bibliothek eigenständiger Serverless-Functions — kein dauerhafter Server, kein Port.
mobile-appEine Expo-App, die dieselbe api mit denselben typisierten Hooks konsumiert; Expo besitzt ihre Dev-Schleife.
BaselinesDie Deploy-Schicht — Compose, Helm oder keine — unabhängig von der App selbst gewählt.
EigeneEin Verzeichnis mit Manifest und Dateien; private Template-Repositories scaffolden wie die mitgelieferten.

Häufige Fragen

Bin ich nach dem Scaffolden an ein Template gebunden?

Nein. Der Code gehört ab diesem Moment dir — kein Update-Channel schreibt in dein Projekt, und nichts telefoniert nach Hause. Ein Template ist ein Startpunkt, und das meiste davon zu löschen ist ein normaler Vorgang.

Kann ich mehrere Templates in einem Projekt kombinieren?

Ja, das ist die vorgesehene Form. `voltro add-app` erweitert einen Workspace — eine api, ein Web-Frontend, eine Doku-Site, eine Serverless-Function-Library und eine Mobile-App können in einem Repository leben und an verschiedene Orte deployen.

Werden die Templates tatsächlich gepflegt?

Sie sind gegated. Ein Harness scaffoldet jedes in einen echten Workspace, installiert es und fährt seine Tests, mit einem separaten Typecheck-Durchgang — eine Konventionsänderung, die ein Template bricht, macht den Build rot, statt still die falsche Form zu lehren.

Unterstützen Frontend-Templates mehr als eine Sprache?

Jedes Frontend-Template kommt mit Englisch und Deutsch, typisierten Katalogen und der zum Render-Modus passenden URL-Strategie — Cookie-basiert, wo die Seite interaktiv ist, URL-präfigiert, wo sie statisch gerendert wird. Eine fehlende Übersetzung scheitert am Typecheck.

Kann meine Firma private Templates behalten?

Ja. Ein Template ist ein Verzeichnis mit Manifest und zu kopierenden Dateien; zeig die CLI auf dein eigenes Repository, und `voltro add-app --template my-template` verhält sich genau wie bei den mitgelieferten.

Worauf du scaffoldest.

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