Back to Case Studies
Animal welfare / consumer mobile app

Building a Pet Adoption Mobile App with Dual User Roles

Published July 21, 2026

React NativeExpoSupabasePostgreSQLReact Navigation

The problem

A pet adoption concept needed a mobile app that could serve two very different audiences from the same codebase: adopters browsing and applying for pets, and shelters managing their own listings and adoption requests. Each side needed its own flow, its own navigation, and its own permissions, without duplicating the app or the backend.

What we built

We built a single React Native app with role-based navigation: adopters get a browse-and-favorite experience with pet details, an adoption checkout flow, and a "my pets" section with care reminders, while shelters get a dashboard with adoption statistics, pet listing management, and an approve/reject queue for incoming requests.

Both roles share the same Supabase backend for auth, storage, and real-time data, so a shelter updating a pet's availability is reflected immediately on the adopter side without a manual refresh.

Results

The dual-role architecture meant shipping one app instead of two, with shared authentication and data layer, while keeping each user type's experience purpose-built rather than a generic one-size-fits-all interface bolted onto both roles.

Have a similar project in mind?

Tell us what you need and we'll help you figure out the right approach.

Get in touch