← Projects
PWA · Leisure

Primavera Sound 2027 Pool

A betting pool among friends to guess the Primavera Sound 2027 line-up. Everyone picks 10 bands and one song by each; when the line-up drops, the app splits the points and the winner doesn't buy a single round all festival.

ResultA PWA instead of a spreadsheet and a chat
Rails 8HotwireSQLitePWACloudflare Workers

Every year, before the Primavera Sound line-up comes out, my group of friends bets on which bands will play. We used to do it in a WhatsApp chat and a spreadsheet, and we always ended up arguing about the maths. This app does the maths for us.

The app itself is in Spanish.

How it works

  • Everyone picks 10 bands they think will be on the line-up, plus one song by each.
  • You join one or more circles of friends through an invite link. You have a single pool entry, and it counts in every circle you’re in.
  • Inside a circle you can see everyone else’s picks and which bands are the most popular.
  • When the line-up is out, each correct band is worth 5 points, split among the people in that circle who picked it: get it alone and you take all 5; share it with one friend and it’s 2.5 each. Betting on a band nobody else chose pays off.

The interesting bits

A hand-built history. The app knows how many times each band has played Primavera Sound Barcelona: around 4,150 performances across 24 editions, from 2001 to 2026, gathered from Wikipedia, setlist.fm, Clashfinder and the music press. Names are compared normalised (no accents, case, punctuation or leading “The”), so The Cure and Cure, or Björk and Bjork, are the same band.

Band pages that fill themselves in. When someone adds a new band, a background job fetches its bio from Wikipedia, country and year from MusicBrainz, and a photo from Deezer, staying within each API’s rate limits. Autocomplete uses Deezer too, so it also finds bands that have never played the festival.

Scoring per circle. Because points are split among the people who picked the same band within each circle, the same person can have a different score in each one. Rankings are computed on the fly from the picks, so there are no stored scores to keep in sync.

A phone app without an app store. It’s a PWA: you install it from the browser and it opens full screen with its own icon. Rails 8 with Hotwire and SQLite, no JavaScript build and no Redis: one piece that’s easy to maintain.

It lives inside erisso.com. The app runs on Railway, and a Cloudflare Worker serves it under erisso.com/porras/ps2027 without touching this site, which is static.

For the admin

When the line-up is announced, you paste it into the admin panel: the app marks the hits, lets you fix by hand any names that didn’t match, and publishes the rankings for everyone.


Something similar for your business? Let’s talk →