Skip to content

schema init

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

The command generates one file per block, one file per datasource, an aggregate folders.ts for component groups, and a root schema.ts that wires everything into a single exported schema object. Blocks are mirrored into subdirectories that follow their component group hierarchy:

.storyblok/
└── schema/
├── blocks/
│ ├── <block-name>.ts
│ └── <group-slug>/
│ └── <block-name>.ts
├── datasources/
│ └── <datasource-slug>.ts
├── folders.ts
└── schema.ts

After bootstrapping, 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 that a space has been defined in a 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.