Mockomat
Architektur

Ein Modell, das du einmal schreibst.
Oberflächen, die synchron bleiben.

Mockomat basiert auf vier Ideen. Gemeinsam sorgen sie dafür, dass sich Mock-Daten wie eine Erweiterung deiner Codebasis anfühlen, nicht wie ein Nebenprojekt. So denkt das System — und das bekommst du zurück.

The pipeline

Von Entitäten zu zwei Live-Oberflächen.

Du beschreibst Entitäten und Attribute; Mockomat kompiliert ein typisiertes GraphQL-Schema, bindet Attribute an den Daten-Pool und liefert sowohl einen JSON-Endpoint als auch eine gerenderte Vorschau aus demselben kompilierten Artefakt.

DESIGN COMPILE SERVE CONSUME Your model User · email · fullName · avatarUrl Order · orderNo · total · status Compiler schema · types · resolvers pool ↔ field mappings seed plan DETERMINISTIC Runtime stateless · seedable resolver per type renderer per type seed = sha(...) POST /graphql application/json For your code, your CI, your AI agents GET /preview text/html For PMs, designers, stakeholders mockomat.pool 37 columns · 2.4M rows · public + per-tenant
Die vier Ideen

Prinzipien, keine Patterns.

Wir haben Mockomat nicht durch Anhäufen von Features gebaut. Jede Fähigkeit leitet sich von einem dieser vier Grundsätze ab. Wenn du sie verstehst, kannst du vorhersagen, wie sich der Rest des Systems verhält.

01

Schema-first.

Du entwirfst das Modell. Mockomat kompiliert es.

Alles beginnt bei deinen Entitäten und Attributen. Die Mock-Daten, das GraphQL-Schema, die Dokumentation, die gerenderte Vorschau — alles leitet sich von einer einzigen Quelle der Wahrheit ab. Ändere das Modell, alles Nachgelagerte regeneriert sich.

seed
02

Deterministisches Replay.

Gleicher Seed rein. Gleiche Daten raus. Jedes Mal.

Die Runtime ist zustandslos und seed-gesteuert. Eine Anfrage an /graphql replayed jederzeit vom selben Seed, auf den sich dein Team geeinigt hat — ein Snapshot heute stimmt mit einem Snapshot in CI morgen überein. Keine instabilen Fixtures, kein Drift zwischen Umgebungen.

03

Multi-Tenant von Haus aus.

Workspaces, Projekte, Rollen, scoped Keys.

Jedes Konto ist eine Tenant-Grenze. Darin scopen Projekte die Schemas; Rollen scopen die Bearbeitungsrechte; API-Keys scopen den externen Zugriff. Die Konfiguration ist pro Tenant vom allerersten Byte an isoliert — nie nachträglich angebaut.

JSON UI
04

Zwei Oberflächen, ein Modell.

Maschinenlesbar für Code. Menschenlesbar für Reviews.

Dasselbe Modell bedient /graphql für deine Anwendung und /preview für Stakeholder. Entwickler konsumieren JSON; Designer und PMs sehen eine gerenderte Tabelle oder Liste derselben Daten. Keine zweite Quelle der Wahrheit für Produkt-Reviews.

Code generation

Exportiere dein Modell als echtes Projekt.

Wenn das Prototyping endet und das Shipping beginnt, bleibt dein Mockomat-Schema nicht in unserem Service eingesperrt. Ein Klick generiert einen vollständig typisierten Angular-Client und ein NestJS-Server-Gerüst — beide verdrahtet mit demselben GraphQL-Vertrag, den du bereits validiert hast.

FRONTEND Angular 17 · standalone components · Apollo client
BACKEND NestJS 10 · GraphQL code-first · resolver stubs
SCHEMA GraphQL SDL · re-generated on each export
Exportiertes Projekt ansehen
codegen.pipeline · deterministic · idempotent
schema.graphql
your model · 38 types · 142 fields
compile
frontend/ — Angular
typed queries · components
backend/ — NestJS
resolvers · DTOs · modules
MY-PROJECT.ZIP
📁 my-project/
📁 frontend/
📄 src/app/users/users.component.ts
📄 src/app/users/users.queries.ts ← typed Apollo queries
📄 src/app/graphql.types.ts
📁 backend/
📄 src/users/users.resolver.ts
📄 src/users/user.dto.ts
📄 src/users/users.module.ts
📄 schema.graphql ← single source of truth
📄 package.json
📄 README.md
Why determinism matters

Gleiche Eingabe.
Gleiche Ausgabe.
Immer.

Mock-Daten mit zufälligen Seeds brechen Tests, brechen Reviews und untergraben Vertrauen. Mockomats Runtime leitet jede Antwort vom selben Seed ab, den dein Team gewählt hat. Hole einen Datensatz nächsten Monat erneut ab — gleiche Struktur, gleiche Werte, gleiche Kanten.

# request the same user, twice, three months apart
$ curl mockomat.app/p/abc/graphql -d '{ user(id:42) { email } }'
{ "data": { "user": { "email": "ada@bessemer.com" } } }
# 90 days later, same query…
$ curl mockomat.app/p/abc/graphql -d '{ user(id:42) { email } }'
{ "data": { "user": { "email": "ada@bessemer.com" } } }