This monorepo contains:
- A product web app for operating loyalty, referrals, feedback, campaigns, and cashier workflows
- A marketing landing site
- Shared packages for database access, UI components, and transactional emails
From the product and domain model structure, this platform is designed to help businesses:
- Run flexible loyalty programs (cashback, tier-based, amount-spent points, visit-based points)
- Manage referrals with separate new-customer and existing-customer incentives
- Collect feedback, route negative alerts, and request public reviews
- Launch targeted campaigns with rewards and scheduling
- Operate cashier and billing flows with wallet/transaction tracking
- Connect Shopify stores and handle order-based loyalty (including return-window locks)
- Orchestrate customer messaging across WhatsApp, email, and SMS
apps/
web- Main product app (Next.js)landing- Marketing website (Next.js)
packages/
prisma(@reelo/db) - Prisma schema, migrations, and generated clientui(@reelo/ui) - Shared UI component librarytransactional(@reelo/transactional) - Transactional email templateseslint-config,typescript-config- Shared tooling configs
- Next.js 16 + React 19
- Prisma + PostgreSQL
- Redis (optional but supported in local setup)
- Turbo + pnpm workspaces
- Node.js
>=22 pnpm(workspace usespnpm@10)- Docker (for local Postgres/Redis)
pnpm installCreate local env files from examples:
cp apps/web/.env.example apps/web/.env
cp packages/prisma/.env.example packages/prisma/.envNotes:
- Local Postgres runs on port
5433viadocker-compose.yml - Update API keys/secrets in
apps/web/.envas needed
pnpm db:startpnpm --filter=@reelo/db db:generate
pnpm --filter=@reelo/db db:migrateRun everything via Turbo:
pnpm devOr run specific apps:
pnpm --filter web dev
pnpm --filter landing devpnpm dev- Start workspace dev pipelinespnpm build- Build all packages/appspnpm lint- Lint all workspacespnpm format- Prettier writepnpm db:start/pnpm db:stop- Start/stop local Postgres + Redis
The data model indicates a business-centric product:
- Business, admin, cashier, and customer roles
- Bills, wallets, and typed transactions (
EARNED,REDEEMED, etc.) - Loyalty + reward stages + expiry/reminder messaging
- Referral logs and reward unlocking rules
- Feedback links per bill and structured feedback responses
- Campaign lifecycle (draft/active/expired) and reward logic
- Shopify store, order sync, and return-window-aware loyalty unlock
- See
apps/landingfor marketing positioning and feature framing. - See
packages/prisma/prismafor the source-of-truth domain model.




