Inspiration
Most budgeting apps are reactive. They tell you where your money went after you already spent it. You check your budget at the end of the month and realize you spent too much on clothes, but by then it is too late to change anything. These apps create awareness, but they do not help you actually change your behavior.
We also noticed that people rarely get help in the moment they are actually deciding to buy something. You are standing in a store, or looking at something online, and asking yourself if you really need it. No app steps in right then. We wanted to build something that helps people make better choices before the money is gone, not just after.
What it does
Buy or Bye is a quick decision making tool that works like a personal purchasing consultant.
When you find something you want to buy, you type a description or take a photo. The app figures out what the item is, checks it against your usual spending in that category, and shows you a few similar alternatives. Then it asks you one simple question. Do you really need this?
If you say yes, you can go straight to buying it. If you are not sure, the app saves the item so you can think about it later instead of deciding on the spot.
Setting up your budget works the same conversational way. Instead of typing in random numbers, the app asks you questions like how much you usually spend on groceries each month, one category at a time. There is also a spending tracker that shows what you have bought and how much of your budget is left, and a chat assistant called Purchase Pal that you can talk to about any purchase you are thinking about.
How we built it
The frontend is built with TanStack Start, React, and Tailwind CSS. The backend is a Node and Express server that connects everything together.
For AI, we use Gemini to classify items and generate the questions the app asks. Backboard acts as a backup when Gemini is not available, and it also remembers past conversations. We use SerpAPI to pull real prices and alternatives from the web. Tiger Data, which is built on Postgres, stores every purchase decision a user makes. Supabase handles sign in and stores the budgets, categories, and transactions. The whole app is deployed on a Vultr server with a real domain and HTTPS.
We made sure each tool has a clear job instead of just using AI everywhere for the sake of it.
Challenges we ran into
One of our chat features was originally built using a gateway that only works when the app is hosted on a specific platform. It needed a secret key that we could not get for our own server. We had to rebuild that whole feature to use Gemini and Backboard instead, including writing our own way to handle structured replies since those tools do not support the same features out of the box.
We also found that purchases made in the Decide screen were being saved in one database, while the budget tracker was reading from a different one. This meant a purchase would not actually update your budget numbers. We fixed this by making sure a purchase updates both places.
When we deployed the app, the server kept failing to start with no error message at all. After a lot of digging, we found that our build settings were secretly set up for a different hosting platform than the one we were actually using. Once we fixed the build target, the server started right away.
Accomplishments that we're proud of
We are proud that all of our sponsor tools are fully working and connected to real features in the app, not just sitting in the code unused. Gemini and Backboard work together so the app keeps working even if one of them fails. We also got the app fully deployed on a live server with a real domain and secure HTTPS, which was not something we were sure we would finish in time.
We are also proud of sticking to our original idea. The app helps people pause and think before they spend, instead of just showing numbers after the fact.
What we learned
We learned that AI tools can fail in ways that are easy to miss, like an old model name being retired or a key not matching what you think it is. Building a proper fallback system taught us to expect failure and plan for it instead of assuming everything will always work.
We also learned how much small configuration details can break a deployment, like a build setting that silently points to the wrong platform. Testing the full app on a real server, not just on our own laptops, caught several problems we never would have found otherwise.
What's next for Buy or Bye
Right now we support six spending categories. We want to expand this to our full list of over twenty categories and many more subcategories, so people can set more detailed and personal budgets.
We also want to add speech to text, so users can talk to the app instead of typing. Since the whole idea of Buy or Bye is having a conversation with your financial assistant, being able to just speak to it would make that feel more natural.
Finally, we want to let users scan their receipts and have the app automatically read and log the purchase, instead of typing everything in by hand.
Built With
- css
- gemini
- html
- node.js
- serpapi
- supabase
- tigerdata
- typescript
- vultr
Log in or sign up for Devpost to join the conversation.