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.
A Template controls everything a Shopper sees: the layout, the palette, the type, the content of every page, and the marks in your header and footer. It is a folder of MDX files and one config.json. Editing your homepage means editing a text file. You do not touch the Next.js app, and you do not run a build step.

What is in the folder

Copy the starter first, if you want

Editing brisa in place works. Copying it first means an upstream change never conflicts with yours:
That writes templates/my-store/ with the whole starter copied in. Activate it with 86d template activate my-store.

Set your name and colors

The top of config.json is your Store’s identity:
Colors are OKLCH tokens under variables.light and variables.dark, each mapping to a CSS custom property. Changing primary moves your brand color across every button and interactive element at once:
OKLCH lightness is perceptually uniform: oklch(0.5 0.2 30), a warm orange, looks as bright as oklch(0.5 0.2 250), a cool blue. The first number is lightness from 0 to 1, the second is chroma, the third is hue from 0 to 360. Move one at a time.

Edit the pages

MDX is where you arrange Module components and write copy. Here is how the starter homepage is built:
FeaturedProducts, FeaturedCollections, and NewsletterInline each come from their Module. They become available the moment that Module is in config.json and you have run 86d generate. Plain HTML, JSX, and Tailwind classes all work in the same file.

Pages that take a parameter

A dynamic route’s layout receives props. products/[slug]/layout.mdx gets props.slug without you wiring anything:

Design variants

A component can carry several designs as numbered MDX files: 1.mdx, 2.mdx, 3.mdx. The .tsx file imports one of them:
Switching designs is a one-line import change. Data fetching, state, and event handlers stay exactly where they are, which is why a redesign cannot introduce a data bug.

Swap your logo and favicon

Replace the SVGs in your Template’s assets/ directory, and update the paths in config.json if the filenames change:
  • favicon: the browser tab icon, usually 32 by 32 pixels.
  • icon.light and icon.dark: your square mark, used in the mobile menu and compact navbar. Supply both so it stays readable either way.
  • logo.light and logo.dark: the full logotype in the header and footer.
Those SVGs use literal fill colors such as #111 and #f5f5f5 rather than CSS custom properties, because they are sometimes rendered outside the theme, in an Open Graph image for example, where no custom property exists to resolve.