Skip to main content
A Vite theme is plain TypeScript, no framework. Each section exports mount and update. Good for canvas, animation and fast pages.
Real example: Orbit in templates/themes/orbit/.

The folder

The same as React. Only the section file changes: index.ts instead of index.tsx.

Steps

1

Write theme.json

theme.json
2

Write index.html

The same file as in React. It must load /src/platform/entry.tsx.
3

Add a section

schema.json is the same as in React. The design:
src/sections/spacer/index.ts
4

Put it on the home page

templates/index.json is the same as in React.
5

Zip, upload, publish

Orbit keeps small helpers in src/lib/ (dom.ts, section.ts, store.ts, cart.ts, motion.ts). You can copy them. They are theme files, not platform files.

What ctx holds

Styles

Put your CSS in src/theme.css. Tailwind works too, with tailwind.config.ts. Use the theme colors as CSS variables, like var(--jm-color-primary), so the seller’s color settings apply.

Cart and checkout

No API calls needed. Add data-jm-* attributes to your HTML, or call window.JoinMarkt:
Events on document: jm:cart and jm:checkout-error. Attribute list: Commerce attributes.

Next

Upload rules

What gets kept, and every error.

Runtimes

The same section in all three.