Oct 2021 — Jul 2022
Mutty
A location-based social app for dog owners — find nearby pups, meet up at dog-friendly spots, and keep your pack's data private. Built solo, shipped to iOS.
- React Native
- Expo
- Firebase
- Geolocation
- TypeScript








What it was
Mutty was my swing at a social app for dog people. The idea was simple: dog owners are already out in the world on the same walk every day, often crossing paths with the same neighbors — so why not make it easy to actually meet? Build a profile for your dog, see who’s nearby, and find the parks and patios where other pups hang out.
I founded it and built the whole thing myself — product, design, and code — from first sketch to a shipped iOS app.
The build
The app was React Native on Expo, with Firebase as the backend (authentication, Firestore, and cloud storage for photos). Going Expo-first let a solo founder move fast: over-the-air updates, a managed build pipeline, and one codebase to reason about.
The interesting part was location. Mutty leaned on geospatial queries to answer “who and what is near me right now?” without turning into a privacy nightmare — I stored coarse, geohash-bucketed positions rather than precise coordinates, so proximity worked but nobody’s exact location was sitting in a database.
// Coarse geohash buckets: enough precision to find neighbors,
// not enough to pinpoint anyone's front door.
const bucket = geohash.encode(lat, lng, 6); // ~1.2km cell
const nearby = query(
collection(db, "pups"),
where("geobucket", "in", neighborBuckets(bucket)),
);
What I learned
Shipping a social app as one person is a masterclass in scope. The technical side came together — auth, real-time data, geoqueries, a polished RN interface — but the hard problem with any social product is the cold start: it’s only fun once your neighbors are on it too. Mutty found its shape and shipped, but never found its market, and I wound it down in 2022.
I’d still call it a win. It’s the project where I got fluent in React Native and Firebase end to end, made every product call myself, and learned — expensively, but for real — that distribution is a harder problem than code.