A template is judged in the first ten seconds of a live demo and then maintained by a stranger. It has to look expensive immediately and still be legible to a buyer who has never seen the codebase.
What I did about it
Built on Next.js 16 App Router with typed data utilities, so a buyer swaps a data file rather than hunting hardcoded strings through components.
Cart and wishlist ship as working state, not as a TODO — the demo is the product, and a dead 'Add to cart' button loses the sale.
SEO comes prewired: metadata, structured data, sitemap and robots, because the buyers are brands who need to rank.
What I rejected, and why
A template optimises for legibility over cleverness. Abstractions that would pay off in a long-lived application are actively harmful here, because every layer of indirection is one more thing the buyer has to understand before they can change a colour.
Cart and wishlist state is client-only, so a buyer who wants persistence has to add it themselves. For a template that is arguably correct — but the docs should say so explicitly rather than letting the demo imply more than ships.