-
-
App icon logo
-
Private by default. Birthdays stay local and gift search never sees names. You can sign in with Apple or use the app without an account.
-
Save the little things people mention, like or want to avoid. Preci uses them to suggest gifts that fit who they are.
-
Add an iPhone Reminder 2 weeks, 1 week or 3 days before any birthday or anniversary, in one tap.
-
Get 3 free gift searches, then a one-time $4.99 purchase unlocks unlimited searches forever.
-
Turn a gift idea into a simple plan so it's ordered, written and ready on the day.
-
Bright mode home screen
-
Sync all the important dates into one space
Inspiration
Gift giving is my love language. I love finding something that makes someone feel truly seen. But I have far too many birthdays, anniversaries and dates to keep track of. My grandma was living on the other side of the world, and I forgot her birthday entirely. I didn't call and I didn't send a gift. Being far apart is exactly when a small gesture matters most, and I missed it.
That's when I realized that caring wasn't my problem. My problem was memory. The best gift ideas come up in passing, months earlier: something a friend says they've been wanting to try, or something they keep talking about. By the time the date arrives, those details are gone. I built Preci so I never miss someone I love again, and so that when their day comes, I already know what would make them feel remembered.
What it does
Preci is an AI gift agent that remembers what people mention and researches gifts that fit them.
☀ Remember the little things. Save what someone mentioned, likes, needs or wants to avoid. Each person has a relationship, a color, an optional photo and their important dates (birthday, anniversary or a custom date, with an optional year so Preci can show "turns 30" or "10 years"). ✿ Never miss the date. Import birthdays from Contacts or your calendar, and add an iPhone Reminder 2 weeks, 1 week or 3 days ahead with one tap. ❤ Find gifts that they will actually remember and use. Pick a budget (a preset or a custom range) and Preci searches the live web for real gift ideas. Each idea comes with a reason that ties back to what that person actually said. ☂ Private by design. People, notes and photos stay on your phone. Gift search sends the relationship, interests, saved notes, occasion and budget. It never sends names or contact details. No ads, no tracking. ☻ Fair monetization. Everyone gets 3 free gift searches. The Occasion Pass is a one-time $4.99 purchase through RevenueCat that unlocks unlimited searches and can be restored on any device.
How we built it
★ App: Expo (SDK 57) and React Native with TypeScript, built and shipped to the App Store with EAS Build and EAS Submit. ★ Payments: RevenueCat with a non-consumable lifetime product, a default offering, and an entitlement that gates gift search. The paywall checks the entitlement live, supports Restore Purchases, and changes to a thank-you state once the pass is owned. ★ AI gift research: OpenRouter routing to Perplexity Sonar, a web-search model, so suggestions are real products available now, not made-up ones. The prompt is built from the person's saved context and budget, and the response is structured into ideas with reasons and links. ★ Native integrations: expo-contacts and expo-calendar for importing birthdays, expo-calendar's - Reminders API for yearly reminders, and expo-image-picker for person photos. ★ Accounts (optional): Supabase Auth with email OTP codes and Sign in with Apple, so a purchase can follow you to a new phone. ★ Storage: Everything else is local (AsyncStorage). Privacy policy and support pages are hosted on Vercel.
Challenges we ran into
- Environment variables vs. cloud builds. My API keys were in .env.local, which is gitignored, so EAS builds shipped without them and gift search quietly failed. I moved every key into EAS environment
- Showing the real product image. I wanted each gift idea to show a photo of the actual product, but keeping the image matched to the product was harder than finding the idea. The web-search model returns good product names and links, but its image URLs were often broken, expired, or of a different item. Many retailers also block their images from being loaded inside other apps. Pulling the preview image from each product page on the phone made results slow and still failed on a lot of stores. A gift card showing the wrong product would hurt trust more than having no photo, so for launch I show the idea, the reason it fits, and a link to the real store page. I left photos out until I can reliably match them to the right product.
- The entitlement mismatch. The app checked one entitlement ID while RevenueCat had another, so purchases went through but nothing unlocked. Matching them fixed the Occasion Pass.
- Auth edge cases. Google OAuth showed an "unverified app" screen, and Supabase confirmation links redirected to localhost. I fixed the site URL, published the OAuth consent screen, and moved signup to one-time codes.
- **Solo time pressure. **Design, engineering, copy, legal pages and store submission, all by me, against the deadline.
Accomplishments that we're proud of
✪ Shipped a real, submitted App Store app with a working RevenueCat purchase, not a prototype. ✪ Gift ideas that cite why they fit ("she mentioned wanting to try wheel throwing") instead of generic top-10 lists. ✪ A privacy model I'd be comfortable explaining to the people in my own app: no names leave the phone. ✪ A monetization model that respects users: 3 free searches and one honest price, with no subscription. ♥ Small details that make it feel finished: custom relationships and colors, milestone ages, one-tap iPhone reminders, and a paywall that thanks you once you've bought.
What we learned
❁ The hard part of shipping isn't the feature. It's the last 10%: keys, entitlements, review screenshots, privacy disclosures and auth redirects. ❁ RevenueCat removes most of the StoreKit pain, but the entitlement is the source of truth, and the app must agree with it exactly. ❁ Grounding an LLM in a web-search model and in the user's own notes makes the output much more useful than "creative" generation. ❁ As a product designer, writing the App Store page and the paywall copy was as much a product decision as any screen.
What's next for Preci
Proactive agent: before each occasion, Preci researches on its own and sends a nudge with ideas already waiting. Price and availability tracking for saved ideas. Quick capture: a share sheet and widget to save "they mentioned…" moments from Messages or Notes in a second. iCloud sync across devices, and Android through the same Expo codebase. Gift history so you never give the same thing twice, and learning from which ideas you actually picked. Verified product images: fetch and check each product's preview image on a server, cache it, and show it only when it matches the linked product. Connect to Facebook: Sync all the birthdays and important occasions of friends and family members from Facebook.
Built With
- asyncstorage
- eas
- expo-calendar
- expo-contacts
- expo.io
- ios
- openrouter
- perplexity
- react-native
- revenuecat
- sign-in-with-apple
- supabase
- typescript
- vercel

Log in or sign up for Devpost to join the conversation.