Skip to content

schema init

Fetches the current schema of a Storyblok space and writes it as TypeScript files using @storyblok/schema helpers. schema init is a one-time setup step for adopting an existing space in code.

The command generates the following files:

  • One file per block, in subdirectories that follow the component group hierarchy
  • One file per datasource
  • A folders.ts file for all component groups
  • A schema.ts file in the root that combines everything into a single exported schema object.
.storyblok/
└── schema/
├── blocks/
│ ├── <block-name>.ts
│ └── <group-slug>/
│ └── <block-name>.ts
├── datasources/
│ └── <datasource-slug>.ts
├── folders.ts
└── schema.ts

After initialization, treat the local files as the source of truth and use schema push for further changes.

The @storyblok/schema package must be installed in the target project: npm install @storyblok/schema.

Terminal window
storyblok schema init [flags]
Flag Type Description
--space, -s integer Required. The ID of the Storyblok space to read the schema from.
--out-dir string Optional. Output directory for generated files. Defaults to .storyblok/schema.

The following examples assume you defined a space in the configuration file.

Terminal window
# Bootstrap a local TypeScript schema from a space
storyblok schema init
# Bootstrap into a custom output directory
storyblok schema init --out-dir src/schema

Was this page helpful?

What went wrong?

This site uses reCAPTCHA and Google's Privacy Policy (opens in a new window).Terms of Service (opens in a new window) apply.