All work

PWA · Mobile-First · Real-Time

miztips

Tips, split fairly — a calculator a NYC restaurant runs every night.

Solo · design & engineering· 2026· Live · Private · miztips.vercel.app Code
miztips tip calculator — total tips for a lunch shift entered up top, split across the serving staff, with a Calculate button and a bottom tab bar.
Pooled tips, split fairly across the shift — installable, touch-first, trusted with real money. Staff names redacted.
01

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.

02

What’s under the hood

01

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.

02

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.

03

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.

04

Shift tracking & staff management

All-day / lunch / dinner tagging (halves count as half-days), plus add, edit and “graduate trainee” flows guarded by confirmations.

05

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.

03

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.