PWA · Mobile-First · Real-Time
miztips
Tips, split fairly — a calculator a NYC restaurant runs every night.

The product
miztips is a tip-distribution PWA used every shift at a NYC restaurant. It splits pooled tips across roles by weighted percentages, tracks shifts, exports branded PDFs, and syncs in real time with an offline fallback — installable, touch-first, and built to be trusted with people’s pay.
It’s small on the surface and serious underneath: when a tool decides what people take home, “mostly right” isn’t good enough.
What’s under the hood
Role-based weighted distribution
Each share is computed from summed percentage weights, floored to whole cents, grouped and role-sorted — and any un-distributed remainder is surfaced as its own line instead of being silently absorbed. Trainee rates and special-case overrides are handled explicitly.
Real-time sync, offline-safe
Firestore onSnapshot live updates with multi-tab offline persistence; it degrades to localStorage and never wipes the local backup on an empty snapshot — so a flaky restaurant Wi-Fi never loses a shift.
Branded PDF export
Lazy-loaded jsPDF + autotable generate landscape weekly grids and per-employee summaries, shared via the Web Share API with a download fallback.
Shift tracking & staff management
All-day / lunch / dinner tagging (halves count as half-days), plus add, edit and “graduate trainee” flows guarded by confirmations.
Production-hardened
An error boundary, password rate-limiting, a strict CSP, backward-compatible data migration, and an automated weekly email via a Vercel cron + EmailJS — the unglamorous details that keep a real tool trustworthy.
Why it matters
Most portfolios are full of demos. This one is in daily use by people who depend on it being right — a reminder that the highest bar isn’t novelty, it’s trust. It’s also fully mobile-first: locked viewport, 44px touch targets, safe-area insets, reduced-motion support, even a startup chime.