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.

Modules are the building blocks of an 86d store. Each module is a self-contained npm package under the @86d-app scope that ships three things together: API endpoints your storefront calls, admin UI pages that appear in the dashboard, and React components you can drop directly into your MDX templates. You add or remove features by editing a single list in config.json. There are no plugins to register and no monolithic bundles to untangle.

What a module provides

Every module in the @86d-app scope is structured the same way:
  • Store endpoints: public API routes mounted at /api/[module-path]/...
  • Admin endpoints: protected routes accessible only to authenticated admin users
  • Store components: React components (for example <Cart />, <ProductGrid />) registered automatically in the MDX component registry
  • Admin components: management UI pages that appear in the relevant group of the admin sidebar
Modules depend only on @86d-app/core and communicate with each other through declared contracts, not direct imports. This keeps every module independently replaceable.

Enabling modules in config.json

The modules field in your active template’s config.json controls which modules are active. After editing it, run 86d generate to wire everything in.
templates/<theme>/config.json
{
  "modules": [
    "@86d-app/cart",
    "@86d-app/products",
    "@86d-app/checkout",
    "@86d-app/reviews"
  ]
}
1

Edit config.json

Add the module package name to the modules array in your active template’s config.json.
2

Regenerate module imports

86d generate
This installs any missing packages, updates package.json, and regenerates modules.ts with static imports from every enabled module.
3

Use the components in MDX

Components from newly enabled modules are immediately available in any MDX template file. No import statements are required.
Setting "modules": "*" in config.json enables every module installed in the workspace. This is the default for the starter template.

Using module components in MDX

Once a module is enabled, its components are auto-registered in the MDX component registry. You use them like any other JSX element inside your .mdx files:
index.mdx
<FeaturedProducts limit={4} title="Staff Picks" />

<CollectionGrid featured />

<Reviews productId={id} />

<Cart />
No import statements are required. The code generator handles them for you.

Module categories

86d ships a deep set of first-party modules across the categories below. For the full list with descriptions, see the Module catalog.
Core product data and discovery.
ModulePackage
Products@86d-app/products
Collections@86d-app/collections
Brands@86d-app/brands
Bundles@86d-app/bundles
Inventory@86d-app/inventory
Search@86d-app/search
Product Q&A@86d-app/product-qa
Reviews@86d-app/reviews
Comparisons@86d-app/comparisons
Recently viewed@86d-app/recently-viewed
Recommendations@86d-app/recommendations
Cart, checkout, and the purchase flow.
ModulePackage
Cart@86d-app/cart
Checkout@86d-app/checkout
Discounts@86d-app/discounts
Gift cards@86d-app/giftcards
Wishlist@86d-app/wishlist
Bulk pricing@86d-app/bulk-pricing
Flash sales@86d-app/flash-sales
Auctions@86d-app/auctions
Subscriptions@86d-app/subscriptions
Preorders@86d-app/preorders
Backorders@86d-app/backorders
Growth, retention, and content.
ModulePackage
Newsletter@86d-app/newsletter
Blog@86d-app/blog
Affiliates@86d-app/affiliates
Loyalty@86d-app/loyalty
Referrals@86d-app/referrals
Gamification@86d-app/gamification
Announcements@86d-app/announcements
Social proof@86d-app/social-proof
SEO@86d-app/seo
Shipping, delivery, and post-purchase.
ModulePackage
Orders@86d-app/orders
Fulfillment@86d-app/fulfillment
Shipping@86d-app/shipping
Returns@86d-app/returns
Digital downloads@86d-app/digital-downloads
Store pickup@86d-app/store-pickup
Delivery slots@86d-app/delivery-slots
DoorDash@86d-app/doordash
Uber Direct@86d-app/uber-direct
Sell on external platforms.
ModulePackage
Amazon@86d-app/amazon
eBay@86d-app/ebay
Etsy@86d-app/etsy
Google Shopping@86d-app/google-shopping
Facebook Shop@86d-app/facebook-shop
Instagram Shop@86d-app/instagram-shop
TikTok Shop@86d-app/tiktok-shop
Walmart@86d-app/walmart

Installing community modules from npm

Modules do not have to come from the @86d-app scope. Any npm package that follows the 86d module contract works the same way. Add the package name to config.json and run 86d generate. The generator detects that it is not a workspace package and installs it from npm automatically.
config.json
{
  "modules": [
    "@86d-app/cart",
    "@86d-app/products",
    "@some-company/analytics-widget"
  ]
}
You can also pull a module straight from a GitHub repository or any npm registry with the CLI:
86d module add github:owner/repo/modules/loyalty
86d module add npm:@acme/commerce-module
See 86d module add for the full specifier grammar.
Keep separate config.json files per environment. Include a @86d-app/debug-tools module in development, for example, but omit it from production.