Gift-giving is a craft.
Giftmaxxing learns the taste of the people you love, remembers every date that
matters, and turns “I have no idea what to get them” into the perfect
gift — on your own or as a group.
🌐 Live app · The swipe flow · Feature tour · Under the hood
The signature flow. Swipe right on what fits, left on what doesn’t — every “yes” sharpens a taste vector that powers your gift matches. Send the challenge to a friend and a soft profile of their taste lands in your account (with their okay), so you’re never guessing again.
Five “wants” unlock a ranked set of gift matches, blended from your swipe taste.
Everything Giftmaxxing does, section by section.
Personal and shared timelines for birthdays, anniversaries and goals. Each milestone carries a reward and surfaces gift ideas as the date approaches.
Pool money toward one great gift — everyone chips in, nobody double-buys. Live progress bars, contributor avatars, and an Invite button to bring people in (in-app or via a share link, with a clear no-payments-handled disclaimer).
Tell Maxi a budget, a vibe, or who it’s for. It finds the gift, adds it to your cart, and can even check out for you.
The home surface: a taste-ranked feed of gift-worthy finds, group pitch-in chats, people to follow, and Maxi nudges (“their birthday is in 4 days — I lined up 7 ideas in your budget”).
Hand-assembled gift bundles — themed, refreshed, and ready to gift together or add to cart in one tap.
Hundreds of hand-picked gifts on Amazon. Affiliate-supported, with a clear Associates disclosure — prices and availability shown on Amazon.
A profile built from your onboarding taste — your gifting role, style and budget, the things you’re into, a public/private toggle, and your posts + friends (soft profiles you’ve collected). No vanity follower counts.
Everything happening around your gifting — reward unlocks, price drops on your radar, pool contributions, claims from your wishlist, and new followers.
A side-by-side demo of the recommender: pick a persona and compare the client-side facet ranker against the server-side S3 Vectors recommender, with the computed taste vector visualized.
A short wizard captures the taste signals that feed every recommendation — name, gifting role, style, budget and interests.
![]() Swipe |
![]() Events |
![]() Feed |
![]() Group gifts |
Screenshots and the GIF are generated with Playwright against the local app (
web/). To refresh them, run the dev server and re-run the capture script.
| Path | What | Deploys to |
|---|---|---|
web/ |
Next.js app (feed, recommender UI, landing) | Vercel (GitHub auto-deploy on push to main; Root Directory = web) |
infra/ |
Terraform serverless backend: DynamoDB + Lambda + API Gateway HTTP API | AWS us-east-1 (deployed) |
infra/ingest/ |
Reddit → DynamoDB data-loading scripts | run locally |
The web app calls the AWS API via NEXT_PUBLIC_API_URL.
| Doc | Purpose |
|---|---|
CLOUD.md |
Canonical cloud/AWS spec + agent memory for the Pinterest-image → multimodal-embedding → vector-index → recommendation pipeline, the Pinterest-style native-ad simulation, cost analysis, and the future visual-search feature. Agents: treat CLOUD.md §8 as the working backlog. |
infra/README.md |
Terraform resources, deploy steps, API routes, planned embedding pipeline. |
web/README.md |
Next.js app dev instructions. |
Connected Pinterest boards/pins (taste signal, user-scoped) and our catalog →
Amazon S3 → Amazon Bedrock Titan Multimodal Embeddings (unified text+image
vectors) → vector index (brute-force in Lambda now → Amazon S3 Vectors at scale)
→ blended into the recommendation feed by cosine similarity. Sponsored items are
interleaved seamlessly (same card, subtle "Sponsored" label, ranked by the same
taste vector), mirroring Pinterest's native-ad pattern. Full design, rate limits, and
cost (≈ a few $/mo at dev scale) live in CLOUD.md.
Upload/snap a photo → embed with the same multimodal model → kNN against the product
catalog → return visually similar buyable products with Amazon / Walmart affiliate
links. Not built yet — designed and indexed in CLOUD.md §6 for a
later agent to implement.
- Web: see
web/README.md. - Infra: see
infra/README.md. - Copy
.env.example→.envand fill in real values (never commit.env).















