Designing a trust system for dog owners, trainers, and shelters
Dog care apps start with booking a stranger. Doggo starts with community: group walks and local circles where trust grows first, so care comes from someone your dog already knows. Good for owners, good for dogs, and the same engine gets shelter dogs walked, seen, and adopted.
I was the product team: strategy, design, specs, and code.
I defined the trust model, the service marketplace, and the shelter program, and wrote the strategy and specs into a living documentation system that governs the build.
Then I built it, in production-grade code, with Claude Code as the build partner.
From first concept to a demo world rich enough to test, now carrying validation interviews with owners, trainers, and shelters in Prague.
- 4 monthsof build
- 700+commits
- 75+routes
- 180+components
- 400+design tokens
- 3guided demo journeys
Community first. Care second. In that order.
Dogs want friends. So do their people.
Doggo makes both easy to find: a park meetup, a neighbourhood group, a trainer's free public walk. Showing up builds familiarity. Familiarity becomes trust. And trust means care from someone your dog already knows.
The health case sits underneath: under-socialized dogs develop the behaviour problems that get dogs surrendered. Community isn't a nice-to-have. It's preventive care.
So the product is built as three worlds: owners, trainer-walkers, and shelters. Each is a fleshed-out, drivable demo, rich enough to test the thesis with the real audience it serves. That validation is running in Prague now.
Prague already has booking marketplaces and dog social apps. The white space is the whole funnel in one product.
A privacy model you can feel safe inside
The ProblemYou want to meet the dog people around you. You don't want to be exposed to all of them. In a neighbourhood app, being seen is the scary part: a public profile shows too much, and a friend request announces itself.
The SolutionSo your profile starts private. Strangers can't see your content, and they can't even send you a request. Marking someone Familiar is what opens the door. It's one-sided and silent: they can now see your profile and message you, and they're never told anything happened. Met a whole walk of good people? Mark them all in one pass. Promoting your services? Set your profile to public and let anyone find you.
Underneath sits a principle the spec calls deniability about the cause: several different actions all produce the same visible effect, so the person on the receiving end can never infer that you specifically chose them.
UI surfaces never explain why a row was promoted. Multiple actions converge on the same effect, so intent stays private.Why It Matters
Paid care gates on Connected. The gradient is what lets a private person participate on day one and end up booking a neighbour they trust by week three.



One price. Both sides see the same number.
The ProblemMarketplaces breed quote games. Providers size up clients, owners fear being overcharged, and chat threads turn into negotiations that poison the relationship before it starts.
The SolutionProviders configure their pricing once. A single quote engine computes the price, and the same engine output renders at every surface: the owner's live estimate, the inquiry, the proposal. If a provider overrides the number, the owner sees it visibly flagged as a custom quote, with the reason.
Why It MattersNo bargaining, no information asymmetry, no awkwardness. The same number all the way through is a trust feature, not a billing feature.




Designing for an institution that doesn't want another platform
Shelters are time-poor, risk-averse, and allergic to another site to manage. The shelter side of Doggo was designed backwards from that reality.
Vouching instead of vetting
A trusted volunteer takes a newcomer on a paid, supervised first walk. After enough good walks, the mentor's vouch substitutes for the shelter's own months-long intake assessment. The shelter keeps every veto, all the way up.
A custody trail that asks nothing
The handover board fills itself in as walkers check dogs out and back. Every dog out, due back, and back safe, on one screen. For staff, the whole job is one tap.
Helping, not replacing
The shelter's page carries its own website, socials, and donation channels. Walkers write the posts, so the shelter never runs a social account. A private reach dashboard shows what Doggo adds: views of their dogs, and clicks through to their own site.
Give-back without a scoreboard
Sponsorships and donations are shown, newest first, never ranked, with an opt-out to give anonymously. Recognition without a leaderboard.



A system you can visit
The product was built solo, with Claude Code as the build partner and a governance system doing what a team normally does: catching drift, forcing review, keeping specs honest. Rules live in one playbook. Work happens in scoped phases, and every phase closes in a walkthrough review where designs get challenged, sometimes reversed, always logged. 82 closed phases sit on the record.
The decision logs are timestamped. This page doesn't reconstruct my reasoning after the fact. It is the record.
A playbook with scars
Hard rules written from real mistakes. One design token got minted without approval, once. The rule that bans it names the incident.
Three trackers, zero archives
A punch list, an open-questions log, and a future-considerations file. Items move or get resolved. Nothing rots.
The workshop grew a front door
Halfway through, the documentation system got its own product: a 24-page dashboard rendered from the docs on every commit. The board, the trackers, the decisions log, the strategy shelf: all of it browsable, all of it live. It exists because a real user needed it: copies kept going stale in Notion, and the founder deserved a live view of the work. Now every push redeploys the truth.
Derived, never authored. To change a page, change its source doc. If the surface ever disagrees with the docs, the docs win.
The surface even alarms on its own drift: build-time invariants check every parser's promised shape, and an amber band names the broken contract when one fails. Alarms catch shape drift; a right-shaped wrong parse still needs human eyes. The day the alarms shipped, exactly such a bug was on screen with every check green.


One system, down to the tokens
Every colour in the app routes through semantic tokens: blue is paid care, green is community, violet is the volunteer lane. People render as circles; dogs as rounded squares. Dark mode shipped as the proof the system holds: 118 token overrides, zero component rewrites.

None of this is a case-study prop. It's how the project runs day to day, and it ships with the demo: ask to drive the product, and you get the workshop too.
Pre-launch, and honestly so
Doggo hasn't launched. There are no user counts to show, and this page won't invent any. What exists: a demo world rich enough that testers forget it's a prototype, three guided walkthrough journeys built as interview instruments, and a validation program running in Prague. Owner interviews are done and promising. Trainer and shelter interviews are in progress.
Doggo is built with founder Alyssa Parkhurst, who leads the vision and runs validation on the ground in Prague. The interviews use a feasibility kit with the read-the-signal criteria decided before the conversations, so a yes can't be rationalized after the fact.
These clips are the short version. The real thing is better: three full guided journeys, a demo world to explore freely, and the knowledge system that governs the build.
Ask to drive the demoOne email gets you the password and the full walkthrough videos. Want the guided tour instead? Say so and I'll drive you through it live.