---
title: "Installing Spree"
sidebarTitle: Installation
description: "Install Spree Commerce locally, run your first store, and deploy it to production with the official starter template."
---

## Using `create-spree-app`

  The quickest way to get started. Scaffolds a full Spree project with React admin dashboard and Next.js Storefront (optional).

  **Requirements:** [Node.js](https://nodejs.org/) 24+ and [Docker](https://docs.docker.com/get-docker/) running.

  ```bash
  npx create-spree-app@latest my-store
  ```

  The CLI walks you through an interactive setup where you choose the project name and whether to include the Next.js Storefront. It then builds a Docker stack with Postgres, and Spree API.

  Once complete it will open a browser window so you can finalize the store setup (pick name, currency, your email/password).

  <video autoPlay muted loop playsInline controls className="block w-auto max-w-full h-auto rounded-xl" src="/videos/store-setup.mp4"></video>

## Project structure and overview

`create-spree-app` creates a project folder like this:

```
my-store/
├── server/                 # The Spree API
├── apps/
│   ├── dashboard/          # Admin dashboard (Vite/React)
│   ├── seller-dashboard/   # Seller panel, for marketplaces (Vite/React)
│   └── storefront/         # Next.js storefront (if selected)
├── .env                    # Ports, secrets and service URLs
├── .spree/                 # CLI credentials — gitignored, created on first run
├── docker-compose.yml      # The local stack
├── package.json            # Scripts and the pinned @spree/cli
├── AGENTS.md               # Instructions for coding agents
├── CLAUDE.md               # Project layout and conventions
└── README.md               # How to run everything
```

## Using the Spree CLI

Projects scaffolded with `create-spree-app` include [`@spree/cli`](../cli/quickstart.md) for managing the backend and calling the Admin API. Because it's a project dependency, run it with `npx` (or any package-manager script):

```bash
npx spree dev               # boot the Docker stack
npx spree api get products  # query the Admin API (read-only key preconfigured)
```

Project setup mints a read-only Admin API key into `.spree/credentials.json` (and `spree api` mints it on first use if you skipped setup), so `spree api` works without any extra configuration.

To call `spree` directly without the `npx` prefix, install the CLI globally:

```bash
npm install -g @spree/cli
spree api get products
```

See the [Spree CLI guide](../cli/quickstart.md) for all commands and the [Admin API from the CLI](../cli/admin-api.md) for querying your store's data.

## Next Steps

- [How Spree fits together](../core-concepts/architecture.md) — The catalog, the cart, the order and fulfillment — what each one is for, and the two APIs you build against. Twenty minutes here saves a lot of guessing later, and it ends by pointing you at whichever path suits you.

In a hurry? Jump straight to the [tutorial](../tutorial/introduction.md) to build a feature end to end, the [Next.js Storefront](../storefront/nextjs/quickstart.md) to put a storefront in front of it, or the [API reference](../../api-reference/admin-api/introduction.md) to see what you can do with the Admin API.

> **TIP:** Using an AI coding agent? Run `npx skills add spree/agent-skills` in your new project — it teaches your agent the customization patterns before you write a line of code. See [Agentic Development](../agentic/overview.md).

---

Congrats! You've set up your Spree application and it's looking amazing!

Give Spree a [GitHub Star](https://github.com/spree/spree), why don't ya? Thank you for supporting Spree open-source! 

Need support or want to give some feedback? Join our [Discord](https://discord.spreecommerce.org/)
