Workflow: Model · Understand · Connect · Generate
See your architecture before you ship it.
Design systems visually, understand relationships and impact, then turn your architecture into deterministic, production-ready code.
For macOS on Apple silicon. Windows and Linux are planned.
Model
Architecture you can actually see.
Each entity is a YAML file with stable IDs. The Schema Graph draws the same model, so a relationship is visible the moment you write it.
- Text and graph stay one model
- Edit the YAML or edit on the graph. Adding fields, relations and renames on the canvas writes back to the same files.
- Edges start where the dependency lives
- Relations are drawn from the field that owns them, so you can tell which field links Employee to Department.
- Everything about an entity in one place
- The Inspector shows the stable ID, source file, fields, and every field elsewhere that references it.
Understand
Change with confidence.
Change the model. Understand the impact. Then decide what to regenerate.
- Every change has a risk
- Changes are compared to your last saved model by identity and marked safe, review or destructive. A rename stays a rename.
- See which files a change touches
- Affected outputs turn Out of date with the reason. Preview Changes lists the exact files and diffs before you regenerate.
- Nothing regenerates on its own
- Outputs change only when you choose Regenerate. Until then, the last generation stays as it was.
- Up to dateMatches the current schema and configuration.
- Out of dateSomething changed, and the reason is shown.
- Not generatedConfigured, waiting for its first run.
- DisabledKept in the project, skipped for now.
Generate
From architecture to working software.
Derived turns the schema into code, using the generator and conventions you choose. Outputs are stored in .schema-studio/derived and change only when you regenerate.
01 · Schema
src/schema/*.yaml
Entities, fields and relations. The single source of truth.
02 · Generator
NestJS
Chosen for the stack this project targets.
03 · Preset
NestJS Standard
Shared conventions, with project-level configuration on top.
04 · Derived output
NestJS API
Read-only files with a record of exactly what produced them.
Built-in generators
Add as many as the project needs from Add Generator…. Each one is versioned, so an update marks its output Out of date instead of changing files silently.
| Generator | Category | Produces |
|---|---|---|
| NestJS | Backend | DTOs, entities, services, controllers and modules |
| TypeScript Types | Types & Validation | types.ts |
| Zod Validation | Types & Validation | schemas.ts |
| OpenAPI Document | API | OpenAPI 3.1, YAML or JSON |
Deterministic
Deterministic by design.
Same schema. Same generator. Same result.
Schema+Generator+Preset+Generator Version=Derived Output
Generated files contain no timestamps or random values and are sorted by path. Each generation records a signature of its inputs, so Skimabase can tell you whether output is current without guessing.
1import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";2import { IsDateString, IsIn, IsOptional, IsString } from "class-validator";34export class CreateCustomerDto {5@ApiProperty()6@IsString()7name!: string;89@ApiProperty()10@IsString()11email!: string;1213@ApiProperty({ enum: ["active", "suspended"] })14@IsIn(["active", "suspended"])15status!: "active" | "suspended";1617@ApiPropertyOptional({ format: "date-time" })18@IsOptional()19@IsDateString()20createdAt?: string;21}
Connect
One model. Every module reads it.
The graph, change review, database connections, migration planning and code generation all work from the same schema. Use the parts your project needs.
schema-studio.yaml · src/schema/*.yaml
The schema every module shares
Schema Graph
Visual editing with Auto Layout, entity search, and a Relations Only view for large models.
Changes
An identity-based diff against your saved model, with a risk for every change.
Derived
NestJS, TypeScript, Zod and OpenAPI output from presets you can share across a project.
Connections
Inspect PostgreSQL and Supabase PostgreSQL, compare actual with desired, and apply reviewed plans that create missing tables. SharePoint inspection is read-only.
Migration
Plan a migration to a SQL Server 2022 compatible target and preview the T-SQL. No SQL is executed.
AI
Generate a first model from a product brief or ask for edits. Proposals arrive as YAML for you to review.
Optional · your OpenRouter key
Scale
Designed for real systems.
Models grow. Skimabase keeps them legible, reviewable and safe to change as they do.
- Stable identity
- Entities and fields carry IDs that survive renames, so diffs and generated code follow the change.
- Plain files
- One YAML file per entity. Review the model in pull requests like any other code.
- Layout kept apart
- Graph positions live in .schema-studio/layouts. Moving a node never changes the model.
- Problems before output
- Schema errors appear in Problems with their source, and Derived won’t generate from an invalid schema.
- Explicit apply
- Database changes are previewed and applied only when you say so. Apply never runs on save, compile or inspect.
- Local projects
- A project is a folder on your disk. AI conversations are kept in the project, not on a server.
Workspace
Built like an IDE.
Flat, dense and keyboard-driven. Explorer, editor tabs, Inspector, Problems and a status bar work the way your editor already does.
- Quick Open⌘P
- Command Palette⌘⇧P
- Toggle Inspector⌘⌥B
- Keyboard Shortcuts⌘⇧/
FAQ
Questions, answered.
Design the system. Understand the impact. Generate the code.
Architecture first. Implementation follows.
