Project File / 09 / Personal utility
Remembering the birthday was not the hard part
A personal gift radar combines dates, shipping time, budget, taste, and gift history so the reminder arrives with a useful shortlist.

I did not need another birthday reminder. I needed something that remembered the person before the reminder arrived.
GiftSavvy began as a private gift radar. It tracks who matters, when the next occasion happens, how long shipping takes, what the person likes, what they avoid, and what worked last time. The date is only one input.

09.01
The real object is a person model
Each recipient has occasions, budget range, location, shipping buffer, interests, notes, avoid lists, gift history, and a set of taste sliders. The sliders make fuzzy preferences usable: safe versus surprising, practical versus playful, object versus experience, low versus high clutter, and low versus high personal risk.
That profile is more useful than a generic prompt typed three weeks later. It gives the search a memory and gives future gifts a way to improve from what already happened.
Useful memoryRemember the person, not just the date.
09.02
Urgency includes shipping
The queue does not sort only by calendar distance. It works backward from the occasion using the recipient's shipping days and a decision buffer, then turns that into an order window.
That small change moves the reminder from ceremonial to operational. 'Birthday in 21 days' is trivia. 'Choose this week' is a decision.

09.03
A recommendation is only useful if the product is real
Early gift systems can sound clever while returning stale listings, broken images, duplicates, or objects that ignore the person's budget. GiftSavvy uses deterministic profile rules and web search, not an AI model call. It validates product sources and images, keeps the search queries visible, and explains why an item fits the profile.
The production verifier currently checks the live routes, the seeded recipient and gift data, and image coverage. At publication, all 13 seeded gift images passed validation.
Trust boundaryA plausible title is not a product until its source and image resolve.
09.04
It is a prototype, not a private consumer service yet
The current deployment proves the workflow with a seeded recipient set, local persistence, server sync, calendar export, and a native-feeling mobile shell. A Capacitor wrapper takes that shell toward iOS.
The shared pilot backend does not yet have proper per-user accounts or data isolation, so this file deliberately does not link to it or reproduce the recipient dashboard. There is also a time-derived hydration warning in the current public build. Neither issue is hidden by the polished onboarding screen.
What survived
Three things I would carry into the next build
- A reminder becomes valuable when it arrives with a decision.
- Taste needs structured memory before it needs more generation.
- Real links and valid images matter more than clever recommendation copy.