Case Study · Doggo

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.

Role
Founding Product Designer
Stack
Claude Code, Next.js, TypeScript
Status
Pre-launch, in user validation
Year
2025 – 2026
My Role

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
The Thesis

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.

Deep Dive 01

A privacy model you can feel safe inside

The Problem

You 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 Solution

So 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.

A private profile as a stranger sees it: blurred content, a lock card saying the profile is private, and a + Familiar action with shared groups listed
A private profile, as a stranger sees it. No content, no request button.
The same kind of profile once Familiar is granted: full content visible, a Familiar control, and shared context
After Familiar: the profile opens, quietly.
A group walk's People tab: Connected with a message button, Familiar with a connect button, other attendees and private profiles with + Familiar
A walk's People tab: every tier, and exactly the actions it allows.
Deep Dive 02

One price. Both sides see the same number.

The Problem

Marketplaces 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 Solution

Providers 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 Matters

No bargaining, no information asymmetry, no awkwardness. The same number all the way through is a trust feature, not a billing feature.

The owner's booking sheet with a live weekly estimate computed as the schedule is picked
1 · The owner sees a live estimate while asking.
The provider's proposal form showing the system quote computed from configured pricing
2 · The provider gets the same number as a system quote.
The provider adjusting the quote, with a warning that the change will be flagged as a custom quote
3 · Overriding it warns: this will be flagged.
The owner's view of the proposal with a highlighted custom-quote callout and the provider's reason
4 · The owner sees the custom quote, flagged, with the reason.
Deep Dive 03

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.

The operator handover board: dogs to collect, out now, and back safe, with walker credential pills
The handover board fills itself in. For staff, the whole job is one tap.
The shelter's private reach dashboard: Community band with walkers, supporters and donors; Exposure band with views, clicks and shares
The reach dashboard: what Doggo adds, in two bands.
The shelter's Supporters tab: walkers, donors and sponsors in one list, newest first, never ranked
Supporters: recognition without a leaderboard.
The Build

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.

The Doggo /system dashboard overview, rendered from the project's docs at build time
The dashboard's front page, derived from the docs on every commit.
The active phase board rendered live on the dashboard, mid-build, with workstreams and open notes
The active board mid-flight: real work, not a prop.

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.

The same handover board screen in light and dark themes, side by side, identical in structure
The same screen, both themes. Token overrides only.

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.

Where It Stands

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.

Find your community
Build community, and a living
Help a shelter dog

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 demo

One 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.