Skip to main content

Get started

StoryBooker is composed of 3 main parts:

  • Router
  • Adapters
  • CLI

Router

The router is the core of StoryBooker. It is responsible for routing requests to the page/api and using the appropriate adapter to render the response.

The entire router is maintained in the @storybooker/core package. The package is used to create a router-handler that takes a WebRequest and returns a WebResponse. The router is framework agnostic and can be used in any server environment that supports NodeJS api (NodeJS, Deno, Bun, etc.).

Adapters

Adapters are responsible for integrating with different services for hosting, storage, database and authentication. StoryBooker comes with built-in adapters for popular services, and you can also create your own custom adapters.

The adapters are maintained in their respective packages and can be mixed and matched as needed. For example, you can use the AWS hosting adapter with the Azure storage adapter.

The Adapters implement following services:

  • Hosting: Responsible for serving the StoryBooker application. Examples: Azure Functions, AWS Lambda, etc.
  • Storage: Responsible for storing StoryBooker assets. Examples: Azure Blob Storage, AWS S3, etc.
  • Database: Responsible for managing StoryBooker data. Examples: Azure CosmosDB, AWS DynamoDB, etc.
  • Auth: Responsible for authenticating users. Examples: Azure EasyAuth, etc.

CLI

The CLI (Command Line Interface) is a tool for interacting with StoryBooker. It provides commands for managing your StoryBooker instance, such as uploading a StoryBook build or purging builds.

The CLI is maintained in the storybooker package and can be installed globally or used via npx.

This is the recommended way to interact with StoryBooker in CI pipelines.