GroviaDocs

Overview

What Grovia is, what ships in the box, and how the three apps fit together.

Grovia is a production-grade fresh-market e-commerce platform: a customer storefront, an operations dashboard with a seller portal, and a REST API, in one Turborepo + pnpm workspace. It is sold as source code — $99.99, one time, on [Buy Me a Coffee](https://buymeacoffee.com/reactbd/e/579772) — and you own and host what you build with it.

Grovia storefront and admin dashboard
The storefront and the dashboard, both reading from the same API.
AppWhat it isStackPort
apps/webCustomer storefrontNext.js 16 · React 19 · Tailwind v4 · Zustand3000
apps/adminOperations dashboard + seller portalNext.js 16 · React 19 · Tailwind v43001
apps/apiREST API + background workerExpress 5 · Mongoose 9 · Stripe · ImageKit/Cloudinary · Swagger8000

How the pieces talk

Both frontends read from MongoDB through the API — no Next app touches the database directly. The storefront fetches through a single src/lib/api.ts; the dashboard through src/lib/api-client.ts. Authentication is live in all three apps: the API issues a JWT, each Next app stores it in an httpOnly cookie and forwards it server-side.

Images live on your own ImageKit or Cloudinary account under a grovia/ folder tree; MongoDB stores the CDN URLs, never local paths. The package includes a demo store — 55 products, 35 categories, 3 shops, 16 journal posts, the home page, coupons and 244 images — that pnpm run seed uploads to your CDN and loads into your database.

Design

Light theme only. A small set of semantic colour tokens in one globals.css per app drive every component; the palette is the *Enchanted Garden* set — cream, mist, lime, leaf, canopy, soil. Type is TikTok Sans for display and Public Sans for body. UI primitives follow the shadcn/ui pattern, restyled onto those tokens.

Engineering standards

  • Strict TypeScript, zero `any` in every app — enforced by ESLint.
  • Server Components by default; "use client" only where there is state or events.
  • Every write endpoint chains protect, a role gate, and preventReadOnlyActions.
  • Money is computed in integer cents on the server; client prices are ignored.
  • One .env at the repo root for all apps, every key commented.
Read this firstFollow Quick start to get a working store locally in about ten minutes, then Configuration to connect your own Stripe, sign-in and email accounts.
Buy GroviaFull source code$99.99