Custom Website Builder. Code-based stores
Build your storefront in code (HTML/CSS/JS or React) with an AI copilot. Preview, deploy, and the framework support matrix.
Last updated 2026-05-10
For merchants who want full design control without giving up the rest of SellStein, the Custom Website Builder is a code-first storefront option.
When to use it
Use the Custom Website Builder when you have:
- Strong design requirements that the theme system can't deliver
- An existing brand site you want to bring to SellStein without rebuilding
- A developer or agency in-house
If you don't have a developer, stick with the theme system. The builder isn't a no-code tool. It's a code editor with a deployment pipeline attached.
Code Workspace → New project
The workspace ships with three starter templates:
- Plain HTML/CSS/JS. Single-page or multi-page, vanilla
- React + Vite. SPA or multi-page with React Router
- Astro. Content-driven with islands of interactivity
Pick one, the file tree mounts in the editor, you start coding.
AI Copilot
The copilot understands the SellStein storefront API. Ask it to "show featured products on the home page" and it'll wire up the API call, render the cards, and save the file. It can read existing files, write new ones, refactor, and debug.
The copilot can't access your real customer data. It sees structure, not values. So it's safe to share screenshots without leaking PII.
Preview vs deploy
- Preview. Instant, shareable link. Updates as you save. Used for design review with stakeholders
- Deploy. Pushes to your custom domain via GitHub Actions. Takes 1-2 minutes. Cached on the SellStein CDN
Preview runs on esbuild-wasm in the browser, so it's snappy but lightweight (no SSR). Deploy runs the real framework in CI for production builds.
Framework support
Officially supported with one-click deploy:
- HTML/CSS/JS (any)
- React 18+ (Vite, Next.js, Remix)
- Astro 4+
- Svelte 5+
- Vue 3+
Anything node-buildable should work. We run `npm install && npm run build` and serve the output of `dist/` (or whatever your framework outputs). Static and SSR both supported.
Connecting to SellStein data
The storefront API lives at /api/v1/* (storefront keys, public). Endpoints:
- GET /products
- GET /products/:slug
- GET /collections
- POST /cart/add
- POST /checkout
Call these endpoints directly with `fetch` from your custom code. A typed SDK (`@sellstein/storefront`) that wraps them with baked-in types and pre-handled errors is coming soon.
SEO with the custom builder
The framework you choose handles meta tags, structured data, and sitemap. Make sure to:
- Generate a sitemap.xml at build time
- Set proper meta titles and descriptions per page
- Emit Product schema for product pages
- Set the canonical URL
Settings → Storefront → SEO health-checks your custom site weekly and surfaces missing structured data, slow pages, or broken canonical URLs.
Debugging deploys
If a deploy fails, GitHub Actions logs are at the deploy detail page. Most failures are:
- Wrong Node version (we default to 20; specify in package.json engines if you need different)
- Missing env vars (Settings → Code Workspace → Environment variables)
- Build output in the wrong directory (we expect dist/ or build/; configure with sellstein.config.json)
Performance on custom sites
You opt out of our default optimisations when you go custom. We don't auto-inject critical CSS or lazy-load images on a framework we don't control. Build them in. The Lighthouse score is on you.