Demo Mode
Version: 1.0.1
Route: Standalone app in demo-mode/ (same UI routes as production)
Who can access: Anyone running the demo locally; login still required
![]()
![]()
What Demo Mode is
An offline clone of the courier dashboard. Data lives in browser localStorage (per logged-in user). No Supabase, no courier APIs — tracking responses are mocked.
| Production | Demo Mode |
|---|---|
| Supabase PostgreSQL | localStorage |
API routes /api/* | Client services (API returns 404) |
| Real tracking APIs | Mock tracking |
| JWT cookie session | localStorage session |
Steps — start Demo Mode
cd demo-modenpm installnpm run dev- Open the printed URL (often
http://localhost:3000or3001if busy). - Sign in with a demo account card or the form.
No .env is required. Deploy Demo Mode as a separate host project (do not fold it into the main product build).
Demo accounts
Account cards on /login one-click sign-in:
| Role | Password | Access | |
|---|---|---|---|
| Admin | admin@admin.com | admin123 | All pages + Users and Access + branding |
| Editor | editor@demo.com | demo123 | Dashboard, COD, Complaints, Customer Response, Courier Setup |
Each user gets a separate sandbox.
Seed data (first login)
| Data | Detail |
|---|---|
| Couriers | TCS, CallCourier, M&P |
| Shipments | Mixed professional sample statuses |
| Complaints | Sample rows dated today (COD red-row demos) |
| Customer responses | Sample rows dated today (color demos) |
| Business name | Trends WD (Demo) |
If stats are zero: confirm login → clear site localStorage → sign in again.
Screenshots for docs
Playwright captures for this pack live under images/ (01-login.png … mobile shots). To refresh:
cd demo-mode
npm run dev
# other terminal:
npm run screenshots
# or: node capture-docs.js
PNGs are written to Documentation/images/ (and mirrored under demo-mode/screenshots/).
Errors & edge cases
| Situation | Notes |
|---|---|
| Port already in use | Next picks another port — set DOCS_URL for screenshots |
/api/* | Disabled in Demo |
| Production vs Demo folders | Run the correct package.json; keep demo-mode/ excluded from root build |