Inspiration
I’ve always liked playing games, especially reasoning and brain-teaser games. So instead of building another generic app, I decided to build something I would actually want to play.
I wanted a game that was fun to play with friends, easy to understand, and didn’t require a lot of time. I also wanted the competition to come from thinking and solving problems rather than complicated game mechanics.
That’s how Rivals started: a quick daily game where I could solve different challenges, compare my score with friends, and try to beat them the next day.
What it does
Rivals gives every player one Daily Arena with three quick challenges:
- Word Duel
- Cipher Break
- Number Rush
Your performance across all three becomes one Arena Score. You can then compare your score with friends, climb daily and all-time leaderboards, maintain a streak, and challenge friends using virtual coins.
The entire Daily Arena is designed to take less than five minutes, so it feels easy to fit into your day instead of becoming another long game.
How we built it
I built Rivals completely on my own.
The mobile app is built with React Native and Expo for iOS and Android. I used FastAPI for the backend and Supabase for authentication, PostgreSQL, Row Level Security, and Realtime. RevenueCat handles subscription management.
I wanted the important parts of the game to be secure, so the mobile app isn't trusted with things like final scores, coin balances, wagers, or leaderboard results. These are validated and handled on the server side.
For development, I first defined what I wanted the product and its features to do, then used AI as a coding assistant to help me write and iterate on code faster. I reviewed, tested, debugged, and integrated the code myself.
Challenges we ran into
The biggest challenge was making the game simple for the player while keeping everything reliable behind the scenes.
A player should just be able to open the app, solve the puzzles, and see their score. Behind that simple experience, I had to handle authentication, server-side scoring, database security, wagers, leaderboards, game state, and real-time updates.
Security was another important challenge. I had to make sure players couldn't manipulate scores, access answers too early, or directly change important game data. This led to using server-side validation, JWT authentication, PostgreSQL Row Level Security, and protected database access.
I also had to make architectural decisions during development. For example, I initially considered using WebSockets and Redis, but after reviewing the actual requirements and implementation, I simplified the architecture to FastAPI REST + PostgreSQL + Supabase Realtime.
Accomplishments that we're proud of
I’m proud that I took Rivals from an idea to a complete working product by myself.
The biggest accomplishment for me is that it isn't just a collection of puzzle screens. It has a complete gameplay loop: daily challenges, scoring, leaderboards, friends, streaks, virtual coins, and friend challenges.
I’m also proud of the backend architecture. I put a lot of effort into making the important game logic server-authoritative instead of trusting the mobile client.
Another thing I’m proud of is building the project while learning along the way. I had to work across mobile development, backend development, databases, authentication, security, real-time systems, and monetization to bring the whole idea together.
What we learned
Building Rivals taught me that making something feel simple to the player can require a lot of engineering behind the scenes.
I learned a lot about designing game backends, server-side validation, database security, real-time synchronization, and handling different states safely.
I also learned how useful AI can be as a development tool. Instead of relying on it to decide what to build, I used it to help turn my own ideas and requirements into code faster, then reviewed and tested the results myself.
Most importantly, I learned that building something you personally enjoy makes the process much more motivating. I like games and reasoning challenges, so creating Rivals gave me a project I actually wanted to keep improving.
What's next for Rivals
The next step is to keep turning Rivals into a game that people want to return to every day.
I want to improve the gameplay based on real player feedback, make the competition between friends even better, and continue improving the overall game experience.
I also want to expand Rivals beyond the initial three puzzle types over time, while keeping the core idea intact:
A quick daily challenge that is easy to pick up, fun to solve, and more exciting when your friends are trying to beat your score.
Built With
- docker
- expo.io
- fastapi
- git
- github
- jwt
- postgresql
- react-native
- restapi
- revenue
- supabase
Log in or sign up for Devpost to join the conversation.