Pawdiary: from one groomer’s diary to a booking app anyone can use
September 28, 2026
A week ago I built a booking system for one person. Charlotte runs Turner & Pooch, a dog and cat grooming salon in St Helens, and her diary lived across WhatsApp, a paper book and her memory. So I built her an app: calendar, clients, pets, groom notes with before-and-after photos, terms signed on her phone, payment links and a Today screen that tells her what needs doing.
About four days in, it was obvious that nothing in it was specific to her. Every groomer has the same problems: regulars who forget to rebook, no-shows, and a diary with holes in it. So the app became Pawdiary, a booking app any groomer can sign up to, and Turner & Pooch became business number one.
One app, many businesses
Going from one user to many is mostly a data problem. Every table got an org_id column, and Postgres row-level security decides which rows a signed-in user can see. The rules live in the database, not the front end, so a bug in a Vue component can’t show one groomer another groomer’s clients.
Separate rows aren’t enough on their own, because rows point at each other. A booking points at a client and a pet, and nothing stops a booking in one business pointing at a pet in another. A trigger now checks that every link stays inside one business, and a set of pgTAP tests signs in as users from different businesses and tries to read and write each other’s data. They need to keep failing to do so.
Everything else a product needs
Multi-tenancy was the interesting part. The rest was the list of things nobody thinks about until they have strangers using their software:
- Sign-up, onboarding, staff invites and a CSV import so groomers can bring their clients over from an old system.
- Plans and billing through Stripe Billing: a 14-day trial of everything, then Free (up to 20 pets), Pro or Plus.
- Stripe Connect and Google Calendar per business, so each groomer’s money and diary stay their own.
- Terms, privacy notice and a data processing agreement, plus export and delete for a whole business.
- A platform admin area with an audit log, so I can help a business without poking at the database.
Charlotte’s old address, book.turnerandpoochnw.co.uk, now redirects to app.pawdiary.co.uk, and her day-to-day hasn’t changed. Pawdiary is live at pawdiary.co.uk.