← All projects
Compliance · Build

Pawperwork

The paperwork layer for pet care businesses: groomers, boarders, daycares, and walkers. One branded intake link per business; pet owners submit profiles, upload vaccination records, and e-sign waivers from their phone.

Why it exists: Pet care businesses lose bookings to clipboard friction and expired vax cards, and one unvaccinated dog in a daycare is a liability problem, not an inconvenience.

Next.js 16Prisma 7 + PostgresClerkResendreact-pdfVercel Cron

What it does

A business gets a public intake link. Clients fill out pet profiles, upload vaccination records, and e-sign waivers. The dashboard surfaces every pet missing a required vaccination, expiring soon, or already expired, and a daily cron sends reminder emails on top of it. No booking, no payments, no POS: paperwork only, on purpose.

A few details I cared about

Vaccination status is derived, never stored: computed from the expiry date on every read, so it can never drift out of sync with reality.

Reminder windows are disjoint (15–30 / 8–14 / 0–7 days, then expired), so a single cron run fires at most one reminder per record. No duplicate nagging.

Waivers are versioned. Every signature pins the exact version and a SHA-256 hash of what was signed, so terms can never be rewritten underneath someone.