Deux – Next.js 16 Bakery and Food Shop Template

Preview
Preview 1

A bakery is sold on appetite: the visitor should smell the croissants before they reach the menu. Deux is built around that — warm cream and chocolate-brown tones, big hand-drawn display type, scalloped edges, "freshly baked" badges that turn slowly and pastry photography that fills every section. Built on the Next.js 16 App Router with React 19 and TypeScript in strict mode, it ships 17 page templates covering 39 fully static pages, with a working online shop — an add-to-cart form on every product, two cart drawers, a validating checkout with store pickup or local delivery, and an order confirmation — and the menu, categories and blog driven by JSON and MDX files you edit directly. No CMS or backend required.

Whether you run an artisan bakery, a patisserie, a café with a takeaway counter, a cake studio or any small food brand that sells online as well as over the counter, Deux gives you every page the shop needs — a home page with menu tabs, a "Why Deux" tab set, offers, opening hours, testimonials, the newest posts and an FAQ, an about page with a story slider, a background video and the team, a tabbed menu, fifteen product pages, three category pages, seven full-length articles and a contact page with two store locations. Content lives in JSON and MDX files: re-price a croissant and it is re-priced on the menu, its category page, the home page and in the basket at once. Launch in hours.

Tech Stack

  • Next.js 16 — App Router, every page prerendered to static HTML at build time

  • React 19 — server components throughout, with small client islands for the basket and the interaction layer

  • TypeScript — strict mode, `npm run typecheck` clean

  • Hand-crafted CSS — one plain stylesheet driven by CSS custom properties, no utility framework and no build-time CSS pipeline

  • Self-hosted webfonts — Mouse Memoirs, Geist and Erica One as woff2, no third-party font requests at runtime

  • JSON and MDX content layer — the menu and categories as JSON, the articles as MDX with gray-matter frontmatter and a Markdown parser that renders into the design's own markup

  • Front-end shop — a React cart store in `localStorage`: add to cart, quantities, two cart drawers, checkout with a delivery choice and an order confirmation

  • Zero animation libraries — no jQuery, no GSAP, no Lenis: the split hero titles, the scroll reveals, the tabs, the sliders and the smooth wheel scroll are one TypeScript file

Included Pages and Templates

Core pages

  • Home with a split-line hero title, menu tabs by category, a review strip, offers, the "Why Deux" tabs with their progress bar, a running word strip, opening hours, a testimonials slider, the three newest articles and the FAQ

  • About with the mission, a story slider that autoplays to rest, a background video with a pause button, the counters and the team

  • Menu with a tab per category, each listing every item filed under it

  • Contact with a validating enquiry form and two store locations that light up one at a time

Menu and shop

  • 15 product pages, each with its price, weight, texture, ingredients, an add-to-cart form and three suggested items

  • 3 category pages: Breads, Pastries and Sweets

  • Checkout with store pickup or local delivery, a PayPal review page and an order confirmation that prints the order placed

Blog

  • Blog index with a featured article and 7 full-length articles, each with an author, a picture pair and share links

Utility pages

  • Style guide, instructions, licenses, changelog, a 401 password-protected page and a 404 page

17 page templates. 39 static pages.

Easy Content Editing

Everything you change lives in `src/content/`. Edit a file, rebuild, done.

  • `src/content/products.json` — the 15 items on the menu: the name, the description, the price, the picture, the weight, texture and ingredients, the category and the three suggested items

  • `src/content/categories.json` — the 3 categories

  • `src/content/blog/*.mdx` — the 7 articles: the title, category, dates, author, the card, banner and picture pair, and the body

Every card reads the item's own entry, so a re-priced croissant is re-priced on the menu, on its category page, on the home page and under every item that suggests it — and the add-to-cart form reads the entry too, so the basket charges what the page shows. File an item under a category and it appears under that tab and on that category's page by itself.

Article bodies are Markdown: section headings, smaller headings, lead lines and paragraphs, in three parts around the picture pair. A parser places each block inside the design's own markup, so the words stay editable and the layout stays exact. Reach past that grammar, or name a category or suggestion that does not exist, and the build stops and names the file.

Theming is one file. Every brand colour, font, spacing step and type size is a CSS custom property near the top of `public/assets/css/styles.css`. Change a value there and it propagates across every page.

Performance and SEO

  • Every page prerendered as static HTML, ready for a CDN

  • Per-page title, description and Open Graph and Twitter card metadata

  • Absolute share-image URLs so link previews resolve

  • Self-hosted fonts with `font-display: swap` and zero third-party requests

  • AVIF imagery with responsive `srcset` sizes, lazy-loaded below the fold

  • Semantic markup with one H1 per page, real buttons and landmarks

  • Keyboard-reachable menus, ARIA tabs with arrow-key support, labelled sliders and cart dialogs, and FAQ questions built on real buttons

  • Full `prefers-reduced-motion` support, and readable with JavaScript off

Deployment

Deploys to Netlify (`netlify.toml` included), Vercel, Cloudflare Pages or any host that runs a Next.js build. `npm run build` prerenders every page; there is no server, no database and no API to configure.

What You Get

  • The complete Next.js 16 project source

  • 17 page templates covering 39 static pages

  • 15 products, 3 categories and 7 articles as editable JSON and MDX

  • A working front-end cart, checkout and order confirmation

  • The original stylesheet, self-hosted webfonts and background video

  • Full HTML documentation

  • Changelog and third-party license file

Requirements

  • Node.js 20 or newer

  • npm 10 or newer, or pnpm, yarn or bun

Subtotal$49.00
Tax•
Tax included
Total$49.00
By placing an order, you authorize Blink to charge your selected payment method the amount shown above. You agree to our Terms and acknowledge the .
Powered byBlink