Inspiration
Every time we study together, there's that one friend who "just checks one thing" and three minutes later is showing the whole table a Tung Tung Tung Sahur edit. Then someone else laughs, someone else pulls their phone out, and the study session is over without anyone deciding it.
One of us timed it during midterms. We sat down to study at 7, and by 7:20 we'd done maybe ten minutes of actual work. Nobody was trying to slack off. The phone was just always there.
Then we found the research. Gloria Mark at UC Irvine has been measuring how long people stay on one screen before switching. In 2004 it was about two and a half minutes. Now it's around 47 seconds. Almost half of US teens say they're online "almost constantly." And after you get interrupted, it takes over 20 minutes to get fully back into what you were doing.
As students, we understand and relate to the problem, and we want to find a way to keep us from picking up the phone constantly. Screen-time apps didn't work for us because they're private: you get a little notification, you swipe it away, nobody knows. So we asked: what if slipping wasn't private?
What it does
Buzzkill is a study game for friends. Everyone joins on their phone and puts their phone face down around the brick, a Raspberry Pi with a touch pad and a Bluetooth speaker.
If you pick up your phone, the website catches it with your phone's motion sensor, and the brick calls you out by name, out loud, with an AI-written roast based on your actual stats. The only way to shut it up is to shake your phone for 10 seconds, in front of everyone. Slip again and it's 30 seconds, then a full minute.
There's also a rivalry layer:
- Ghost race: you race your nemesis to the end of the focus block, and every pickup knocks you back.
- After the game: you get badges like "Revenge on Sam" or "3 in a row."
- Leaderboard: it tracks who's the most focused, who folds fastest, and who your study buddies are.
Breaks are built in with a pomodoro your group votes on, so you can check your phone guilt-free when it's actually break time.
How we built it
We started by arguing about the idea at a whiteboard, mostly about how mean the roasts should be.
- Website: plain HTML and JavaScript on Vercel. It uses the phone's accelerometer: when your phone lies face down we remember which way gravity points, and the moment it tilts away, that's a pickup. Leaving the page counts too.
- Backend: Supabase. The database is the referee: phones only report what happened, and a Postgres trigger decides pickups, shake time and winners, so nobody can cheat from their phone.
- Roasts: Gemini writes them from your real stats, and ElevenLabs gives them a voice.
- Hardware: a Raspberry Pi 4 with a Grove touch sensor and a JBL Go 3 over Bluetooth. One tap gives the PIN and who's joined, a double tap starts, a triple tap ends the game and announces the winner. We connected the backend to the hardware to ensure real-time updates.
- The bee: we built Buzz in 3D with three.js and made him follow you around the site.
Challenges we ran into
- The UI: it got buggy because we kept adding things. Every time something worked, we wanted three more features on top of it.
- The Raspberry Pi image: it was weird, and getting everything to start on boot took longer than we'd like to admit.
- The NFC board: we spent way too long debugging it before finding out it ships with no antenna. The Pi could read and write it perfectly; no phone on earth could see it. NFC stickers saved us.
- The LCD screen: it showed nothing but broken lines because it needs 5V and the Grove hat gives 3.3V.
- The JBL: pairing kept saying "Device not available" until we figured out you have to pair while it's still scanning.
Accomplishments that we're proud of
- The brick works. You tap it, it talks, and it roasts people in a real voice.
- Hardware Integration. We have the backend up and running and connected to the raspberry pi to play the speaker in real-time.
- The website is live and logins work, with Google, email and guests, and it's locked down so players can't edit their own scores.
- Buzz: a cute 3D bee buzzing around the screen that you can grab and spin.
- The first live bust using Gemini and 11Labs: the first time it worked for real, our friend picked up their phone, the brick said their name, and the whole table lost it. That's when we knew the idea worked. You'll see.
What we learned
- Security: how to build a website that's actually safe for everyone to use. Row-level security, letting the database be the referee instead of trusting the phone, and escaping usernames so nobody can sneak code in.
- Hardware: it humbles you fast. Read the datasheet before you spend two hours debugging.
- Attention: the research changed how we see it. Our ability to focus isn't broken; our surroundings are built to pull us away, and you can't beat that with willpower alone. Changing the table you study at works better.
What's next for Buzzkill
We want to get it out as a study tool for everyone, starting with our own campus:
- Bricks in libraries and study rooms.
- Dorm-vs-dorm seasons.
- Real stakes: the payout math for putting SOL on the line is already built; the on-chain part is next.
If 47 seconds is where we are now, we'd like Buzzkill to be one small reason that number goes back up.
Built With
- claude
- elevenlabs
- gemini
- html
- javascript
- plpgsql
- python
- raspberry-pi
- ssh
- supabase
- three.js
- typescript
Log in or sign up for Devpost to join the conversation.