Inspiration
As a chronic problem of students, we wanted to work on procrastination. Having accountability buddies is a scientifically proven method to achieve goals, sources claiming that an accountability buddy increases your chance to 95% to achieve your goal. We took a more fun approach to the concept and turned it into a betting system where you can bet.
What it does
On Friend Stakes, a friend group bets on each other's goals. Be it going to the gym 3 times a week without skipping or getting or achieving a 1st class degree on your class, you can bet that you'll achieve your goal and either an AI system or your friend will bet against you. This way, you'll have more motivation to complete your goals. The purpose isn't gaining or losing money (as you only use the in-game money system) but rather that you have a game that makes your friends keep you accountable for achieving them.
How we built it
Friends Stake is a Next.js app hosted on a Vultr server, with a TigerData (Postgres) database as the source of truth for users, stakes and chat. AI acts as the evaluator. When someone opens a stake, Gemma, an open model running locally through Ollama, estimates the odds of the goal being met. Embeddings from EmbeddingGemma pull up similar past stakes to inform that estimate. If the model is unavailable, a statistical model fitted to stake history takes over, so pricing never breaks. Solana provides a public, verifiable record of the money. The in-app coin is mirrored as an SPL token, and every stake gets its own on-chain vault: buy-ins flow in, payouts and refunds flow out, and leftovers are burned when the stake closes. Memos store hashes of each stake’s terms and outcome, so anyone can audit settlements on the Solana explorer without any private stake text going on chain. Transactions are signed and saved before sending and are safe against double payment. They run in the background, so the app never waits on the chain.
Challenges we ran into
Collaborating in a fast changing environment was challenging. Everyone was constnatly shipping new features so staying organized was challenging. As highlighted in the next question, we've overcome this by delegating different stages of the development to different people at different times (like idea generation, building and testing). Also keeping the code clean and readable was also challenging but we gave weight to it so we managed it.
Accomplishments that we're proud of
As a team who didn't know each other before joining, being able to navigate heated discussions and collaborate effectively was challenging yet we managed it. Despite a building environment where shipping new features was very easy and quick, we kept our code clean and tested while building. Although it felt as if everyone was building separately, while two were discussing a new feature the other was shipping and the other was testing one so that we could always be active.
What we learned
We learned that simplicity is important. Adding features just for the sake of adding more features didn't help making the project more helpful to its users. So during development we focused on pruning as we focused on adding as well. Also, everyone in the team should enjoy building and own the project. We had disagreements over what the Friend Stakes should look like, what fits to our values and what doesn't, and why we built what we were building. Compromises given by everyone so that the team can enjoy building made the experience much more productive and pleasent for us.
What's next for Friend Stakes
We'll first begin by experimenting with the app in our friend group for a few weeks. If the use is frictionless enough and the app helps us achieve much more, we're planning on publishing it. It'll be completely free, and if we introduce a fee then it is to cover the running costs of the app. We want to keep it as a community project for productivity geeks rather than making a small profit out of it. We'll publish it open-source so that the productivity community can develop the project more, and people can fork if they see that another app fits their needs.
Built With
- gemma
- next.js
- solana
- vultr