🌟 Inspiration
This is a voting system I created for my team 401 Studio and for an ongoing project called Ghetto Games Rap Battle.
This voting system allows jury and audience to have an interactive voting experience.
Ghetto Games Rap Battle happens in Latvia, Riga.
It is a project not only for rappers, but also for young people to live a healthy and active life.
401 Studio is a community for artists, musicians, and people who enjoy music and want to be part of something collective.
Ghetto Games has hosted Rap Battles for multiple years.
This year, because of our great success last year, our team was invited to host the whole Rap Project.
We imagined a completely new voting system:
- Not just for the jury, but for the audience as well.
- In past years, voting was done on paper.
- This year, it became a fully digitalized project.
The project has three parts:
- Selection
- Finals
- Bonus festival (with a bit different rules)
The voting system has already been used for Selection and Finals.
The Bonus festival will happen on July 18-20.
I am amazed that I was able to build and maintain it during these parts of the project.
🚀 What it does
This is a voting system that allows Jury and Audience to vote for Participants.
Results can be shown on a separate display for everyone to see.
Voting Modes
- Jury votes with a 3-point system for Participants:
- Energy
- Creativity
- Technique
- Audience votes for the topic of the rap battle.
- Audience votes for their favourite Participant from each battle round.
Features
- Combined Leaderboard
- Detailed Leaderboard
- Battle Statistics
Display Controls
Control what is shown on the big screen for the audience.- Hide Display: Shows the default 401 Voting System screen
- Topic Results: Shows live topic voting results with charts
- Participant Results: Shows live jury scores and rankings
- Combined Leaderboard: Shows overall scores from all completed battles
QR Code for audience voting
View Past Battles
Create New Battles
Manage Battle Status
Controls include:- Start Topic Voting
- Start Participant Voting
- Start Bonus Voting (Audience votes for favourite participant. Most voted gets +3 points, second +2, third +1.)
- Complete battle
🛠️ How we built it
- bolt.new + SupaBase only
- Base created within one week (project idea came just a week before)
- Selection round on 22.05.2025 gave insights for upgrades before the Finals 17.05.2025
- Used bolt.new prompts and custom code for unique parts
- SupaBase handled backend, counting, and data collection
- Added features between Selection and Finals (e.g., big screen visualizations, audience voting for favourite participant)
- System is now ready for 18.07.2025 bonus festival in Ventspils
- Next: Add 2 vs 2 jury voting for couples battles
⚡ Challenges we ran into
- Working with SupaBase was sometimes challenging (complex calculations, data collection, errors)
- Short timeline to make everything work
- Still potential for improvements and bug fixes
- Goal: Make it even more user-friendly
🏆 Accomplishments that we're proud of
- Everything went smoothly
- The whole team did a great job as hosts
- The system performed flawlessly during the live show
- Managed live backend operations while collaborating with video crew
- A team member won first place!
- Jury chose the winner by hand at the end—true team spirit
- New hosts, new rules, new system—handled like professionals
- The project is ongoing and has opened new opportunities for 401 Studio
📚 What we learned
If we work as a team, trusting each other’s skills, we can achieve so much.
- Built my first custom big system—on time and nearly perfect
- Maintained and fixed issues live during the event
- Gained deeper understanding of bolt.new’s power and potential
- Excited to build more amazing projects in the future
🔮 What's next for Voting System
- Next event: 18.07.2025, Latvia, Ventspils, GhettoGames Festival
- Plans to collaborate with other organizations (e.g., 371 for other rap projects)
- Potential to sell the system to other event organizers (sports, music, etc.)
- Interest from friends in BMX, Skate, MMA, Boxing events
- Possible future: Subscription-based project for broader use
Use ghetto2025 for admin panel password & 401401 for Jury password
Built With
- chart.js
- css
- date-fns
- framer-motion
- html
- javascript
- lodash.debounce
- lucide-react
- netlify
- npm
- qrcode.react
- react
- sql
- supabase
- tailwind-css
- typescript
- vite

Log in or sign up for Devpost to join the conversation.