Violetta Studio  ◆  Carte No. 03
Order ◆ $69

Violetta Studio ◆ Next.js 16 template ◆ Full source


Slow fermentation

Next.js 16 Bakery and Food Shop Template with Cart — Levain

Cakes ◆ Pastry ◆ Bread ◆ Cookies


A bakery storefront that actually sells: a filterable menu, product pages, a cart drawer and a numbered checkout — running on a self-contained local cart out of the box, and on Shopify, BigCommerce, Snipcart or Stripe the moment you set one environment variable.

I want this — $69

30-day money back guarantee. Email me and you get a full refund — no questions, no forms.

Taste the live demo ↗
Next.js 16React 19TypeScript strictTailwind v4108 testsEN · ES · FR · PTRTL-ready
Printed on

Three stocks, two schemes.

Palette and light/dark are separate switches in Levain, so toggling the scheme never throws away the palette. Change either one and this page changes with it — the blocks driving it were lifted out of src/styles/themes.css, so this is not a picture of the themes.

Palette
Scheme
--bg#F5F0EB
--fg#2A2520
--accent#C9A96E
--card-bg#FFFFFF
--muted#6B6458
--linergba(42,37,32,0.12)

Read live from the page you are on. Card surfaces are their own tokens (--card-bg, --card-fg, --card-line) precisely so a product card stays readable when the room goes dark. Copy a block, rename the data-theme, and you have a fourth palette.

Off the card

Now the part that is not a menu.

A carte is a pleasant way to list what is in the box. But what you are buying is the ordering flow, so here it is end to end, in the order a customer walks it.

01

Menu

Category pills, a dietary sidebar with live counts, a price range and a sort control. Filters live in the left sidebar on desktop and collapse to scrollable tabs on a phone.

02

Product

Thumbnail rail, size selector, allergen chips, an availability badge (Bake-to-order · 48h) and customer reviews. Add to cart from here or from the card in the grid.

03

Cart

  • Cart drawerslide-in
  • Dedicated /cartpage
  • Quantity + removeyes
  • Promo codeyes
  • Currency5
Survives a reloadyes

The one step with no screenshot on this card, because it is a drawer: it slides in over whatever page you were on, and there is a full /cart page for the same state. Totals follow the currency picked in the nav.

04

Checkout

Numbered steps — contact, delivery (pickup at the workshop or courier), date and time from a calendar with closed days, then payment — beside a summary that stays live as the order changes.

Out of the box the cart is a self-contained local demo: no account, no keys, nothing to sign up for — you can click the whole flow the minute it installs. Set NEXT_PUBLIC_COMMERCE_PROVIDER to shopify, bigcommerce, snipcart or stripe and the same interface talks to a real backend. The adapters share one signature, so nothing in the UI changes.

First course

Front of house

Second course

The menu

Third course

The kitchen

Prix fixe

$69

Every line on this card. One payment, the complete source, no locked tier and no subscription.

Order Next.js 16 Bakery and Food Shop Template with Cart — Levain

30-day money back guarantee. Email me and you get a full refund — no questions, no forms.

To finish

A gallery worth photographing for.

Bakeries live on photography, so the viewer is the one piece nobody should have to build twice.

Provenance

The whole specification.

Framework Next.js 16 · App Router · React 19
Language TypeScript, strict mode
Styling Tailwind v4 over the CSS custom properties this page is running on
Requirements Node.js 20+ · npm, pnpm or bun
Cart Self-contained local demo by default; Shopify, BigCommerce, Snipcart and Stripe adapters selected with NEXT_PUBLIC_COMMERCE_PROVIDER
Pages Home, menu, product pages, cart, checkout and order-received, gallery, about, contact, FAQ, locations, wholesale, gift cards, press, changelog, docs, account (login, register, password reset), components gallery
Themes Warm & Organic, Clean White, Dark & Moody · each with a light and a dark scheme · switchable at runtime
Type Four display / body pairs plus a script face for the accent lines — Playfair, Cormorant, Fraunces, DM Serif
Languages English, Spanish, French, Portuguese — interface and content, WhatsApp quick-messages included
Right-to-left Logical CSS, mirrored icons, direction-aware animation. Set dir on a locale and the layout flips.
Images Eight product and hero PNGs, so the whole flow previews before you shoot a thing
SEO JSON-LD Bakery + Product, generated Open Graph images, sitemap, robots, RSS
Accessibility Visible focus, skip link, keyboard-driven lightbox and search, prefers-reduced-motion respected
Tests Vitest — commerce adapters, config, utilities, i18n coverage. Run npm test.
Docs README, CUSTOMIZATION, DEPLOY, PRODUCTION, PACKAGE-MANAGER, LICENSE, plus SANITY, STRAPI and CONTENTFUL guides
Licence Single use — one purchase, one deployed project. Multi-use available, just ask.
Support hello@violettadev.com
Before you order

Questions.

What actually lands in my downloads?

A ZIP with the complete source. Unzip, npm install, npm run dev, and the shop is at localhost:3003. Nothing minified, nothing held back for a pro tier.

Does the checkout take real money?

Not until you connect a processor — and that is deliberate. Out of the box the cart is a local demo with no keys and no account, so you can click the entire flow on day one. The Shopify, BigCommerce, Snipcart and Stripe adapters ship in src/lib/commerce; one environment variable picks the one you want.

I run a café, not a bakery. Does it still fit?

Yes. Categories, products, dietary tags, prices, opening hours and pickup rules all live in the config file — nothing about cakes is hardcoded. It works for a patisserie, a deli, a coffee roaster or any small food business that takes orders.

Can I build a client site with it?

Yes. The licence covers one deployed project per purchase, so a client site counts. Building several? Email hello@violettadev.com and we will sort out multi-use.

Are the four languages real, or machine output?

Real. English, Spanish, French and Portuguese are written out in messages/ — product copy, WhatsApp quick-messages and all — and a test fails if a key exists in one locale but is missing from another.

Do I need a CMS?

No. Content lives in a typed config file: edit, commit, deploy. If you outgrow that, the Sanity, Strapi and Contentful adapters share the same function signatures, so swapping one in is an import change rather than a rewrite.

How much Next.js do I need to know?

Enough to run npm install. Changing the bakery’s name, products, prices and colours takes no framework knowledge — CUSTOMIZATION.md walks through it. Restructuring pages is where App Router familiarity starts to help.

Something breaks. Then what?

Email hello@violettadev.com. I wrote every line of it and I answer my own support.

Who makes this?

Violetta Studio — a one-person shop building production Next.js templates. The rest of the catalogue is at violettadev.com ↗.


Service starts

when you are ready.

A bakery storefront that already sells, already speaks four languages, and is yours to take apart.

Buy Next.js 16 Bakery and Food Shop Template with Cart — Levain — $69

30-day money back guarantee. Email me and you get a full refund — no questions, no forms.

Open the live demo ↗