Stray Sender — Roast responsibly 🔥😇

Tagline: Friendly fire, not collateral damage. Stray Sender scores your playful roasts with AI, keeps them wholesome, and crowns the wittiest with a live leaderboard.

Inspiration

Group chats are 90% memes, 10% roasts, and 0% quality control. We wanted a space where teasing is fun and safe—where the best bars rise and the mean stuff gets benched. Enter Stray Sender: send your “strays” (playful jabs), let AI rate the spice, and watch the crowd react.

What it does

  • AI Roast Meter: Every stray gets a 0–100 score across Wit, Wordplay, Spice, and Vibe.
  • Leaderboard: Rankings update with AI scores + community reactions (🔥, 😂, 🤝).
  • Battle Bars UI: Comic-book vibes, pop-out bubbles, and zippy motion.
  • Replay & Share: Counterattack strays

How it works (under the hood)

Frontend

Built using React Native, we have designed and made our own custom UI inspired by the Persona 5 series and reflecting the playful vibes of our app. We also utilize Expo for testing and deployment to our devices, as well as handling all the assets we needed.

Backend

REST API server using Django and Django REST Framework, with an SQLite DB, combining simplicity with the ability to scale to full relational DBs later.

Key Technical Point: Ranking Algorithm

Each stray is scored based on 3 components: how well it scores against a prompt, how well it scores based on the previous messages in the thread, and the user reactions. First, the prompt score is built by asking the Cohere Command A model to generate a targeted ranking query based our criteria of what a good stray is depending on its content. Then, the query is fed to the Cohere Rerank 3.5 model to rank all of our messages based on their content quickly. As for thread-based ranking, we re-run the reranking model on every message, providing the message's associated thread's previous messages as the query, biasing the score depending on how good the message fits. Finally, the user reactions are passed into a logarithmic scoring function and added to the score.

Tech we used

  • React Native (Expo)
  • Django
  • Cohere Command A & Rerank
  • SQLite

Challenges we ran into

  • Funny ≠ Mean: Tuning the rubric so clever snark passes while low-effort insults get bounced.
  • Having to give up on our other epic million-dollar ideas and choose a project
  • Dividing the work and ensuring that we remained aligned throughout the process
  • Figuring out how to do ranking at all
  • Battle Bars? or Stray Sender? :P

Accomplishments we’re proud of

  • Coming up with the ranking system and algorithm
  • The UI design!!!
  • First time making a mobile app for all of us

What we learned

Everything about developing a full-stack app, from user flow to writing and using APIs, from designing elegant interfaces and interactions from the database all the way up to the frontend. Also, building complex AI pipelines with big datasets beyond just feeding into a prompt.

What’s next

Features

  • Duels & Rooms: 1v1 roast battles and themed rooms (e.g., “Dad Jokes Only”).
  • Creator Badges: seasonal trophies for top stylists (wordplay, rhyme, crowd favourite).
  • Stray Wrapped: think your yearly Spotify report, but about strays

Technical

  • Staged Ranking: First conduct a ranking using a purpose built, less accurate but less computationally expensive model to filter out everything except ~top 100 messages. Then run a fine tuned rerank using current algo on them.
  • Friend Groups: Limit visibility of messages only to a certain network of friends.

Spin up Stray Sender, drop a friendly bar, and see if you make the board. Roast smart. Roast kind. Send strays, don’t stray. 🫡

Share this project:

Updates