> ## Documentation Index
> Fetch the complete documentation index at: https://juo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting started

> Scaffold a blocks package with create-juo and start defining store-specific blocks for the Juo Editor.

The recommended starting point for `@juo/blocks` is publishing **store-owned blocks** — the "store" group in the [block picker](/docs/blocks/concepts/blocks#block-groups) — using the [`create-juo`](https://www.npmjs.com/package/create-juo) CLI. It scaffolds a package with `defineBlock`, `registerBlock`, schema/preset/locale conventions, and a build configured for publishing against the merchant's storefront portal hosted by Juo.

<Note>
  Building a host application (a custom page shell, services, and routes) is a separate path — see [Building a custom portal](/docs/blocks/guides/custom-portal).
</Note>

## Scaffold a package

<CodeGroup>
  ```sh npm theme={null}
  npm create juo@latest
  ```

  ```sh pnpm theme={null}
  pnpm create juo@latest
  ```

  ```sh yarn theme={null}
  yarn create juo
  ```

  ```sh bun theme={null}
  bun create juo
  ```
</CodeGroup>

Follow the prompts to name the package and choose a framework (plain DOM, Vue, React, or Preact). Then:

```sh theme={null}
cd my-blocks
npm install
npm run dev
```

## Add to an existing project

To add `@juo/blocks` to an existing package:

<CodeGroup>
  ```sh npm theme={null}
  npm install @juo/blocks
  ```

  ```sh pnpm theme={null}
  pnpm add @juo/blocks
  ```

  ```sh yarn theme={null}
  yarn add @juo/blocks
  ```

  ```sh bun theme={null}
  bun add @juo/blocks
  ```
</CodeGroup>

`@juo/blocks` lists `vue`, `react`, and `preact` as **optional peer dependencies**. Install only the one the host application already runs on — or none, if rendering with plain DOM.

From here, see [Blocks](/docs/blocks/concepts/blocks) to start defining blocks.
