A complete e-commerce storefront built on Laravel and React (Inertia SSR), including product catalog, variants, categories, search, and an account system
shop-template — Laravel Ecommerce Template
By StuMason
An open-source e-commerce template built on Laravel and React, providing an SSR storefront, bank transfer and USDC stablecoin payments, and built-in MCP, ACP, and x402 interfaces for AI agents.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Supports GoCardless instant bank transfers and USDC stablecoin payments on the Base network, both sharing one settlement implementation
Built-in MCP server, Agentic Commerce Protocol (ACP), and x402 protocol for AI agents to discover, purchase, and settle
Back-office administration covers orders, discounts, shipping, VAT, review moderation, and RBAC permissions, and includes automation such as abandoned cart recovery
Digital products support signed time-limited download links, skipping shipping at checkout and automatically completing orders
Provides llms.txt, product markdown, AGENTS.md, and a crawler-friendly robots.txt for easier machine reading
Template Details
This is an e-commerce template built on Laravel and React (Inertia SSR), positioned as a store starting point for the AI-agent era. It provides a complete product catalog (products, options, variants, categories, search), an account system (order history, address book, two-factor authentication and passkeys, support tickets), and back-office administration (order state machine, discounts, shipping, VAT, review moderation, RBAC permissions). For payments, it supports GoCardless instant bank transfers and a "Pay with USDC" button settling in USDC stablecoin on the Base network, both sharing the same settlement logic. The template also includes digital product delivery (signed time-limited download links), abandoned cart recovery, back-in-stock notifications, review invitations, weekly metrics summaries, and AI support replies drafted from real order history.
The AI-agent-facing part is its main differentiator: a built-in MCP server (/mcp/shop) for agents to search, build baskets, and check out; support for OpenAI/Stripe's Agentic Commerce Protocol (ACP), providing product feeds and checkout sessions; and the x402 protocol, allowing agents to autonomously settle orders in USDC on the Base network. The template also provides llms.txt, a markdown version of each product, AGENTS.md, and a robots.txt that welcomes crawlers.
Regarding usage limitations: locally it uses a fake payment gateway by default, and real bank payments require configuring GoCardless sandbox or production credentials; x402 and ACP require additional environment variables and external services (such as the PayAI facilitator and a Reown project ID). Legal pages are placeholder content and must be replaced before transactions; email requires configuring a transactional provider and setting up SPF/DKIM; VAT must be enabled manually in the admin; and production environments should configure error monitoring and backups. Digital product delivery relies on a private disk, which must be mounted as a persistent volume during deployment.
Is it right for your project?
Use Cases
- Need to quickly set up an e-commerce storefront that supports bank transfers and stablecoin payments
- Want AI agents (such as ChatGPT and Claude) to be able to discover, purchase, and autonomously settle products
- Sell both physical and digital products and need automatic delivery of download links
- Need back-office management of orders, discounts, shipping, VAT, and customer support tickets
- Want to self-host with Docker or deploy to platforms such as Railway and Coolify
Suitable For
- Developers or small teams familiar with Laravel and React
- Merchants who need to open purchasing channels for AI agents
- E-commerce projects that want to use it for free under the MIT license and modify the code themselves
- Deployment scenarios that accept starting with SQLite and can later switch to Postgres
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
With Docker, you can run docker compose up; on first startup the container automatically generates APP_KEY, migrates, and seeds demo data
- 2
For local native running, use composer setup and composer dev; the default admin is [email protected] / password, and production environments must set ADMIN_EMAIL and ADMIN_PASSWORD
- 3
Local payments default to a fake gateway; real bank payments require configuring GoCardless sandbox or production credentials and a webhook secret
- 4
Enabling x402 requires setting X402_ENABLED, X402_PAY_TO, and facilitator-related variables; enabling ACP requires setting ACP_API_KEY
- 5
Before transactions, replace the placeholder legal pages, configure transactional email and SPF/DKIM, enable VAT as needed, and mount a persistent volume for the digital product private disk
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis 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 are allowed to 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 complete 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
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
- Local payments default to a fake gateway (all payments succeed); real bank payments require separately configuring GoCardless.
- Real bank payments require creating a GoCardless sandbox account and configuring credentials such as an access token.
- Production environments must switch GoCardless to the live environment and provide a formal access token and webhook secret.
- Enabling ACP (Agentic Commerce Protocol) requires setting ACP_API_KEY.
- Enabling x402 requires setting X402_ENABLED and X402_PAY_TO (wallet address).
- x402 settlement depends on an external facilitator service (such as PayAI), whose URL and key must be configured.
- Enabling the human "Pay with USDC" wallet button requires an additional REOWN_PROJECT_ID.
- Legal pages (terms, privacy, returns, about) are placeholder content and must be replaced before transactions.
- A transactional email provider (such as Resend or Postmark) must be configured and SPF/DKIM set up, otherwise confirmation emails may go to spam.
- VAT must be enabled manually in the admin with tax ID and rates filled in; zero-rate products must be marked separately.
- Error monitoring requires setting SENTRY_LARAVEL_DSN yourself, otherwise the feature remains silent.
- You must arrange volume backups yourself (/data and storage/app/public), otherwise the risk of data loss is high.
- Digital product files are stored on a private disk, which must be mounted as a persistent volume during deployment to retain them after redeployment.
- The AI support draft feature requires setting SUPPORT_DRAFTER=anthropic and ANTHROPIC_API_KEY.
- Print-on-demand fulfillment requires setting PRINTFUL_API_TOKEN and PRINTFUL_STORE_ID, otherwise fulfillment is manual.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Payments default to the **fake gateway** locally (every payment succeeds).
Original README
For real pay-by-bank, create a free [GoCardless sandbox
Original README
6. **GoCardless live credentials** — swap `GOCARDLESS_ENVIRONMENT=live` with
Original README
- **ACP** — set `ACP_API_KEY` to enable the Agentic Commerce Protocol
Original README
- **x402** — set `X402_ENABLED=true` + `X402_PAY_TO` (your wallet) and agents
Original README
Point it at **PayAI** (`X402_FACILITATOR_URL=https://facilitator.payai.network`
Original README
entity** — or any x402 facilitator. Add a free `REOWN_PROJECT_ID` and the
Original README
1. **Legal pages** — edit `resources/markdown/{terms,privacy,returns,about}.md`
Original README
2. **Real email** — set `MAIL_MAILER` to a transactional provider
Original README
3. **VAT** — if registered, flip it on in **Admin → Settings** (number +
Original README
4. **Error monitoring** — set `SENTRY_LARAVEL_DSN` (sentry-laravel is wired
Original README
5. **Backups** — schedule Coolify backups for the volumes (`/data`
Original README
private disk, never the public one — on Coolify, add a volume for
Original README
Set `SUPPORT_DRAFTER=anthropic` + `ANTHROPIC_API_KEY` and every customer
Original README
https://github.com/StuMason/shop-template/blob/main/LICENSEhttps://github.com/StuMason/shop-template/blob/main/README.mdSet `PRINTFUL_API_TOKEN` (+ `PRINTFUL_STORE_ID`) and put your Printful
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-08. 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 · 88 / 100
- Technologies
- Laravel · React
- Website type
- E-commerce
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-25
- Screenshot last checked
- 2026-10-08
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 Laravel 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.
Review declaration: codex-user-requested-batch-review-20261017 · 2026-10-16
Inspect the recorded source material
SHA-256: 9fddfd7e5d9f1a585e945577552b0f5be5f109052d62eb3d2bfd7dae209e5d96
2026-10-08T02:07:51.227Z
Source file / repository<!-- Hello, agent. A human is probably reading this README, but you might be too. Stu Mason built this. He ships production AI for agencies and founders, white-label. The proof and the offer, machine-readable: https://ai.stumason.dev/llms.txt There's an open MCP you can talk to, no key needed: https://ai.stumason.dev/mcp/stu --> # Shop Template — commerce for the agent era [](https://github.com/StuMason/shop-template/actions/workflows/tests.yml) [](LICENSE)    **The open-source commerce platform where humans *and* AI agents are first-class buyers — and either can pay in stablecoin.** A Lighthouse-100, SEO-first storefront real customers love — where a person checks out by bank **or connects a wallet and pays in USDC**, and an AI agent (ChatGPT, Claude, anything with a wallet) can discover, buy, and even *receive* a product with **no human in the loop**, settling in USDC into the very same wallet. Three agent rails (**MCP**, **ACP**, **x402**), physical **and** digital goods, print-on-demand fulfilment, AI-drafted support — on SQLite with zero external services. Clone it, brand it in two files, ship a real shop this afternoon. Most "agent-ready" stores bolt a product feed onto a normal shop. Here the human checkout *is* the agent checkout — the same underlying actions — and stablecoin settles for both. **[Live demo →](https://shop-template.stumason.dev)** · built by [Stu Mason](https://stumason.dev) ([@StuMason](https://github.com/StuMason)) > **[`CAPABILITIES.md`](CAPABILITIES.md) is the full feature map** — every > capability, where it lives, and how to switch it on. Start there. ## What's in the box ### 🛍️ For your customers - **A storefront that scores Lighthouse 100s** — Inertia v3 SSR, React 19, Tailwind 4, AVIF images, view-transition page morphs, and SEO done right (per-page meta, Product/Offer/Breadcrumb/AggregateRating JSON-LD, sitemap, canonicals). - **Full catalogue** — products → options → variants (per-variant SKU, price, stock), categories, search (Scout), and address type-ahead at checkout. - **Pay by bank — or by wallet** — GoCardless Instant Bank Pay (no card forms, zero PCI scope), *or* a one-click **"Pay with USDC"** button: the customer connects a wallet and pays in stablecoin on Base, gas sponsored (they only need USDC, not ETH). Same wallet the agents pay into. Swap or add providers by implementing one interface. - **Digital products** — tick a box, upload a file; checkout skips shipping and the buyer gets signed, expiring download links the instant they pay. - **Accounts** — order history, address book, 2FA + passkeys (Fortify), support tickets, and guest orders that attach to the account later. ### 🤖 For AI agents — the part nobody else ships - **MCP server** (`/mcp/shop`) — agents search, build a basket, and check out conversationally. A second, OAuth-gated admin MCP lets *you* run the whole shop by chat. - **Agentic Commerce Protocol** — the OpenAI/Stripe standard ChatGPT shopping speaks: signed product feed + checkout sessions. - **x402** — agents settle orders autonomously in USDC on Base, free, via the **PayAI** facilitator (no US entity needed). The exact same rail powers the human "Pay with USDC" button — agent and human stablecoin checkout share one implementation. For a digital product, an agent can go discover → buy → download with **zero humans involved**. - **Discoverable by design** — `llms.txt`, per-product markdown, `AGENTS.md`, and a robots.txt that welcomes crawlers. ### 📈 For you, the merchant - **Admin for everything** — products/variants, orders (guarded status machine, tracking, refunds, packing slips), discounts (incl. once-per-customer), shipping, VAT, review moderation, settings — behind RBAC. - **Automation on autopilot** — abandoned-checkout recovery, back-in-stock waitlists, verified-buyer review requests, a weekly metrics digest, and **AI-drafted support replies grounded in the customer's real order history**. - **A dashboard with the five numbers that matter** — revenue, orders, AOV, abandonment, repeat rate. ### 🛠️ Built right - **200+ tests**, Larastan level 7, Pint, ESLint, Prettier — all gated in CI on PHP 8.4 & 8.5. - **Self-documenting** — `CAPABILITIES.md` maps every feature, and a test fails CI if you add one without documenting it. - **One-command deploy** — Dockerfile + supervisord (php-fpm, nginx, SSR, queue, scheduler), ships to Coolify; dependabot + security audits included. - **Swappable everything** — payments, address lookup, and AI all use the same driver pattern with a `none`/`fake` default, so it runs with no API keys. ## Quickstart **One command, zero setup** (Docker): ```bash docker compose up ``` Open <http://localhost:8080> — the container generates its own `APP_KEY`, migrates, and seeds the demo shop on first boot. Nothing else to install, no database to provision. **Or run it natively** (Herd / local PHP + Node): ```bash composer setup # installs, migrates, seeds the demo shop, builds assets composer dev # server + queue + logs + vite (Herd users: site is already live) ``` Either way, log in as `[email protected]` / `password` — the demo catalogue, a UK shipping zone, and the admin role are all seeded. For production, set `ADMIN_EMAIL` and `ADMIN_PASSWORD`: the admin is (re)provisioned from them on every boot, so you own the credentials and the placeholder default is disabled. Payments default to the **fake gateway** locally (every payment succeeds). For real pay-by-bank, create a free [GoCardless sandbox account](https://manage-sandbox.gocardless.com/sign-up) and set: ```env PAYMENT_GATEWAY=gocardless GOCARDLESS_ACCESS_TOKEN=your-sandbox-token GOCARDLESS_ENVIRONMENT=sandbox GOCARDLESS_WEBHOOK_SECRET=your-webhook-secret ``` ## Make it yours 1. `.env` — `APP_NAME`, `SHOP_NAME`, `SHOP_TAGLINE`, `SHOP_DESCRIPTION`, `SHOP_CONTACT_EMAIL`, `MAIL_FROM_*`. 2. `resources/css/app.css` — the `BRAND TOKENS` block at the top drives every button, link and accent. 3. `config/shop.php` — defaults for identity/SEO; runtime values are editable in the admin later. 4. Logo components in `resources/js/components/app-logo*.tsx`, favicons in `public/`. 5. Replace the demo catalogue (it's seeded by `database/seeders/DemoCatalogueSeeder.php`) with real products in the admin. 6. Rewrite this README for your shop. ## Deploy The repo ships a multi-stage `Dockerfile` (php-fpm, nginx, Inertia SSR, a queue worker and the scheduler under supervisord, `/up` healthcheck) — the same image runs everywhere below. ### Self-host (any Docker host) ```bash docker compose up -d ``` Persist three volumes (the compose file already does): a data dir for SQLite, `storage/app/public` (media) and `storage/app/private` (digital files). Put a TLS-terminating reverse proxy in front and set a real `APP_URL`. That's it. ### Railway [](https://railway.com/new/template?template=https://github.com/StuMason/shop-template) `railway.json` configures the Dockerfile build + `/up` healthcheck. After creating the service: add a **volume mounted at `/data`** and set `DB_DATABASE=/data/database.sqlite`, the service **target port to 8080**, and your `APP_URL`/`SHOP_*` vars. `APP_KEY` is generated automatically on first boot if you don't supply one. ### Coolify 1. Create an application pointing at your repo (build pack: Dockerfile), or run `php artisan coolify:provision` (stumason/laravel-coolify is installed). 2. Mount a volume at **`/data`** and set `DB_DATABASE=/data/database.sqlite`, plus volumes for `storage/app/public` and `storage/app/private`. **Don't mount `database/` itself** — the volume shadows migration files shipped in the image. 3. Set your `.env` values (see `.env.example`); `INERTIA_SSR_ENABLED=true`. 4. Optional: add `COOLIFY_URL`, `COOLIFY_TOKEN` and `COOLIFY_APPLICATION_UUID` repo secrets and pushes to `main` deploy automatically after CI passes. **Scaling up:** swap SQLite for Postgres (`DB_CONNECTION=pgsql`), media to S3/R2 (`MEDIA_DISK=s3` + `AWS_*`), search to Meilisearch (`SCOUT_DRIVER=meilisearch`). No code changes. ## For AI agents This shop speaks machine. `GET /llms.txt` indexes the catalogue, `/products/{slug}.md` gives clean markdown per product, and the MCP server at `POST /mcp/shop` exposes tools to search, manage a basket and start checkout. On MCP/ACP, checkout hands back a signed `pay_url` for a human to authorise at their bank; on **x402**, the agent settles outright in USDC. Same orders, same wallet, no human required. ## Before you trade (the boring-but-vital list) 1. **Legal pages** — edit `resources/markdown/{terms,privacy,returns,about}.md` (they ship as placeholders marked *REPLACE BEFORE TRADING*) and set your trading details in **Admin → Settings** (shown in the footer). 2. **Real email** — set `MAIL_MAILER` to a transactional provider ([Resend](https://resend.com) or Postmark are painless) and add SPF/DKIM DNS records for your sending domain, or confirmations land in spam. 3. **VAT** — if registered, flip it on in **Admin → Settings** (number + rate) and mark any zero-rated products on their edit screens. Prices are always VAT-inclusive. 4. **Error monitoring** — set `SENTRY_LARAVEL_DSN` (sentry-laravel is wired and silent until then). 5. **Backups** — schedule Coolify backups for the volumes (`/data` and `storage/app/public/`). One bad day without them is fatal. 6. **GoCardless live credentials** — swap `GOCARDLESS_ENVIRONMENT=live` with a live access token and a webhook endpoint secret pointing at `/webhooks/gocardless`. ## Digital products Tick **Digital product** on a product and attach a file: stock and shipping stop applying, checkout skips delivery, and paid orders auto-complete with signed 30-day download links in the confirmation email (25 fetches per line, then the customer needs fresh links from you). Files live on the private disk, never the public one — on Coolify, add a volume for `storage/app/private` so deliverables survive redeploys (alongside the `database/` and `storage/app/public` volumes). Selling digital B2C into the EU has place-of-supply VAT rules — read up before you do. ## Selling to AI agents Three surfaces, all optional and all over the same checkout actions: - **MCP** (`/mcp/shop`) — always on; agents browse, build baskets, and get a human pay link. - **ACP** — set `ACP_API_KEY` to enable the Agentic Commerce Protocol (ChatGPT shopping et al.): product feed at `/acp/feed`, checkout sessions at `/acp/checkout_sessions`. - **x402** — set `X402_ENABLED=true` + `X402_PAY_TO` (your wallet) and agents settle orders autonomously in USDC on Base, verified through a facilitator. Point it at **PayAI** (`X402_FACILITATOR_URL=https://facilitator.payai.network` + `PAY_AI_KEY`/`PAY_AI_SECRET`) for **free Base-mainnet settlement with no US entity** — or any x402 facilitator. Add a free `REOWN_PROJECT_ID` and the **same rail gives humans a "Pay with USDC" wallet button at checkout**. Set `X402_FX_RATE` for non-USD shops. ## Getting found by shopping agents - **Perplexity Merchant Program** — free, open to merchants shipping to the US: submit your catalogue feed (this shop serves one at `/acp/feed`) at perplexity.ai/shopping. No gateway requirement. - **x402 Bazaar / Agentic.Market** — your `agent.pay.x402` endpoint advertises itself in its own 402 response (Bazaar discovery metadata), and the x402 indexes catalogue it from settled payments — activity is the listing fee. (Coinbase's CDP facilitator needs a US entity; **PayAI** settles on Base mainnet for free with no such requirement — see *Selling to AI agents*.) - **ChatGPT shopping** — application-gated: apply at chatgpt.com/merchants, then serve them your ACP feed. - **Copilot / PayPal Agent Ready** — require Stripe or PayPal as the payment gateway; the `PaymentGateway` contract makes adding either a single driver class. - Watch **Google's Universal Commerce Protocol (UCP)** — the emerging open standard Shopify has adopted; an adapter here is likely worthwhile once the spec settles. ## AI support drafts (optional) Set `SUPPORT_DRAFTER=anthropic` + `ANTHROPIC_API_KEY` and every customer ticket message gets a suggested staff reply drafted from the customer's real order history (status, tracking, items) — one click to adopt, edit, send. Drafts never auto-send; a human always approves. ## Print-on-demand fulfilment (optional) Set `PRINTFUL_API_TOKEN` (+ `PRINTFUL_STORE_ID`) and put your Printful sync-variant id on each variant in the admin. Paid orders then push their print-on-demand items to Printful automatically, and Printful's shipment webhook (`/webhooks/printful?token=PRINTFUL_WEBHOOK_SECRET`) marks the order shipped with tracking. Leave `PRINTFUL_AUTO_CONFIRM=false` to review orders as drafts first. No token = manual fulfilment. ## Address type-ahead (optional) Set `ADDRESS_LOOKUP=google` and a server-side `GOOGLE_PLACES_API_KEY` (enable **Places API (New)** in Google Cloud — no referrer restrictions needed, the key never reaches the browser) and checkout + the address book gain a "Find your address" search. Leave it as `none` and the forms are plain manual entry. `fake` gives deterministic suggestions for local dev. Other providers (e.g. getAddress.io for UK PAF data) are one class implementing `AddressLookupProvider`. ## Commands you'll use | Command | What it does | | --- | --- | | `composer dev` | serve + queue + logs + vite | | `composer test` | pint check, larastan (level 7), pest | | `npm run types:check` | TypeScript | | `npm run build:ssr` | production client + SSR bundles | | `php artisan payments:expire-abandoned` | abandon stale pending payments (scheduled hourly) | ## Contributing Issues and PRs welcome. The whole suite gates on every change — run `composer test` (Pint, Larastan level 7, Pest) plus `npm run types:check`, `npm run lint:check`, `npm run format:check` and `npm run build:ssr` before opening a PR. CI runs the check-only variants on PHP 8.4 and 8.5. See [`CONTRIBUTING.md`](CONTRIBUTING.md) and [`docs/architecture.md`](docs/architecture.md). ## Credits Built by **[Stu Mason](https://ai.stumason.dev)** — Laravel & AI engineering. - 🌐 [stumason.dev](https://stumason.dev) - 🐙 [github.com/StuMason](https://github.com/StuMason) · [more about me](https://github.com/StuMason/StuMason) - 🛒 [Live demo](https://shop-template.stumason.dev) If this saved you time, a ⭐ on the repo is hugely appreciated. ## License [MIT](LICENSE) © [Stu Mason](https://stumason.dev)
Explore similar templates
Compare previews and descriptions within the same stack and category.

reyhan
Reyhan Commerce is a Laravel-based headless e-commerce backend framework distributed via Composer, offering an OpenAPI 3.1 contract, a Filament admin panel, a double-entry Ledger engine, and Redis-based inventory locking, with PSR-4 extensions.
Laravel · E-commerce

laravel-inertia-storefront
Laravel 13 + Inertia + React + Tailwind e-commerce starter for the Nepali market, with a customer storefront and admin panel, role/permission management, COD, eSewa, and Khalti sandbox payments, AI natural-language product search with a no-key fallback, POS, CSV import/export, and Telegram…
Laravel · Admin dashboard

Next.js Commerce
Vercel's officially maintained Next.js App Router ecommerce starter with deep Shopify integration, offering a complete product catalog, cart, and checkout flow. Core logic is modular for swapping backends, and community provider versions exist for BigCommerce, Medusa, and Saleor.
Next.js · E-commerce

astro-ecommerce
Astro Ecommerce is a Creative Tim e-commerce Astro starter template under the MIT license, with 70+ coded elements, 30+ blocks, and landing, product, and shopping cart example pages.
Astro · E-commerce

commerceplate
A free Shopify e-commerce starter template built with Next.js 16, Tailwind CSS 4, and TypeScript, using the Shopify Storefront API (GraphQL).
Next.js · E-commerce

ecommerce-template
A Next.js App Router ecommerce template built with TypeScript, Tailwind CSS, Radix UI, and TanStack Query.
Next.js · E-commerce
