v1.0 Next.js 16 · React 19 · MongoDB · TypeScript

Turn your catalog into orders on WhatsApp.

ChatCart is a self-hosted storefront whose checkout is a pre-filled WhatsApp message. Customers browse, build a cart, and tap Order on WhatsApp. You get the full order in your chat and in your admin. No payment gateway, no transaction fees.

Try the admin Documentation
  • No WhatsApp API needed
  • Guest checkout
  • No activation server
  • 3 modesStore · QR Menu · Link in Bio
  • 7 languagesIncluding Arabic with full RTL
  • Multi-storeCustom domains or /s/your-store
  • 15 admin areasCatalog, orders, coupons, reports…
Live demo

Explore every corner, no sign-up.

The demo runs the exact code you download, seeded with two stores. Pick a starting point below; each one opens in a new tab.

Storefront: Bloom Boutique

Store mode

A full fashion shop: home page built from sections, filters and search, product variants, reviews, wishlist, coupons, and the WhatsApp checkout.

Coupons
WELCOME10 · SAVE5 · FREESHIP

Admin console

Owner role · all stores

Dashboard, products with CSV import, orders with status flow and printable invoices, coupons, reviews, reports, appearance, and the WhatsApp template editor.

Password
ChangeMe123!

QR menu: Aroma Café

QR Menu mode · second store

A second store on the same install: a café menu with pickup and dine-in instead of delivery. Pick something, then choose Dine-in at checkout to tag the order with a table number, exactly as a scanned QR code does.

Customer account

Optional per store

Order history, saved addresses, and a one-tap reorder that re-opens WhatsApp. Accounts are optional, because guest checkout always works.

Password
Password123!
  • Checkout opens WhatsApp with the order pre-filled to a placeholder number. Nothing is charged and you don’t need to press send. The order is already saved in the admin.
  • The demo is shared and resets regularly, so changes you make may disappear. Product photos are random placeholders and are not included in the download.
  • To see Arabic and RTL, use the language switcher in the storefront header.
How it works

From browse to chat in three taps.

Customers browse your catalog

A fast, mobile-first storefront with categories, search, filters, variants, and a cart drawer. Installable as a PWA.

They tap “Order on WhatsApp”

The server recomputes every price, saves the order, and opens WhatsApp with a tidy message built from your template.

You confirm and fulfill

Reply in the chat, then move the order through Pending → Confirmed → Preparing → Completed in the admin. Print an invoice if you need one.

Three storefront modes

One install, three ways to sell.

Every store picks its own mode in the admin. Switch whenever you like.

Store

The full shop experience for retail catalogs.

  • Home page section builder
  • Filters, sorting, search
  • Reviews, wishlist, blog

QR Menu

Dine-in ordering for cafés and restaurants.

  • Table number from the QR link
  • Dine-in, pickup, or delivery
  • Menu-style browsing

Link in Bio

A compact mobile menu for social sellers.

  • One link for Instagram or TikTok
  • Thumb-friendly product list
  • Same WhatsApp checkout
Screens

Polished on both sides of the counter.

/admin
Admin dashboard with today's orders and revenue, a 7-day orders chart, orders by status, recent orders, and top products
/admin/orders
Orders table with search, status filter, CSV export, and colored status badges
Orders with status flow and CSV export
/admin/reports
Reports page with revenue, orders, average order value, conversion, and a revenue-by-day chart
Sales reports with date ranges
/admin/appearance
Appearance page with brand color and corner radius controls, logo and favicon uploads, and home page section toggles
Brand color, logo, and home page sections
/admin/settings
Settings page with store name, WhatsApp number, currency, supported languages, SEO, and analytics fields
Per-store settings, languages, and SEO
Features

Everything a chat-first shop actually needs.

Templated WhatsApp orders

Edit the order message with token chips and a live preview. Empty lines collapse and long messages are length-guarded.

Home page section builder

Hero, featured, categories, banners, new arrivals, deals, testimonials, newsletter, rich text, and blog. Toggle and reorder them.

Inventory

Stock tracking, low-stock thresholds, backorders, and automatic sold-out badges.

Coupons

Percent, fixed, and free-shipping codes with minimums, usage limits, date ranges, and category or product scopes.

Flexible fulfillment

Delivery with a flat fee, free-delivery threshold, and per-zone fees, plus pickup and dine-in.

Reviews & accounts

Star ratings with a moderation queue or auto-approve, and optional customer accounts with order history.

Multi-store

Run several stores from one install, each with its own domain, theme, currency, languages, and message template.

7 languages + RTL

English, Arabic, Spanish, French, Bengali, Hindi, and Portuguese out of the box.

Multi-currency display

A currency switcher with rates you manage. Orders are always placed in the store currency.

Roles & permissions

Owner, manager, and staff roles. Scope managers and staff to specific stores.

Reports & CSV

Sales by period and top products, with CSV export for orders, products, reports, and subscribers.

SEO, analytics & PWA

Per-store meta title and share image, sitemap, product JSON-LD, optional GA / Meta Pixel, a web app manifest, and an offline shell.

Under the hood

A modern stack you’ll enjoy extending.

Strict TypeScript, server-validated inputs, and a clean data layer. Unit tests and a Playwright smoke test are included.

  • Next.js 16 (App Router)
  • React 19
  • TypeScript
  • MongoDB + Mongoose
  • Tailwind CSS v4
  • Radix UI
  • next-intl
  • Zod
  • Zustand
  • Vitest + Playwright
  • Full source code: storefront, admin, and API in one repo
  • One-command demo data: npm run seed
  • Deploy to a VPS with PM2, or to Vercel
  • Requires only Node.js 20+ and a MongoDB database
  • HTML documentation, configuration reference, and changelog
  • No license activation, no phone-home
FAQ

Questions, answered.

Do I need the WhatsApp Business API?

No. ChatCart uses standard wa.me click-to-chat links, so it works with any regular WhatsApp or WhatsApp Business number. There is nothing to apply for and no per-message cost.

How do customers pay?

However you already take payment: cash on delivery, bank transfer, or a payment link you send in the chat. ChatCart does not include a payment gateway, which is why there are no transaction fees and no merchant account to set up.

What if a customer never presses send in WhatsApp?

The order is saved in your admin as Pending before WhatsApp opens, including the customer’s contact details, so you can follow up. The confirmation page also lets the customer re-open WhatsApp or copy the message.

What do I need to host it?

Node.js 20 or newer and a MongoDB database (a free Atlas cluster works). A small VPS with PM2 and Nginx is the recommended setup; Vercel works too, with the caveat that uploaded images need persistent storage. Shared PHP hosting will not run it.

Can I run more than one store?

Yes. Create as many stores as you like in the admin. Each store resolves by custom domain or at /s/your-store, with its own mode, theme, currency, languages, fulfillment rules, and message template.

Are the demo images included?

No. The demo seed references placeholder photos from Lorem Picsum so you can see the layout with content. Replace them with your own product photography.

Is there a license check or activation?

No. There is no activation server and the app never phones home. You can store your purchase code as a note for your own records.

See it take an order, right now.

Add something to the cart, check out, and watch the WhatsApp message write itself.

Read the docs