Skip to content
Ismail Bentabett

PawTalk

Pet adoption as three products that share one backend: a swipe-to-match mobile app, a dashboard for shelters and a landing page.

For
People looking to adopt, and the shelters caring for the animals. A personal product, built end to end.
My role
Sole designer and developer across all three.
When
Dec 2024
Built with
Expo, React Native, React, Vite, Firebase, TanStack Table, Next.js, Radix, Framer Motion
PawTalk landing page: find your perfect pet companion

The brief

Adoption sites feel like classified ads. PawTalk borrows the swipe-and-match pattern people already know, then lets them chat with the shelter straight away. Shelters need their own tool to list animals and answer people.

The app: swipe, match, chat

The mobile app is built with Expo and React Native, with React Navigation for the screens and Firebase for sign-in, data and real-time chat.

Swipe right on a pet you like. When it's a match, a chat with that shelter opens, so the next step is a conversation, not a form.

PawTalk landing page on a phone

The dashboard for shelters

Shelters work in a React and Vite dashboard built with shadcn/ui on Radix. TanStack Table handles the long lists of animals and requests, with sorting and filtering.

Forms use react-hook-form, and photos upload to Cloudinary, so a shelter can list a new animal in a couple of minutes.

  • React, Vite and TypeScript
  • shadcn/ui and Radix for accessible controls
  • TanStack Table for sortable, filterable lists
  • Firebase for data, Cloudinary for photos

The landing page

The landing page is Next.js with Radix, Tailwind CSS and Framer Motion. It explains the idea in one screen and points people to the app.

PawTalk landing page on a desktop

What I'd keep

Agree the data model first. With three apps reading the same Firebase data, settling the shape of a pet, a match and a message early saved rework in all three.