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.
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.
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 catalogLocal development
Get the source.
Check the prerequisites.
Clone the application repository, then prepare its emitter packages and database backend.
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
../typespeccheckout 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.