Next.jsReactE-commerceStarter

headless-shopify-nextjs-starter — Next.js Ecommerce Template

By giorgioliapakis

A Shopify headless storefront starter built on Next.js and React, covering all standard page types, a themeable design system, and a demo mode that runs without a Shopify account.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-02View source

What stands out

A quick read of the recorded project description.

01

Covers standard Shopify page types including home, product, collection, search, cart, blog, policy pages, landing pages, and 404

02

Provides a demo mode that runs the full storefront with generated data without a Shopify account, and can be deployed directly to Vercel

03

Cart supports line items, quantities, discounts, notes, and selling plans, with an accessible drawer and optimistic updates; add-to-cart still works with JavaScript disabled

04

Design system is centrally managed with semantic tokens, supports light and dark modes, and validates WCAG contrast at configuration time

05

Pages are assembled from a typed server-rendered section registry, and the home page and landing pages can reuse the same set of sections

06

Built-in robots.txt, sharded sitemap, llms.txt, dynamic OG images, and markdown representations for products, collections, and search

Template Details

This is a starter template for a Shopify headless storefront, built with the Next.js App Router and React, communicating with the Shopify Storefront API through Shopify's Hydrogen SDK. The template covers standard page types including home, product, collection, collection list, search, cart, blog, article, content pages, policy pages, landing pages, and 404, and provides metadata, JSON-LD structured data, and error and empty state handling for each page.

For the conversion path, the template includes a cart with line items, quantities, discounts, notes, and selling plans, as well as an accessible drawer cart with optimistic updates, Shop Pay, predictive search, and Shopify-hosted checkout; add-to-cart still works with JavaScript disabled. The design system is centrally managed through semantic tokens (color, typography, spacing, radius, motion), supports light and dark modes, validates WCAG contrast at configuration time, and the theme can be adjusted in a single configuration file.

Pages are assembled from a composable, typed server-rendered section registry, and both the home page and landing pages are built on that registry. The template also provides robots.txt, a sharded sitemap, llms.txt, dynamic OG images, and markdown representations for products, collections, and search. On quality, the repository runs Storefront query budgets, bundle size budgets, Lighthouse, Playwright, and axe checks in CI (covering desktop, mobile, and JavaScript-disabled scenarios), and unifies type, lint, unit and contract tests, and supply chain audits through pnpm check.

Limitations to note: checkout, payments, and customer accounts are intentionally left to Shopify hosting; the template does not touch card data or rebuild authentication. Third-party app features such as reviews, loyalty, wishlists, and subscription portals require writing your own adapter layer. The project describes itself as young but usable, and the API surface of shop.config.ts and the section schema may still change before 1.0; the Hydrogen SDK is pinned to a preview version with a dated review exception note.

Next.jsReactE-commerceStarter

Is it right for your project?

Use Cases

  • Building a headless frontend for a Shopify store and wanting ready-made page types and conversion paths
  • Previewing and evaluating the storefront structure and design system with demo data before connecting a real Shopify account
  • Quickly customizing brand appearance by centrally adjusting theme, navigation, and page recipes through shop.config.ts
  • Letting coding agents extend pages or sections based on the repository's AGENTS.md and pinned skill packages
  • Introducing query budgets, bundle size, Lighthouse, and accessibility checks as quality gates in CI

Suitable For

  • Developers or teams needing a starting point for a Shopify headless storefront frontend
  • Projects that want to validate the design system and page structure first using demo mode
  • Developers accustomed to the Next.js App Router and React server components
  • Workflows planning to use coding agents for page assembly and further development

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    After cloning the repository, run pnpm install, then pnpm dev:demo to browse the demo storefront without credentials

  2. 2

    To connect a real store, install the Headless sales channel in the Shopify admin and create a storefront, then obtain a public Storefront API access token

  3. 3

    Copy .env.example to .env.local, set PUBLIC_STORE_DOMAIN and PUBLIC_STOREFRONT_API_TOKEN, then run pnpm storefront:doctor to verify the connection

  4. 4

    Store name, navigation, theme, and page recipes are modified centrally in shop.config.ts

  5. 5

    Run pnpm check before committing; this command unifies type, lint, unit and contract tests, and supply chain audits

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not mean external services or third-party assets are free.

Must comply with when using

  • You may use, modify, commercialize, and distribute the code of this version for free.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Checkout, payments, and customer account features are not implemented in the template but are left to Shopify hosting; using these capabilities requires relying on the Shopify platform and its hosted pages.
  • Third-party app features such as reviews, loyalty, wishlists, and subscription portals are not provided with the template and require writing your own adapter layer.
  • Connecting a real store requires installing the Headless sales channel in the Shopify admin and creating a storefront, which are external platform account and configuration requirements.
  • Connecting a real store requires configuring the Shopify Storefront API domain and a public access token, i.e., external service credentials.
  • The Hydrogen SDK the template depends on is pinned to a preview version, which is a non-stable dependency and may bring compatibility changes in future upgrades.
  • The project has not yet reached 1.0, and the API surface of shop.config.ts and the section schema may still change before 1.0.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; the code's MIT license alone cannot be used to judge them.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

Deliberately handed off to Shopify: **checkout**, **payments** and **customer accounts**.

Original README

Third-party apps (reviews, loyalty, wishlists, subscriptions portals) need their own adapters

Original README

In Shopify admin, install the **Headless** sales channel and create a storefront.

Original README

Set `PUBLIC_STORE_DOMAIN` to `your-store.myshopify.com` and `PUBLIC_STOREFRONT_API_TOKEN` to the public token.

Original README

The Hydrogen SDK is pinned to a preview build under a dated, reviewed exception

Original README

Expect the API surface of `shop.config.ts` and the section schema to still move before a 1.0.

Original README
https://github.com/giorgioliapakis/headless-shopify-nextjs-starter/blob/main/LICENSEhttps://github.com/giorgioliapakis/headless-shopify-nextjs-starter/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 85 / 100
Technologies
Next.js · React
Website type
E-commerce · Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-09-14
Screenshot last checked
2026-10-02

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: 0eb311034e026613d6796c92b825655717b5518f85205da09538cca84c66f588

2026-10-02T07:35:05.290Z

Source file / repository
# Headless Shopify Next.js Starter

A production-shaped headless Shopify storefront on Next.js 16 — every standard page type, a themed
design system, and a demo mode that runs without a Shopify account.

Point it at your store, or hand it to a coding agent and let it build.
**[Browse the live demo →](https://headless-shopify-nextjs-starter.vercel.app)**

![Product page in dark mode: gallery, variant picker with sold-out states, Shop Pay and add to cart](docs/media/product-dark.png)

```bash
git clone https://github.com/giorgioliapakis/headless-shopify-nextjs-starter
cd headless-shopify-nextjs-starter
pnpm install
pnpm dev:demo
```

That runs the full storefront on generated demo data — no credentials, no Shopify account. Open
[localhost:3000](http://localhost:3000) to browse it, and `/styleguide` to see the design system.

Or deploy the same credential-free demo straight to Vercel — set the four demo values from
[`.env.example`](.env.example) when prompted:

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fgiorgioliapakis%2Fheadless-shopify-nextjs-starter&env=SHOPIFY_STOREFRONT_FIXTURE,PUBLIC_STORE_DOMAIN,PUBLIC_STOREFRONT_API_TOKEN,SHOPIFY_API_VERSION&envDescription=Demo%20fixture%20values%20from%20.env.example%20boot%20a%20credential-free%20demo%20store&envLink=https%3A%2F%2Fgithub.com%2Fgiorgioliapakis%2Fheadless-shopify-nextjs-starter%2Fblob%2Fmain%2F.env.example)

## What you get

- **Every Shopify page type**: home, product, collection, collection list, search, cart, blog,
  article, content pages, policies, landing pages, 404 — each with metadata, JSON-LD, error and
  empty states.
- **A real conversion path**: a cart with lines, quantities, discounts, notes and selling plans, an
  accessible drawer with optimistic updates, Shop Pay, predictive search with Shopify attribution,
  and hosted Shopify checkout. Adding to cart works with JavaScript disabled.
- **A design system you can retheme from one file** — semantic tokens for colour, type, spacing,
  radius and motion, with light and dark mode and WCAG contrast validated at config time.
- **Composable page sections** — a registry of typed, server-rendered sections that home and landing
  pages are built from, so an agent can assemble pages without inventing markup.
- **SEO and agent surfaces** — `robots.txt`, sharded sitemaps, `llms.txt`, dynamic OG images, and
  markdown representations of products, collections and search.
- **Performance and accessibility enforced, not aspired to** — Storefront query budgets, bundle
  budgets, Lighthouse runs, and Playwright + axe across desktop, mobile and JavaScript-disabled,
  all failing CI when they slip; types, lint, unit and contract tests and supply-chain audits ride
  the same `pnpm check` gate.
- **Pinned agent skills** for Hydrogen, React performance and shadcn, in `.agents/skills/`.

Built on Next.js 16 (App Router, Server Components, Cache Components), React 19, Tailwind CSS 4,
shadcn source-owned components on Base UI, and Shopify's framework-agnostic Hydrogen SDK.

## Connect your Shopify store

1. In Shopify admin, install the **Headless** sales channel and create a storefront. Copy the
   public Storefront API access token.
2. Configure the environment:

   ```bash
   cp .env.example .env.local
   ```

   Set `PUBLIC_STORE_DOMAIN` to `your-store.myshopify.com` and `PUBLIC_STOREFRONT_API_TOKEN` to the
   public token. The public token is safe in the browser by design.

3. Verify the connection. The report is redacted and never prints your token:

   ```bash
   pnpm storefront:doctor
   ```

4. Run it:

   ```bash
   pnpm dev
   ```

Then edit `shop.config.ts` — that's the one file that holds your store's name, navigation, theme and
page recipes.

Full walkthrough: [docs/getting-started.md](docs/getting-started.md).

## Customize

| I want to…                               | Go to                                                                                |
| ---------------------------------------- | ------------------------------------------------------------------------------------ |
| Change colours, type, spacing, dark mode | `shop.config.ts` → `theme`, see [design tokens](docs/customization/design-tokens.md) |
| Rearrange the homepage                   | `shop.config.ts` → `recipes.home`, see [sections](docs/customization/sections.md)    |
| Add a landing page                       | `shop.config.ts` → `recipes.landing`                                                 |
| Change navigation                        | `shop.config.ts` → `navigation`, or let it read your Shopify menus                   |
| Add a UI primitive                       | `components/ui/` — source-owned, edit in place                                       |
| Add a Storefront query                   | `lib/shopify/operations/`                                                            |

## What's supported

The [storefront capability contract](docs/compatibility/storefront-capabilities.md) lists every
route and capability with an honest status.

Deliberately handed off to Shopify: **checkout**, **payments** and **customer accounts**. This
starter never touches card data, and links out to Shopify's hosted account pages rather than
rebuilding authentication. Third-party apps (reviews, loyalty, wishlists, subscriptions portals)
need their own adapters — the starter does not ship fake provider-neutral UI that silently drops
those contracts.

## Working with coding agents

`AGENTS.md` is the instruction source, and it is read automatically by Claude Code, Codex and other
agent hosts. It describes the architecture, the invariants, and where things live. `.agents/skills/`
carries pinned Shopify Hydrogen, React and shadcn skills so an agent gets current, version-matched
guidance instead of guessing.

The practical loop: run `pnpm dev:demo`, point your agent at the repo, and ask for what you want.
`pnpm check` is the gate it should pass before it claims to be done.

## Project status

Young but real. The storefront runtime, design system, demo mode and quality gates work today and
are covered by CI. Expect the API surface of `shop.config.ts` and the section schema to still move
before a 1.0.

The Hydrogen SDK is pinned to a preview build under a dated, reviewed exception — see
[ADR 0002](docs/adr/0002-hydrogen-preview-adoption.md).

## Documentation

Start at [docs/README.md](docs/README.md).

## Contributing

[`CONTRIBUTING.md`](CONTRIBUTING.md). The one hard rule: nothing store-specific ever enters the
repository — no real merchant names, product data, imagery or credentials. `pnpm check` enforces it.

## License

MIT — see [`LICENSE`](LICENSE). Derived from and bundling MIT-licensed work by Vercel, Shopify and
shadcn; attribution in [`NOTICE`](NOTICE).
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.