Case Study - Your music taste gives you away.

Quem Botou Essa? turns the call’s playlist into a file of suspeitos. A realtime music party game on the web and in a native SwiftUI client, connected to the same room.

Client
Quem Botou Essa?
Year
Service
Product design, web and iOS development
Quem Botou Essa? landing page with an amber stage, room creation and entry by code

Overview

One playlist. A room full of suspeitos.

In Quem Botou Essa?, 3 to 12 friends on a call pick songs in secret. In Classic mode, each preview plays for 30 seconds: the group points at a suspeito, but only learns who is culpado at the reveal.

A correct guess earns one point. The person who picked the song earns one per correct guess — but zero if everyone gets it right. Dixit-style scoring rewards a choice that says something about you without giving everything away.

  • Quem Botou Essa?
  • Realtime room
  • Web + native iOS
  • Motion + Motion+

Process

From the call to a file of suspeitos.

Rules, identity, sound and presence work together. Each phase has a purpose: join, choose, listen, accuse and find out.
01

Playful noir

A near-black stage, an amber spotlight and cream cards with riso grain. Coral for the verdict, acid lime for the vote. Bricolage Grotesque, Geist and Geist Mono give the file its voice.

02

One shared room

Convex holds picks, votes and scores. Live presence and reclaiming a seat with the same nickname let returning players keep their song and accumulated score.

03

The game in a browser

Next.js 16 takes the group from the lobby to Apple Music search, from a preview to a guess. A song’s owner only reaches the clients at the reveal.

04

A native SwiftUI client

The iOS app uses convex-swift to join the same room as the web. Creating, choosing, voting and following the reveal all use the same game state.

05

Time becomes vinyl

The record’s ring drains the 30 seconds. The needle lifts when voting closes; the next record drops in. Motion and Motion+ choreograph the carimbo, titles and scoreboard reordering.

In the browser

From the first song to the last carimbo.

Captured from a real Classic round with three players on one local backend. Album artwork colors the stage; the suspense ends with the culpado carimbo.
Quem Botou Essa? landing page with the brand and forms to create or join a room

Open the room

Lobby with Mello, Bea and Gui lined up on suspeito cards

The suspeito lineup

Song search with artwork, a preview and confirmation of a secret pick

Pick in secret

Houdini artwork on the vinyl timer with instructions for the player who picked the song

Time on vinyl

Song owner revealed with the culpado carimbo and the players’ guesses

The culpado carimbo

Cumulative scoreboard after a round with three players

Who acertou?

Mobile web · native iOS

The same room, in your hand.

The screens below show the web at 390 × 844: lobby, vinyl and reveal. The composition rearranges to keep the suspeitos and voting within reach of a thumb.

The native client is built in SwiftUI on the same Convex backend. Web and iOS players join together; the app plays audio with AVPlayer, pauses in the background and resumes at the current point in the turn.

Mobile web lobby with three suspeito cards

Suspeitos in your hand

Mobile web turn with vinyl, countdown and suspeito choices

Vinyl on a phone

Mobile web reveal with album artwork and the culpado carimbo

Verdict on a phone

Stack & rules

Convex holds the room. Music keeps the time.

Numbers from the game’s rules and identity: room capacity, Classic preview length and the cast of avatars.
Players per room
3–12

Friends on the same call, on web or iOS

Seconds per preview
30

The vinyl ring counts down in Classic mode

Illustrated suspeitos
19

An original cast shared by web and iOS

Live game
Open a room →

who-put-that.mellofattura.com

Technologies

  • Next.js 16
  • Convex
  • Motion
  • Motion+
  • Apple Music API
  • SwiftUI
  • convex-swift
  • Vercel

Convex owns authoritative state, transitions and presence. Next.js 16 and SwiftUI are clients of the same room. Search uses Apple Music API in production and iTunes in local development. Motion and Motion+ set the pace on the web, hosted on Vercel.

More case studies

A course platform for building with AI, still in the studio

Mellofattura’s course platform: build real digital products with AI, from prototype to publication, lesson by lesson. Two courses are live; more are in production.

Read more

Curated agent skills for iOS UX and accessibility

A research-led skills framework that started as a Mackenzie TCC, shipped as an open agent plugin, and is now a Springer-accepted workshop paper, with Camera Ready underway for JIIHC 2026 in Chile.

Read more

Tell us about your project

Where we are

  • São Paulo
    São Paulo, SP
    Brazil