Quick Start
- Include Next.js Storefront (default: yes)
- Optionally load sample data (products, categories, images)
- Optionally start Docker services immediately
pnpm dev completes setup automatically.
The dashboard and the marketplace seller panel are included in every project — there is no flag to add them.
Prerequisites
CLI Flags
All prompts can be skipped with flags for non-interactive (CI/CD) usage:Generated Project Structure
server/ is the only part that is Spree’s. The apps under apps/ are ordinary Vite and Next.js projects you own — restyle, restructure or replace them without forking anything. Each carries its own instructions (server/CLAUDE.md, apps/dashboard/AGENTS.md), which is also what a coding agent reads.
What’s in docker-compose.yml
- Spree — one
webcontainer running theghcr.io/spree/spree:latestimage on the configured port (default3000); background jobs run in-process via Solid Queue (stored in Postgres — job dashboard at/jobs) - PostgreSQL 18 — database with persistent volume
- Meilisearch — search engine
- Health checks on postgres, meilisearch, and web
Customizing the Spree API
Theserver/ directory is the Spree API — a full Rails application with Spree installed (cloned from spree-starter) serving the Store and Admin APIs your storefront and dashboard talk to, plus background jobs and transactional emails. By default, the project runs it from a prebuilt Docker image. To switch to building from your local copy:
docker-compose.yml with a version that builds from server/, rebuilds the image, and restarts services. You can then:
- Add gems to
server/Gemfile - Override models with decorators in
server/app/models/ - Add controllers in
server/app/controllers/ - Configure Spree in
server/config/initializers/spree.rb - Add migrations with
spree generate migration AddFooToSpreeBars foo:string(runs inside the container)
Spree CLI Commands
The project includes @spree/cli for managing your Spree backend:After Setup
Admin Dashboard
Open http://localhost:3000/admin and log in with:
The dashboard runs as its own dev server:
spree dev starts it alongside the API at http://localhost:5173, with the same credentials, live-reloading from apps/dashboard/. See the dashboard docs.
Store API
The REST API is available at http://localhost:3000/api/v3/store. See the API Reference for details.Storefront
If you included the storefront, start it in a separate terminal:Updating Spree
To update to the latest Spree version:SPREE_VERSION_TAG in .env:
Deployment
The project deploys as one image:server/Dockerfile builds the Spree API together with your React Dashboard (when apps/dashboard exists), served same-origin at /dashboard — no CORS, no cookie configuration, no second service.
- Render — the
render.yamlat the project root is a ready Blueprint: one Docker service built straight from your repo, migrations run on boot. - Anywhere else —
spree build --productionbuilds the same image locally; push it to a registry and run it on any Docker host.
Next Steps
Next.js Storefront
Customize and extend the Storefront
Spree SDK
TypeScript SDK for the Store and Admin APIs
API Reference
Explore the REST API endpoints
Core Concepts
Learn about Spree’s architecture

