The fastest way to get an 86d store running isDocumentation Index
Fetch the complete documentation index at: https://86d.app/docs/llms.txt
Use this file to discover all available pages before exploring further.
docker compose up. It starts PostgreSQL, MinIO object storage, and the store app with zero configuration. If you prefer a local dev setup with hot reload and direct access to the codebase, follow the CLI path below.
Check prerequisites
Before you start, install the following:
You can skip the PostgreSQL install by using the Docker Compose path below; it provisions the database for you.
| Tool | Minimum version |
|---|---|
| Bun | v1.3.6 or newer |
| Node.js | v23 or newer |
| PostgreSQL | v15 or newer |
Clone the repository and install dependencies
Clone the 86d monorepo and install all workspace dependencies with Bun:The monorepo contains the store app (
apps/store/), all modules (modules/), and supporting packages including the CLI.Initialize your local store
Run The
86d init to configure your environment, run database migrations, and seed demo data:init command:- Creates a
.envfile from.env.exampleif one does not exist - Generates a random
BETTER_AUTH_SECRETif the placeholder is still in place - Installs dependencies with
bun install - Runs code generation to wire up module imports
- Prompts you to run database migrations against your
DATABASE_URL - Optionally seeds the database with demo products, categories, and an admin user
Start the development server
Start the store with hot reload:Once running, open:
- Storefront: http://localhost:3000
- Admin dashboard: http://localhost:3000/admin
admin@example.com / password123.Add your first module
Modules are enabled by listing them in your active template’s After saving, regenerate the module imports and API router:The module’s components are now available in your MDX storefront templates, and its admin pages appear automatically in the sidebar at http://localhost:3000/admin.To scaffold a brand-new custom module from scratch:This creates
config.json. Open that file and add a module package name to the modules array:templates/<theme>/config.json
modules/my-feature/ with the full module structure: entry point, schema, store and admin endpoints, and component stubs. See Build a custom module for the full workflow.Docker Compose alternative
If you want zero-configuration setup (no local PostgreSQL, no manual.env), use Docker Compose. A single command starts PostgreSQL, MinIO object storage, and the store app, and runs migrations and seeds demo data on first boot:
| Service | URL |
|---|---|
| Store | http://localhost:3000 |
| Admin | http://localhost:3000/admin |
| MinIO API | http://localhost:9000 |
| MinIO Console | http://localhost:9001 |
admin@example.com / password123.
In the Docker Compose setup, file uploads are stored in MinIO and served at same-origin
/uploads/... URLs. You do not need to expose the raw MinIO bucket URL to your shoppers.Next steps
Deploy to production
Push your store to Railway, Vercel, or a self-hosted Docker server.
Browse the module catalog
Explore every module you can enable in your store.

