Case Study — 2026
ADOPTIO
Connect hearts, not just profiles.
Three days before Christmas 2023, someone abandoned a ginger mutt. He ended up with us and turned our life upside down — in the best possible way. Karmel is the reason Adoptio exists, and the reason the whole brand is the color of his coat.
Roles
- Product Design
- Full-Stack Dev
- UX/UI Research
Status & Timeline
Deployment & Development March 2026
Live
Visit Website →Tech Stack
- Next.js 15 (React)
- Supabase (PostgreSQL, Auth, Storage)
- Tailwind CSS & Framer Motion
- TypeScript
- Google Gemini 3.5 Flash Lite Integration
Shelters get plenty of interest and much of it does not fit. People pick an animal from a photo and two lines of description, and the things that actually decide whether it works — space, hours out of the house, children, other animals, allergies, experience — come up only once someone picks up the phone. The mismatch costs both sides the time they have least of, and sometimes the animal comes back.
The match is computed from the eleven answers the quiz collects before it asks where you live: species, sex, age, size, housing, lifestyle, experience, children, other animals, allergies — location last. A tag-based algorithm scores every animal against those answers and returns match points together with the reasons behind them; the top thirty go to Gemini for a second opinion.
A working platform, deployed and in active development. Shelters add and update their own animals in a panel, the quiz returns a list ranked by match points, with a justification attached to each animal, and the adoption Kanban shows which stage each request has reached. The revenue model is designed but not switched on yet: donations are to be taken with no commission, and the platform is built to earn elsewhere — through partnerships with brands and through the "Starter Kit" and "Specialists" sections — so the part that matters to adopters stays free. Payments and the Specialists module are waiting on traffic; turning them on earlier would be building for an empty room. Adoptio is a bridge, not a replacement for contact: a request carries a phone number, the shelter calls, and everything after that happens between the two of them. Product design, frontend, backend and the Gemini integration — built end to end by one person.
Lifestyle Quiz
Eleven steps, and location is the last of them: species, sex, age, size, housing, lifestyle, experience, children, other animals, allergies, and only then the postal code. You describe the household first and narrow the map afterwards. Every answer becomes a criterion the algorithm scores against — the result is match points across all eleven, not an activity rating with the rest attached to it.
Local Search & Shelter Map
Location is a criterion like any other rather than a gate in front of the results: it counts alongside the rest and breaks ties, so the closer animal wins when two score the same. The map shows which shelters are on the platform and where they are, and search with filters is there for people who already know what they are looking for.
Interface & Motion
The orange is Karmel's coat — the brand starts from a dog, not from a palette — and it carries across the whole product. Framer Motion handles the animal carousel, the likes and the transitions between views. The point of the motion is that browsing a shelter list should not feel like reading a spreadsheet.
Shelter Panel
Shelters sign in and run their own listings: add animals, tag them, change a status, see what came in. Requests land on an adoption Kanban that shows which stage each one has reached, and every request carries the phone number the shelter calls.
Match Points, Then a Second Opinion
A tag-based algorithm scores every animal against the eleven answers and produces match points and the reasons behind them. The top thirty go to Gemini 3.5 Flash Lite, which judges how well that ranking holds up, adjusts each score and writes a short personal reason for the animal — the nuance the tags cannot carry, because a description written by the people who look after an animal says more about its temperament than its labels do. Proximity counts here too: the closer animal wins a tie. The model is a deliberate choice — reranking thirty candidates and writing a few sentences does not need a frontier model, and the cheaper one is what keeps a free platform viable. If Gemini is not there at all, whether from a missing key, a rate limit, a timed-out request or an error, the algorithm's ranking simply stands. The feature degrades, the product does not break.







