Skip to content
keylorpinedaPublic

About

Multi-tenant online catalog: customers build an order on the web and send it to the store via WhatsApp. Transfer payments with receipts, delivery zones, business hours, per-store branding and localization.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

264 Commits

Folders and files

Repository files navigation

Booth: your online catalog, orders through WhatsApp

CI React 19 NestJS 12 PostgreSQL with Prisma 7 MIT license

Small businesses already sell through WhatsApp, but every order is a chat: prices typed by hand, totals added up on a calculator, transfer screenshots checked one by one. Booth gives each store one link with its catalog, turns the cart into a clean WhatsApp message, and keeps the order, the payment and its status in one place.

Try it

Open the demo store Try the owner dashboard

Dashboard: panaderia@demo.booth.app · Demo1234! (read-only)
The free API sleeps when idle: the first visit can take up to a minute.

How it works

Catalog, WhatsApp, receipt, ready
  1. Catalog. Shoppers open the store link: no app to install, no account to create.
  2. WhatsApp. The order is saved as pending with its stock reserved, then WhatsApp opens with the full message and a private tracking link.
  3. Receipt. For bank transfers the shopper uploads the receipt. Gemini reads the amount and the recipient and tells the owner whether it looks right; the owner confirms the payment.
  4. Ready. The owner moves the order along from the dashboard and the shopper follows it live.

Screenshots

Storefront Checkout
Storefront Checkout
Order tracking Owner dashboard
Order tracking Orders dashboard

Features

  • Stores: brand color, logo and cover, opening hours, delivery zones, subdomains and custom domains.
  • Payments: presets per country (SINPE Móvil, SPEI, Pix, Nequi, Yape, Zelle, Bizum and more) or cash.
  • Orders: server-computed totals, atomic stock reservation, automatic expiry that releases stock.
  • Team: owner, staff and catalog manager roles; read-only demo accounts.
  • Languages and money: Spanish and English, every currency in integer minor units.

Architecture

Browser, Vercel, Render, Neon, Cloudinary, Gemini
Workspace Stack
apps/web React 19, Vite, Tailwind 4, TanStack Query, Motion
apps/api NestJS 12, Prisma 7, PostgreSQL
packages/shared Zod contracts and money helpers used by both apps

Every owner query is scoped to the store in the signed-in user's token, and each owner endpoint has a test proving one store cannot read or change another.

Run it locally

Requires Node 24, pnpm and Docker.

pnpm install
cp apps/api/.env.example apps/api/.env
pnpm db:up
pnpm --filter api prisma:migrate
pnpm --filter api db:seed
pnpm dev

Web on http://localhost:5173, API on http://localhost:3000 (docs at /api/docs).

The seed creates two demo stores, /s/panaderia-demo and /s/cafe-demo. Their owners (panaderia@demo.booth.app, cafe@demo.booth.app, password Demo1234!) are read-only.

pnpm lint && pnpm typecheck && pnpm test   # all workspaces
pnpm test:e2e                              # Playwright, desktop and 360 px mobile

Docs

Architecture · Data model · API · Deployment · Roadmap · Devlog

License

MIT

About

Multi-tenant online catalog: customers build an order on the web and send it to the store via WhatsApp. Transfer payments with receipts, delivery zones, business hours, per-store branding and localization.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages