Objective of the week
Moving from simple coding practices to making first ideas real by creating a page to publish feral cat sightings. I moved from isolated sightings to identity and relationships by introducing a first version of same-cat matching.
The goal was not accurate identification, but to learn how to suggest possible matches using simple, explainable logic based on text descriptions and locations.
What I built
I extended CatAtlas with a “same-cat matching v0” feature.
Each cat sighting can now:
- trigger a matching process,
- receive a ranked list of possible matches,
- and display simple explanations for why two sightings might refer to the same cat.
This turns the app from a list of entries into an emerging network of related sightings.
GitHub repo:
👉 https://github.com/codespaces?repository_id=1122410808
Live site:
👉 https://orange-disco-pj4g9w4w46prh96pw-5173.app.github.dev/
What I learned
- Designing similarity-based matching instead of binary identification
- Working with arrays of objects to compute scores and rankings
- Introducing explainable “reasons” for AI-like decisions
- Managing additional per-item UI state in React
- Thinking in terms of relationships between records, not just records themselves
What was hard / surprising
- Deciding where matching logic belongs (backend vs frontend)
- Tuning similarity thresholds so results feel useful, not noisy
- Placing derived UI blocks correctly inside React list rendering
- Realizing how quickly complexity grows once entities relate to each other
What I’ll do next week
Next week, I want to strengthen the CatAtlas foundation further by introducing a new dimension of data, such as photos or a more explicit “cat identity” concept.
The focus will be on adding structure carefully, without jumping too early into heavy AI or computer vision.

Top comments (0)