🔗 Try it: studybuds.tech

Inspiration

Every intro class at Rutgers is like 300 people. Everyone says study groups help, but actually finding one is the hard part. You post "anyone wanna study for the midterm?" in the class GroupMe and get maybe two thumbs up and zero replies. And even if someone answers, they're in a different section, free at totally different times, or they cram the night before while you like to start a week early.

It's even worse if you're a first-year, a commuter, or an international student and don't really know anyone yet. We've both been there, so we wanted to build the thing we wished we had.

What it does

You tell StudyBuds what you're taking, and it finds classmates who actually fit you.

You can pick just a subject, or go down to your exact course and section. We pulled the real Rutgers course list, so you can search by course number, name, or the 5-digit index. Then it matches you on stuff that actually matters for studying together: when you're free, how fast you like to go, online or in person, which campus, introvert or extrovert. Every match also tells you why, so it's not just a random number.

Once you find people, you send invites, and they join if they accept. If you can't decide, Gemini can pick a group that balances each other out and write a rough weekly plan. There's also a mode that pairs you with people who are good at what you're bad at, and the other way around.

Inside a group you can:

  • set up study sessions at times that work for everyone (and add them to your calendar)
  • write code together in a shared editor, then download it as a VS Code project (made for our CS friends)
  • make practice quizzes from a chapter or your own lecture notes

The quiz part is our favorite. When you get something wrong, it doesn't just say "wrong, the answer is C." It tells you what you were probably thinking when you picked your answer, and which concept you should go back and review. There's also a group leaderboard, because a little competition helps.

After studying together you can rate your groupmates (anonymously if you want), and those ratings help with future matches.

The whole site works in English, Chinese, and Spanish, including what people write in their profiles and the quizzes. We have a lot of international friends, so this one mattered to us.

How we built it

It's a Next.js + TypeScript app with Tailwind, deployed on Vercel with a Turso (SQLite) database. Course data comes from the public Rutgers Schedule of Classes API.

The matching score is our own algorithm. It's mostly overlapping free time and study habits, with extra points if you're in the same course or the same section, and peer ratings nudge it up or down a bit. We use Gemini for the things rules can't really do: reading people's bios, putting balanced groups together, writing quiz questions and the "why you got this wrong" notes, and translating.

We also used Claude Code as a coding assistant to move faster. The ideas, the features, and how matching should work were ours.

Challenges we ran into

Honestly, the biggest one was Gemini being overloaded. Halfway through, the model kept returning "high demand, try again later" errors, and at one point we used up the free quota. So we switched to the faster flash-lite models, added retries, a backup model it switches to automatically, and a basic non-AI mode for matching, so the app doesn't just break. Quizzes now generate in the background, so you're not stuck staring at a loading button.

Making the site fully one language was harder than we expected. Translating the buttons is easy. Translating what users write and what the AI generates, without paying to translate the same thing over and over, took some work.

Also, deploying is never as easy as "it works on my laptop." Moving from a local database to the cloud broke things that had worked fine locally, and we had to debug that pretty late at night.

Accomplishments that we're proud of

  • It's actually live, and some of our friends have already signed up and made groups.
  • The quiz feedback tells you why you got it wrong, not just that you did.
  • It still works when the AI doesn't.
  • Three languages, all the way through.

What we learned

Finding a good study partner is less about being in the same class and more about having the same schedule and habits. We also learned that AI features need a plan B. And building for students who don't speak English as a first language changes a lot of small decisions you'd never think about otherwise.

What's next for StudyBuds

  • A view for TAs that shows which topics a section is struggling with most, based on quiz results
  • Trying it out in one actual course and seeing whether people in groups do better
  • Notifications, more campuses and semesters, and sharing quizzes between groups in the same class

Built With

  • drizzle-orm
  • fflate
  • gemini-api
  • google-gemini
  • libsql
  • monaco-editor
  • next.js
  • node.js
  • pinyin-pro
  • pwa
  • react
  • rutgers-schedule-of-classes-api
  • sqlite
  • tailwindcss
  • turso
  • typescript
  • vercel
  • zod
Share this project:

Updates

Submission history