Skip to main content
In development. 86d is being built in the open. Every capability is Experimental until it earns evidence, so check maturity levels before you rely on anything here.
By the end of this page you will have a Store Runtime on your machine with demo Products, a working Storefront, and a Store Admin you can sign in to. Take the CLI path if you want hot reload and direct access to the code. Take the Docker Compose path if you would rather not install PostgreSQL.
1

Check prerequisites

Install these first:Skip the PostgreSQL install if you plan to use Docker Compose. That path brings its own database.
2

Clone and install

Clone the monorepo and install every workspace dependency:
You now have the Store app in apps/store/, all 101 first-party Modules in modules/, and the CLI in packages/cli/.
3

Initialize the Store

One command sets up your environment, database, and demo data:
init copies .env.example to .env, replaces the BETTER_AUTH_SECRET placeholder with a random 32-byte value, installs dependencies, runs code generation, then asks whether to migrate and seed. If it cannot reach the database at DATABASE_URL, it skips both steps and tells you what to run afterward.Seeding asks for a Store Admin email and password. Press Enter twice to accept admin@example.com and password123.
bun run 86d init --yes skips every prompt and uses the defaults. Use it in scripts and CI.
Change the seeded password before the Store is reachable from the internet. The default is published on this page, which is exactly as safe as it sounds.
4

Start the dev server

Then open:Sign in with the credentials you set during seeding.
5

Turn on a Module

A Module is off until you list it in your active Template’s config.json. Add the package name to the modules array:
templates/brisa/config.json
Every Module in the catalog is currently Experimental, so allowExperimentalModules has to stay true for anything to load.Regenerate the imports and the API router:
The Module’s components are now usable in your MDX Templates with no import statement, and any Store Admin pages it registers appear in the sidebar.To start your own Module instead:
That scaffolds modules/my-feature/ with an entry point, schema, Store and admin endpoints, and component stubs. Build a custom Module walks through the rest.

Start everything with Docker Compose

Docker Compose runs PostgreSQL, MinIO object storage, and the Store app together, so you install none of them yourself. Copy the environment template and generate an auth secret:
Paste the generated value over the BETTER_AUTH_SECRET placeholder in .env. Compose sets NODE_ENV=production, and the runtime refuses to boot on a placeholder secret, a low-entropy secret, or anything under 32 characters. Paste the output, not the command.
First boot runs migrations and seeds demo data. Once the containers are healthy:
Compose serves uploads from your own origin at /uploads/... rather than the raw bucket URL, so you never have to make the MinIO bucket public to show a Product image.
If those ports are already taken on your machine, override them:

When something goes wrong

Run 86d doctor. It checks your environment file, database reachability, generated files, and Module wiring, and it prints a suggested fix for each failure. Troubleshooting covers the failures that need more than one command.

Where to go next

Put it on a server

Railway, Vercel with Neon, or your own Docker host.

Browse the catalog

101 Modules, what each does, and where its source lives.