Campaign platform for TrueBites — a Cuttack, Odisha-based Indian health food brand selling roasted makhanas and sattu drink.
Cafe visitors scan a QR code on their table, land on a mobile campaign page, claim a free sattu drink, leave feedback, and walk away with 30% off makhanas. The operator manages everything from a private admin dashboard.
| Route | Description |
|---|---|
/ |
Brand home page |
/c/[cafeId] |
Campaign flow — 5-step mobile experience triggered by QR scan |
/admin |
Password-protected admin dashboard |
/c/[cafeId])Each cafe partner gets a unique cafeId embedded in their QR code URL (e.g. /c/brew-co), enabling per-location analytics.
/admin)Password: truebites2026 (change before going live)
@tailwindcss/vite — no tailwind.config.js, CSS-first configAll tokens live in src/app.css under :root (for direct var(--tb-*) use) and @theme (for Tailwind utility classes).
| Token group | Prefix |
|---|---|
| Colors | --tb-terracotta, --tb-forest, --tb-turmeric, --tb-cream, --tb-ink, … |
| Typography | --tb-display (Instrument Serif), --tb-body (Plus Jakarta Sans), --tb-mono (JetBrains Mono) |
| Radii | --tb-r-sm/md/lg/xl/pill |
| Shadows | --tb-shadow-sm/md/lg/card |
Component classes: .tb-btn, .tb-btn-primary/accent/secondary/whatsapp, .tb-input, .tb-chip, .tb-badge, .tb-card, .tb-grain
npm install
npm run dev
npm run build # production build
npm run preview # preview production build
src/
├── app.css # design tokens + all component styles
├── app.html
├── lib/
│ ├── components/
│ │ ├── BigChoice.svelte # yes / maybe / no large tap targets
│ │ ├── ChipGroup.svelte # single + multi-select pill chips
│ │ ├── QRBlock.svelte # deterministic QR code renderer
│ │ ├── StarRating.svelte # interactive + read-only stars
│ │ ├── StepProgress.svelte # step n of m bar
│ │ └── TBLogo.svelte # wordmark with leaf mark
│ └── icons.ts # SVG icon strings
└── routes/
├── +layout.svelte
├── +page.svelte # brand home page
├── c/[cafeId]/+page.svelte # campaign flow
└── admin/+page.svelte # admin dashboard
admin/+page.svelte)919876543210 with the real number across all pagesfavicon.png to static/@sveltejs/adapter-node, Vercel, Cloudflare, etc.)Built by Ayush Jhunjhunwala