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.

The target was never a clickable prototype. It was a demo world complete enough to drive: characters with histories, dogs with care needs, walks that already happened.

I defined the trust model, the service marketplace, and the shelter program, designed every surface, and wrote the strategy and specs into a living documentation system that governs the build.

There was no handoff. The spec, the design, and the code moved in one loop, so decisions got tested the day they were made.

  • 4 monthsof build
  • 3guided demo journeys
  • 7demo personas
  • 75+routes
  • 180+components
  • 300+design tokens
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.

Under it sits a health case: 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, built to test the thesis with the real audience it serves. Prague already has booking marketplaces and dog social apps. Nobody runs 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, but not everyone wants to be seen the same amount. For plenty of people, being visible in a neighbourhood app is the scary part: a public profile feels like too much, and a friend request announces itself. For a trainer, being visible is the whole point. One switch can't serve both.

The Solution

Your profile starts private. To a stranger it's a locked card: no posts, no dogs, no way in.

Familiar is the first step, and it's one-sided and silent. You open your profile to someone, and they're never told you did it. Only if they mark you back does the option to connect appear, for either of you.

That silence only works because the same thing happens three ways: some people set their profile public, some mark everyone from a walk in one go, and some pick one person. The result is identical, so being seen never means being singled out.

And public is a choice, not a lapse. A trainer building a client base opens their profile on day one, because being found is the point. The same model holds the person easing into the neighbourhood and the person promoting to it.

Connecting is mutual: a request arrives, you accept or decline, and accepting is what opens the chat. Paid care sits behind that, so you can book from someone you've actually met. The ladder shapes discovery too, ranking those people above the open marketplace.

Private, Familiar, Connected. Three states, because trust isn't a switch.
A locked profile: a lock card explaining the profile is private, the shared groups you have in common, and a single quiet Familiar action
A locked profile. Shared groups show, content doesn't, and the only action is a silent Familiar.
A carer's public profile showing the Familiar control marked, alongside shared groups and meets
Marking someone Familiar opens your profile to them, not theirs to you. They are never told.
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.
The Discover care list split in two: Carers in your circle at the top, one Connected and one Familiar, then Other carers below
Discover ranks your circle first. The open marketplace waits below.
Deep Dive 02

The free walk is the business.

The Problem

A community platform is only worth opening if something's happening on it: walks, groups, people showing up. But hosting all of that is unpaid work. It's the cold-start trap: you need activity before anyone joins, and nobody's paid to create it.

The Solution

So the people who host aren't volunteers, they're building their livelihood. A trainer runs a free public walk. It costs them time they'd spend walking anyway, and it's the one place owners can watch how they actually handle a nervous dog, trust earned in the open rather than claimed on a profile. Watchers become clients. Growing the community and growing their business are the same motion.

A trainer's group page on desktop: a community walk in the park with the trainer's card beneath it, the description laddering from the free community walk up to paid small-group and 1-on-1 training
The group page: the public face, laddering from the free walk up to paid training.
The free Stromovka morning walk: a weekly public walk open to everyone, where the trainer offers pointers as the group walks, a private session for a reactive dog, or paid drop-off walking
The walk itself. Free and open to everyone, with both paid paths offered in the same breath.
The trainer editing their services: a Walks and Check-ins card with drop-off and pickup pricing, solo and small-group options, and a group training session offering
Behind the walk: services and prices, set once in the profile.
A live training session in progress: the dog's card with a Live badge and buttons to add a photo, add a note, or log the route with GPS
A booked session under way, with photos and notes flowing back to the owner.
The trainer's private business glance: earnings to date and upcoming, plus active, repeat, and total client counts
The same walk, a few months on: real clients, real earnings.
Nobody's paid to build the community. They're paid by building it.
Why It Matters

The events that make Doggo worth using get created by the people who profit from creating them. Supply isn't something the platform manufactures or pays for. The incentive is structural.

Deep Dive 03

Care without becoming a gig worker.

The Problem

The trainer wanted an audience. Most dog people don't. You'd happily walk a neighbour's dog now and then, and that's it. But the usual options are both wrong: list yourself as a provider and you're running a side hustle, strangers and all; keep it an unspoken favour and it quietly goes unbalanced. So most people don't offer at all.

The Solution

Offering care is a dial on your existing profile, not a second account. Turn it up a little and your services open to your circle only, the same people from the trust model above, and no one else. You never appear in the public directory, there are no ratings, no separate gig-worker profile. Turn it all the way up and you're a full provider, open to anyone: the trainer from a moment ago. Same person, wider audience.

The 'Offering care' setting on a profile: three options — not offering care, Connected circle only (selected), and Open to anyone
Offering care is one control, from off, to your circle, to everyone.
Care is a dial you turn up, not a role you sign up for.
Why It Matters

A set price comes with it, computed once and shown identically to both sides, so asking and accepting stay clean. The barrier to helping drops to almost nothing, so more people offer, and more dogs get looked after by someone they already know.

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 04

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 stands in for the shelter's own intake assessment. The shelter keeps every veto, all the way up.

A custody trail that asks nothing

The handover board fills itself in from the walkers' own bookings. Every dog due out, out now, and back safe, on one screen. For staff, each hand-off is one tap.

Helping, not replacing

The shelter's page carries its own website and socials. Walkers write most of the posts, so the page stays alive without the shelter running another 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

Helping has three doors: walk a dog, sponsor one dog's care, or donate to the shelter. Every koruna goes to the shelter, Doggo takes nothing, and the credit is the giver's, never the platform's. Gifts show 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, each hand-off 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 Sponsor Nora sheet: one-off or monthly cadence, preset amounts, a give-anonymously toggle, and a note that every koruna goes to the shelter and Doggo takes nothing
Sponsoring a dog: one-off or monthly, anonymously if you like. Doggo takes nothing.
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 build runs on Groundwork, a system I built for it: one playbook of hard rules, work in scoped phases, and a walkthrough review closing every phase, where decisions get challenged, sometimes reversed, and always logged. That system is what let one designer ship 82 phases of product in four months, with Claude Code as the build partner, and keep the specs honest the whole way.

The decision logs are timestamped. This page doesn't reconstruct my reasoning after the fact. It is the record.

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. Every push redeploys the truth, and the surface alarms on its own drift when a doc and a page fall out of shape. The deeper payoff is structural. Deciding how the documentation should render meant deciding how it should be organized, and that organization is what makes the trackers and the strategy shelf easy to dig into, for me daily and for the founder at a glance.

Derived, never authored. To change a page, change its source doc. If the surface ever disagrees with the docs, the docs win.

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: 95 token overrides, zero component rewrites.

The operator handover board in light themeThe same handover board in dark theme, identical in structure
The same screen, both themes. Token overrides only.
The Doggo /system dashboard overview, rendered from the project's docs at build timeThe dashboard's Method section: how the work model runs, the open, work and close rituals, and the three phase modes with their editing bands
The knowledge dashboard, derived from the docs: the front page and the working method. Click any image to enlarge.

The output is the dog app. The system is the reusable part.None of it was built for a portfolio. It's how the project runs day to day, and in a live walkthrough I'll drive you through the workshop itself.

Groundwork, the system this build ran on
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. The first owner interviews are underway, and the reactions are promising. Trainer and shelter rounds are next, and the launch shape gets decided by evidence rather than enthusiasm.

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. Under them sits quieter research: competitive mapping of the apps Prague already uses, adoption-journey studies, and a separate interview kit per audience.

Doggo has also been a research instrument in itself. Building it meant working out how owners decide who to trust, how care gets priced and coordinated, and what an institution like a shelter needs before it will adopt anything. That understanding runs through every screen above.

Find your community
Build community, and a living
Run a shelter's day

The demo is one email away.

These clips are the short version. The real thing is drivable: three guided journeys you steer yourself and a demo world to explore freely. The best version is a live walkthrough, where I'll also drive you through the knowledge system behind the build.

Both open a prefilled email. If that's awkward, write me directly at shawnderekdesign@gmail.com.