Inspiration
Prezzi was inspired by my own problem.
I grew up living in four different states, and I also lived abroad for years. Because of that, I have friends and family spread across different cities, states, and countries. Even though I care deeply about them, it became hard to keep track of everyone’s birthdays, celebrations, and special moments when we were so far apart.
Social media helped me stay connected with people I love, but I wanted to take that connection one step further. Sometimes I wanted to treat a friend to dinner, coffee, or drinks, but they were in Austin, Chicago, or another country. I could send money through Venmo or Zelle, but that often felt transactional. It did not capture the thought, message, or love behind the gift.
I wanted to create something that felt more personal than sending money, but more flexible than a traditional gift card. Many gift cards are tied to large chains, while some of the best coffee shops, restaurants, bars, bakeries, and specialty food places are independent local businesses.
That is why I created Prezzi: a way to send a thoughtful local gift from afar while still giving the receiver freedom to choose what they actually want.
What it does
Prezzi is a web-based flexible gifting platform that lets users treat friends and family to drinks, coffee, food, or dinner from afar.
A gifter can search for the city where their loved one lives, choose a shop or gift category, select a flexible gift value, write a message, choose a digital card, and optionally attach a photo. The receiver then opens the Prezzi through a secure redeem link, unwraps the gift, and can either accept it or swap it.
The main idea is that the sender gets to express thoughtfulness, while the receiver still has flexibility.
For example, if someone sends a steak dinner to a friend who recently became vegetarian, the gift is not wasted. The receiver can swap and use the value toward something they actually want.
Prezzi is not just about the transaction. Apps like Venmo and Zelle already make it easy to send money. Prezzi is about the experience around the gift: the card, the message, the photo, the surprise, and the feeling of being remembered.
How we built it
We built Prezzi as a web-based, user-experience-first platform.
The project was built using Next.js, React, TypeScript, Node.js, Vercel, AWS Cognito, Amazon Aurora DSQL, Google Maps API, and Google Places API.
AWS Cognito is used as the authentication source of truth. Amazon Aurora DSQL stores app data, user profile data, and gift data. Google Maps and Places power the city and shop search experience. Stripe test payments were used to prototype the checkout flow.
A major design decision was to make signup feel simple and step-by-step. Instead of asking for everything at once, Prezzi first collects and verifies the user’s email, then collects profile details like first name, last name, phone number, and date of birth afterward.
The gift flow was designed around emotion first. The sender creates a digital gifting experience with a card, message, optional photo, selected shop or category, and flexible value. The receiver then experiences the gift through an unwrap flow instead of just seeing a payment confirmation.
For the prototype, we did not fully integrate Stripe Issuing or real virtual card issuing because that requires a more rigorous approval process. Instead, we focused on demonstrating the core user experience: search, gift creation, checkout, confirmation, secure redeem link, unwrap, accept, and swap.
Challenges we ran into
One of the biggest challenges was learning how to use AWS Cognito and Amazon Aurora DSQL.
Cognito required careful setup for email verification, Google sign-in, hosted UI redirects, callback URLs, app client settings, and production environment variables. It was challenging to design the signup experience I wanted while still following Cognito’s authentication requirements.
I wanted the account creation flow to feel easy:
- Enter email.
- Verify email.
- Complete profile.
- Start gifting.
That meant deciding which information belonged in Cognito and which information belonged in the app database. Cognito only needed to manage authentication, while Prezzi stored additional profile and gift data in DSQL.
Amazon Aurora DSQL also had its own learning curve. It does not support every standard PostgreSQL feature, so we had to adjust the database schema and migration approach around what DSQL supports.
Another major challenge was Google Places search. At first, it seemed like Google Places could power the entire search experience. But during development, repeated searching became expensive. I realized that relying on external APIs for every live search is not sustainable.
The cost problem can be represented as:
$$ \text{Total Platform Cost} = \text{Search Cost} + \text{AI Cost} + \text{Database Cost} + \text{Payment Processing Cost} $$
If users search all day but never send a gift, then:
$$ \text{Revenue} < \text{Cost} $$
That made it clear that Prezzi eventually needs to build and own its own database instead of depending only on Google Places.
Accomplishments that we're proud of
I am proud that Prezzi turned a personal problem into a real working product concept.
We did not just build a payment flow. We built a gifting experience around thoughtfulness, flexibility, and emotional connection. The goal was to make the receiver feel remembered and cared for, even when the sender cannot physically be there.
I am also proud that we kept the signup experience close to the original vision. Even though Cognito was challenging, we were able to preserve a step-by-step flow that feels less intimidating for users.
Another accomplishment is connecting multiple complex systems into one product experience: authentication, database storage, Google Maps search, Google Places data, checkout, confirmation, secure redeem links, and the gift unwrap flow.
Most importantly, I am proud that Prezzi gives both sides of the gift a better experience. The sender can express love and thoughtfulness, and the receiver can still choose what fits them best.
What we learned
We learned that user experience and backend architecture have to be designed together.
A simple gifting experience on the frontend depends on many hidden technical decisions in the backend: authentication, profile completion, secure gift links, database design, checkout logic, search performance, and redeem state.
We also learned that authentication is not just a technical feature. The signup and verification flow shapes the user’s first impression of the product. If signup feels confusing or difficult, users may leave before they ever send a gift.
Another major lesson was that external APIs are useful, but they are not enough to build a scalable marketplace. Google Places is helpful for discovery, but Prezzi needs its own database of shops, categories, gift options, merchant details, and curated recommendations.
We also learned that AI and API usage can become expensive quickly. Search cost matters. Conversion matters. Owning the database matters.
The relationship can be simplified as:
$$ \text{Sustainable Growth} = \text{High Conversion} + \text{Owned Data} - \text{Uncontrolled API Costs} $$
The biggest product lesson was that gifting is not only about the item or the dollar amount. It is about the message, the timing, the relationship, and the feeling behind the gift.
What's next for prezzi
The next major step for Prezzi is building our own database.
In the future, I want to automate as much of this process as possible using agents that can collect, organize, and update shop and merchant information. However, I also want human verification to make sure the information is accurate, useful, and trustworthy.
Merchant integration is another major opportunity. Local shops have a strong incentive to market themselves, and Prezzi could help them reach new customers through gifting. Over time, merchants could become part of the platform while Prezzi remains a free and accessible marketplace for users.
I also want to expand Prezzi internationally, starting with countries that are personally meaningful to me, such as South Korea. Many of my family members live abroad, and I would love to make it easier to send thoughtful local gifts across borders.
In the future, Prezzi could also include curated nonperishable goods in addition to restaurants, coffee, drinks, and meals. For example, my uncles often ask me about vitamins and medications, so it would be meaningful to review, curate, and send useful products to family abroad.
The long-term vision is for Prezzi to become a thoughtful gifting marketplace that prioritizes local businesses, flexible gifts, and meaningful human connection.
Prezzi started from a simple feeling: I wanted to treat someone I love, even when I could not be there.
Built With
- amazon-aurora-dsql
- aws-cognito
- gemini-ai
- google-maps
- google-place-api
- next.js
- node.js
- react
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.