From your first entity onward

Start with the model.
Let the formats follow.

A short guide to the Super Schema workflow, with a clear path to the source and its current development setup.

Workspace

Find the right home.

Domains group related products. Products bring their entities, data types, API contracts, and events into one workspace. Definitions can also be shared at broader levels where the application supports them.

DomainProductEntity

For a first example, imagine a Customers domain, a Profiles product, and a Customer entity. Use names that match your domain; these names illustrate one possible workspace.

Definition

Describe one entity well.

Create an entity with the visual builder, paste a definition, or import a supported schema. Start with a small shape: a required identifier, a name, and an optional email field.

Illustrative logical model · TypeSpec
model Customer {
  id: string;
  name: string;
  email?: string;
}

Add descriptions and relevant classification or quality metadata. Reuse a custom scalar, enum, or union when a definition belongs in more than one place.

Reuse

Connect the contracts.

Reference other entities rather than silently copying their structure. The lineage view shows the relationships modeled in your catalog.

  • APIs: describe operations, parameters, and responses with shared definitions.
  • Events: design an AsyncAPI 3.0 document and choose an entity as a message payload. Channels, messages, servers, and operations belong to that event.

Enter the server and infrastructure details that your event contract needs.

Delivery

Generate, inspect, publish.

Choose a supported schema target, then read the generated artifact and its validation messages. Different formats express different constraints; review those differences before adopting an output.

The target catalog includes JSON Schema, Avro, OpenAPI 3, BigQuery DDL, PostgreSQL DDL, and Spanner DDL. Protobuf and Java POJO are preview targets. Availability also depends on the required emitter packages in your environment.

Drafts let you iterate. Published versions capture a known definition, while pinned references let consumers depend on a specific version.

Read the target catalog

Local development

Get the source.
Check the prerequisites.

Clone the application repository, then prepare its emitter packages and database backend.

Clone the application
git clone https://github.com/super-schema/super-schema.git
cd super-schema
Node.js
Use Node 22 for the documented development and test workflow.
TypeSpec emitters
The application references a built sibling ../typespec checkout for its Avro, Java, BigQuery, PostgreSQL, and Spanner emitter packages. Prepare the required packages before installing application dependencies.
Database
PGlite is the default local backend. PostgreSQL is the alternative backend for deployments that need multiple application instances.

Follow the repository's prerequisites and database instructions to complete the setup for your environment.

Keep the example small.
Make the definition useful.

Back to the interactive example