Skip to main content

Documentation Index

Fetch the complete documentation index at: https://86d.app/docs/llms.txt

Use this file to discover all available pages before exploring further.

86d is under active development and is not yet recommended for production use. Proceed with caution.
86d is a modular, open-source commerce platform where every feature ships as an independent npm package. Instead of a monolithic system where you take everything or nothing, 86d lets you compose precisely the commerce capabilities your store needs (products, cart, checkout, subscriptions, loyalty, multi-channel selling, and many more), then deploy on infrastructure you control. The platform is designed to be agentic-friendly: each module is small, isolated, and scoped to a single concern, which makes it tractable for AI-assisted code generation, automated reviews, and bulk migrations.

The module system

Every piece of functionality in 86d is a module: an isolated npm package that ships three things together:
  • API endpoints mounted at /api/[module-path]/...
  • Admin UI pages that appear in the admin sidebar
  • Storefront components registered automatically into the MDX component registry
Modules depend only on @86d-app/core and never import each other directly. Cross-module communication happens through declared contracts (requires / exports), so you can add, remove, or replace any module without touching the rest of your store. You control which modules your store loads by editing your active template’s config.json:
templates/<theme>/config.json
{
  "name": "My Store",
  "modules": [
    "@86d-app/cart",
    "@86d-app/products",
    "@86d-app/checkout",
    "@86d-app/orders"
  ]
}
After updating config.json, run 86d generate to regenerate module imports and the API router. Module components become available immediately in your MDX storefront templates. Each module follows a consistent on-disk structure:
modules/<name>/src/
  index.ts              Module factory, types, admin navigation
  schema.ts             Zod schemas for inputs and outputs
  controllers.ts        Business logic
  store/endpoints/      Public API endpoints
  store/components/     Customer-facing MDX components
  admin/endpoints/      Protected admin endpoints
  admin/components/     Admin UI components
For a deeper dive, see Modules and Build a custom module.

Deployment modes

86d supports two deployment paths. Both run the same codebase; the deployment target only determines which storage provider and database you wire up via environment variables.

Self-hosted with Docker

Run docker compose up to spin up PostgreSQL, MinIO object storage, and the store app on your own server. You own every byte. Set BETTER_AUTH_SECRET to a secure random string for production.

Managed (Railway or Vercel)

Deploy to Railway with managed PostgreSQL or to Vercel with Neon and Vercel Blob. Set STORE_ID and 86D_API_KEY to connect to the 86d platform API for SSO and hosted config.
See Deployment and hosting for the full setup for each path.

Key value props

Full data ownership. Your store runs on your PostgreSQL database. No shared infrastructure, no usage-based pricing surprises, and no vendor lock-in. You can export, migrate, or self-host at any time. Composable architecture. Enable exactly the modules your store needs. A minimal store might run products, cart, and checkout. A full-featured store might add loyalty, subscriptions, multi-currency, helpdesk, and multi-channel selling. Every module can be upgraded or swapped individually. Open source. 86d is Apache 2.0 licensed. You can fork it, extend it, contribute back, or audit every line of code that runs your store. The repository is at github.com/86d-app/86d.

Start building

Quickstart

Get a local store running in minutes with the CLI or Docker.

Module catalog

Browse the full module catalog and pick what your store needs.

CLI reference

Scaffold modules, manage templates, and run code generation.