Back to projects
2026Design and development

Domestic Friends. A warm app for everyday pet care.

A mobile app for looking after the pets you live with: their profiles, their health, and the small daily things that keep them well. A close look at how a warm palette, rounded type, and one accent color make an everyday tool feel friendly and easy to trust.

Product designMobile appVisual designDesign system
Domestic Friends. A warm app for everyday pet care.

Domestic Friends is a mobile app for the people who share a home with a dog or a cat. It keeps each pet's profile, tracks their health, and lists the small daily tasks (a walk, a meal, a dose of medicine) that are easy to forget and easy to feel guilty about.

The app is built around one idea: looking after an animal is already a quiet kind of worry, so the tool for it should feel warm and steady, never clinical. The rest of this page is about how spacing, type, and color carry that feeling.

Domestic Friend brand guidelines, slide 1.
Domestic Friend brand guidelines, slide 2.
Domestic Friend brand guidelines, slide 3.
Domestic Friend brand guidelines, slide 4.
Domestic Friend brand guidelines, slide 5.
Domestic Friend brand guidelines, slide 6.
Domestic Friend brand guidelines, slide 7.
Domestic Friend brand guidelines, slide 8.
Domestic Friend brand guidelines, slide 9.
Domestic Friend brand guidelines, slide 10.
Domestic Friend brand guidelines, slide 11.
Domestic Friend brand guidelines, slide 12.
Domestic Friend brand guidelines, slide 13.
Domestic Friend brand guidelines, slide 14.
Domestic Friend brand guidelines, slide 15.
Domestic Friend brand guidelines, slide 16.
Domestic Friend brand guidelines, slide 17.
Two onboarding screens on a warm background, each with a flat warm illustration of a dog and a cat, a short bold title, a line of supporting text, page dots, and a dark full-width button.
The first run. A flat illustration on each screen, one short line of text, and a single dark button to move on.

A warm surface

Everything sits on a warm cream, a few shades off white. Cards are a softer near-white and lift off the page on low, warm-tinted shadows, so the surface reads like paper rather than glass. There is no hard black anywhere. The darkest ink is a brown-black, the kind a printed book uses.

Honey is the only accent. It marks the things that matter in the moment (today's progress, the active tab, a highlight) and nothing else. Even the main button stays ink on cream, so the accent never spreads into decoration. Color is treated as a signal here, and kept rare on purpose.

Four phone screens in a row, one per section of the app, each using a different accent color in its active tab and highlights: honey, pink, teal, and yellow.
One color per section. Today is honey, Pets is pink, Health is teal, Care is yellow.

A color for each room

The app has four sections, and each one owns a color. Today is honey, Pets is pink, Health is teal, Care is yellow. That accent shows up in the section's tab, its links, and its checkmarks, so the color alone tells you where you are before you read a word.

The colors stay quiet. They run at low saturation, they appear in small doses, and the long lists of text beneath them hold the same warm ink everywhere. A finished task gets a colored check while the rest of the row keeps still. Nothing on the screen competes for attention it doesn't need.

Two screens side by side. Left: a grid of pet cards with photos, names, and breeds. Right: a single pet's page with a small uppercase label, a large name, a rounded photo, trait pills, and a row of three facts.
A pet's page: a small label up top, the big name, the photo, then the key facts in one row.

Type you can read at a glance

The app uses one rounded type family, Nunito, for all of its text. Rounded letterforms feel softer than the usual sharp interface fonts, which suits an app about animals, and they hold their shape at the small sizes a phone forces on you.

Every screen follows the same order. A small uppercase label sets the context. A large, heavy title says what you are looking at. Quieter text fills in the rest. Numbers get the boldest treatment of all, because a weight, an age, or a count of tasks done is usually the reason the screen was opened. The order never changes, so each new screen already feels familiar.

Two screens side by side. Left: a list of daily care tasks grouped by pet, with completed tasks struck through and checked in yellow. Right: an upgrade screen with a warm illustration of a resting cat and dog, a short headline, and a dark button.
Left, the day's tasks, with finished ones ticked in yellow. Right, the upgrade screen, which opens on an illustration and a single line before any detail.

Room to breathe

The whole app lives in one phone-width column, even on a wide screen, and it spends space freely. Cards keep their distance from each other and from the edges. Corners are rounded the whole way through: the buttons, the photos, the cards themselves. It is a small move, but repeated on every element it sets the tone.

The images do the balancing. Real photos carry the pets, because a photo is personal in a way a drawing can't be. Flat illustrations are saved for the moments that are about feeling rather than facts: the welcome, the gift, the upgrade. Keeping the two apart lets the screens full of data stay plain, and lets the few warm screens actually be warm.

How it's built

The app is built in Next.js and React, with TypeScript throughout. It sits on a shared design system, the same set of building blocks used across the other projects here, re-dressed in the warm palette above, so the screens stay consistent with little styling of their own. You can switch between pets and tick a task off with the small delays a real app has, though nothing is saved between visits. The rest of the stack is just below.

Built with

  • Next.js16
  • React19
  • TypeScript
  • Design system

Warmth is a design decision.

Soft color, rounded type, and a lot of space add up to a feeling: that someone anxious about a living thing is in steady hands. That was the whole point.