Getting Started
Getting Started
Start here: environment setup, repo mechanics, and the rules that keep all three packages working together.
ProjectR is the loyalty and e-commerce platform behind THERAW, a Malaysian skincare and beauty brand (tipeer.com). Customers shop through a mobile app and earn loyalty rewards; staff operate everything through an admin dashboard. The whole platform runs against a single Shopify store.
The three packages
| Path | What it is | Deploys via |
|---|---|---|
apps/mobile | Expo SDK 58 customer app (routing, cart, checkout, loyalty) | EAS Build / EAS Update |
apps/dashboard | Next.js 16 (App Router) admin panel | Vercel, project root apps/dashboard |
packages/backend | Convex backend — single source of truth for schema and API types | bun run deploy:staging / deploy:prod |
The backend is the center of gravity: both apps import Convex types straight from backend source, so a schema change re-types both apps immediately (see The Type Contract).
What the platform does
- Loyalty: stamp-card campaigns earned on order subtotal, vouchers backed by real Shopify discount codes, and shake-to-win rewards at special stamp positions. Points and tiers were removed on 2026-10-16.
- Commerce: Shopify catalog mirroring, cart sync, checkout via Shopify Storefront API + native checkout sheet, order history.
- Content & marketing: home carousels, marketing campaigns, seasonal QR voucher campaigns ("Duit Raya"), product reviews with moderation, a beauty-profile quiz, and AI skin scan.
Read next
- Quick Start to get everything running locally.
- Environments before touching anything deploy-related.
- Architecture for the system-level picture.