How it works

One install, one family,
no servers in between.

Pawprint is a Progressive Web App that lives on each family member's phone. Devices in the same family sync directly with each other โ€” no central database, no cloud accounting, no per-family run cost. The family holds the encryption key; the storage backend never sees the data unencrypted.

Step 1 ยท Install

Open Pawprint in your browser.

Add to home screen on iOS Safari (Share โ†’ Add to Home Screen) or Android Chrome (menu โ†’ Install). Pawprint becomes a real app icon โ€” full-screen, offline-cached, no app-store gatekeeper.

First device creates a new family workspace. The app generates a fresh family ID and a symmetric encryption key, both stored locally on that device.

Step 2 ยท Pair the family

Scan a QR code. That's it.

The first device shows an "Add family device" screen with a QR code that encodes the family ID and key.

The second device โ€” phone B โ€” scans it. Phone B's Pawprint reads the QR, stores the same key, and joins the family.

From that moment, both devices encrypted-sync their local stores. New devices get added the same way: scan from any already-paired family device.

Removing a device (a babysitter who's no longer welcome, a co-parent splitting away) = a parent rotates the family key on remaining devices. The departed device's key becomes useless.

What the QR code carries

family_id: f-7b3a2c91
key: (symmetric AES-256 key)
added_role: caregiver
scope_until: 2026-08-01T22:00Z

That last field is what makes a babysitter pairing different from a co-parent pairing. Caregivers get scoped time windows. Co-parents don't.

Step 3 ยท Sync

Encrypted-blob exchange. The cloud sees ciphertext.

Each state change (chore submitted, chore approved, calendar event added) is written to the local store first โ€” instant, offline-tolerant. Then it gets serialized, encrypted with the family key, and pushed to a blob-storage backend.

Other family devices poll, pull the blob, decrypt with their copy of the family key, and merge into their local store using CRDT semantics โ€” last-writer-wins for non-monetary changes, with explicit conflict-resolution UI for chore approvals where it matters.

The storage backend never sees the family's data unencrypted. Any opaque storage works: Supabase as a dumb bucket, Firebase, S3, even iCloud Drive in a future version. The architecture treats storage as interchangeable plumbing.

What happens when the cloud goes down

Each device keeps working against its local store. Chores get submitted, approved, marked done. Allowance balances update. The next time the cloud is reachable, all the queued blobs sync. The family is never blocked by the storage backend.

Roles ยท who can do what

Worker-tier-first. Kids in the practice seat.

Pawprint inherits CHERP's role hierarchy, mapped to the family. Kids interact with the system but cannot edit the rules โ€” same envelope a grown-up has when someone hands them a real responsibility.

SurfaceKidParent / Co-parentCaregiverGuardian admin
Mark chores done โœ“โœ“โœ“ (in scope)โœ“
Approve / reject submissions โ€”โœ“โœ“ (in scope)โœ“
Add / edit chores + values โ€”โœ“โ€”โœ“
Add calendar events โ€”โœ“โœ“ (in scope)โœ“
Mark calendar events attended โœ“โœ“โœ“โœ“
Adjust allowance rates / split โ€”โœ“ (mutual approval to loosen)โ€”โœ“
Set / edit own goals propose onlyapprove / editโ€”โœ“
Add / remove caregivers โ€”โœ“โ€”โœ“
Rotate family key โ€”โ€”โ€”โœ“
Family-mode sub-variants

One installed app. Six family shapes.

A settings toggle inside Pawprint switches between sub-modes. Each sub-mode adjusts default rules, role assignments, and the visible feature set.

Solo Parent

Single guardian-admin. Optional caregiver federation for grandparents / babysitters.

Co-Parent

Two equal guardian-admins. Mutual-approval to loosen rules; either parent can tighten unilaterally. Custody-schedule overlay.

Multi-Generation

Three+ generations under one roof. Multiple guardian-admins. Per-generation default thresholds.

Special Needs

Sensory-friendly programming flagged separately. Medication interaction lookups. IEP / 504 tracker.

Foster / Adoption

Audit log surface for caseworker review. Court-document tracker. Trauma-informed default thresholds.

Religious

Optional denominational threshold packs distributed by partner organizations.

Want to see it run?

The demo runs the chore + allowance + goal flows against your browser's localStorage. Toggle the role switch to see how the kid and parent surfaces differ.

Open the app โ†’