PFML Back to the site

What this site can do

Everything from our Music League, all in one place. Here's what you can see and do.

Tap a section below for the details.

Season pages

One page per season, from the season button in the top bar.

Season Standings

  • First thing on the page. Even closed, it shows the top three and their points.
  • Tap Show all for everyone's points, plus their average, rounds won and top-3 finishes.
  • Players on the same points share a place, shown as T1, T2 and so on.
  • A Daily Double bonus shows under the player's name, with the track it came from.

Tap a name to focus on it

  • Open Season Standings and tap a name to focus on that player: best and weakest track, biggest fan, who's hardest to win over, and how they vote.
  • Tap more names to compare them side by side, with a head-to-head count of who placed better.
  • Pick exactly two to see how each one rates the other.
  • The rest of the page follows your pick. The Season Standings bar shows who you've picked, even closed: tap a name there to drop it, or Clear all.

Results by round

  • Right under the standings. Even closed, it shows the latest round, who won it and the newest album art.
  • Tap Show all for a card per round, newest first, with the winning album art, who won (or who tied), and how many votes and comments came in.
  • Tap a card to open the whole round on its own page.
  • With names picked in Season Standings, you only see the rounds they entered.

Getting around a season

  • Each season page opens with Season Standings, then Results by round.
  • The row of links under the top bar jumps straight to any section.
  • Sections with nothing to show yet are left out of that row.

The season in numbers

  • Awards for the season: top track, most divisive track, closest round, biggest fan, coldest shoulder, boldest voter and more.
  • When there's a tie, the card says who else shares it.
  • Tucked away while you're focused on a player, since they're about everyone.

Trend chart

  • Three views: everyone's place after each round, how close each player is to a perfect run, or total points.
  • Tap names above the chart to add or remove people, or use Select all and Clear.
  • Or pick groups: You, Front and Back of the pack, Biggest rises and falls, Most volatile, Steadiest, and everyone who's Been #1. Pick more than one to see them together; a line under the buttons says who's in each and why.
  • Tap a line to hide that player. On a computer, point at a dot to see the round and the number.
  • Shows up once a season has two rounds.

Top tracks

  • The season's 20 highest-scoring tracks.
  • Tap a title to play it in Spotify.
  • Tap an artist or album to search for it in Spotify.

Who likes whose taste

  • How many points each voter gives each person's songs a round, on average. Everyone has the same points to spend, so an even split is about 1; more than that is a fan.
  • In the grid, darker squares mean more points a round.
  • The league's five strongest and five coldest pairings, at a glance.
  • The five most lopsided pairings: who gives someone's songs far more than they get back.
  • On a phone, it opens on you: how you rate everyone, and how everyone rates you. Pick anyone else from the menu.
  • Focus on one player for two lists: how they rate everyone, and how everyone rates them.
  • Fills in after a few rounds of voting.

Voting style

  • Everyone gets the same points to hand out each round. This shows how each player spends them.
  • Their average biggest bet, how many tracks they back, and how often their top pick won the round.
  • On a phone, swipe the table sideways; names stay put on the left.

Comment stats

  • Awards like most likely to comment, wordiest, tersest and most SHOUTING.
  • A table with a row for each player: how often they comment, how long, and how many ! ? and CAPS. On a phone, swipe it sideways for every column.
  • Each player's signature word: the one they reach for more than anyone else.
  • The season's longest comment, in full.

Repeat artists

  • Artists who've been submitted more than once, with a count.
  • Tap one to find them in Spotify.

Round pages

Every round gets its own full page. Open one from Results by round on a season page, or, for a round played on the site, from the Submit page once it closes.

The whole round, full size

  • The prompt, the date, who won, and the round's playlist, all at the top.
  • Jump to any round in the season from the dropdown at the top, step to the previous or next round, or go back to the season.
  • Counts of tracks, votes and comments for the round.
  • A recap at the top: the winner and by how much, the most talked-about track, the one with the broadest support, and the biggest single vote.
  • Each round has its own link, so you can send another member straight to it. If they need to sign in first, they still land on that round.

Listen to a round

  • A round played on the site gets its page the moment submissions close, so you can listen before the results are in. The page stays up after the round ends.
  • Every track, shuffled once in the same order for everyone. The order has nothing to do with who sent what, or when. Each shows its length, and its album and year where Spotify knows them, and the top of the list gives the whole round's length.
  • Soon after, the round also becomes a Spotify playlist and a YouTube playlist, in that same order, below the list. Open in Spotify and Open in YouTube open the whole round in that app. A track that isn't on one of them is marked.
  • On a computer, Play the round plays every track in order, moving from Spotify to YouTube to SoundCloud by itself, with previous, pause and next. Each track has a play button: tap one to play from there, and tap the one playing to pause it.
  • On a phone the player starts on the YouTube copies (the same track, or the closest one), because Spotify only plays 30-second previews there. You can switch back in the Play menu. On an iPhone, tap a track and it plays; the round then plays on by itself while the screen is on.
  • Shuffle mixes the list up just for you, and the player follows it from top to bottom. Whatever's playing moves to the top and keeps going. Original order puts it back the way everyone first saw it.

Track by track

  • Every track in finishing order, with its album art, place, points and how many people voted for it.
  • Tap the title to play it in Spotify.
  • Who submitted it, and their note about it if they left one.

Every vote and comment

  • Everyone who voted for a track, with their points, biggest first, each name on its own tinted strip so you can see where one voter ends and the next begins.
  • Their comment in full, in big, easy-to-read text.
  • A comment or note written in another language shows its English translation underneath, marked as a translation.
  • As you scroll through a song's comments, a slim bar with that song stays pinned at the top, until the next song's comments take over.
  • People who commented without giving points come last, with a grey 0.
  • Filter the round by who submitted each track, by who wrote the comments, or both. Tick the names you want, or use Select all and Clear all.

Join the conversation

  • Vote any comment up or down.
  • React with one tap on 🔥 😂 💯 👀 😬 or ❤️, or tap More to browse almost 2,000 more emoji by category or search them by name. On a computer, point at a reaction to see who left it.
  • Reply to a comment from the speech-bubble button, which shows how many replies it has. Replies read like a chat; send with the arrow, or Ctrl+Enter (⌘+Enter on a Mac). Delete your own.
  • Other members see your replies and reactions with your name. Votes only show as the comment's score.

Home, All-Time & you

Getting in, finding your way around, the all-time view, profiles and your inbox.

Season cards

  • One card per season on the Home page: rounds, tracks, players and who won.
  • The season in progress shows who's leading, its latest finished round, and that the next round is underway.
  • If there's a tie, it names everyone who shares the lead.
  • A What's new on the site button at the top of Home opens this page, and says New when something has been added since you last looked here, on that phone or computer.
  • From the vault: a past round's winner, picked at random each time you open Home, with the submitter's note and a comment from whoever backed it most.

Submit your track

  • When a round is open on the site, a banner on the Home page says so: how many players have submitted (like 7/20), when submissions close, and whether you're in yet. The Submit page shows the prompt and the deadline too.
  • Once a round closes, the same spot on Home says so, Playlist ready once its playlists are built, and takes you straight to the round's page to listen, until its results are in or the next round opens.
  • Who's in: the Submit page shows who has submitted and who's still pending, with everyone's avatar. It never shows which track is whose. Players who haven't joined the site yet are marked.
  • Search Spotify or YouTube right there: pick the service, type the song, press Enter, and tap a result. Or paste a Spotify, YouTube or SoundCloud link instead. SoundCloud's button opens SoundCloud's own search, to copy a link back.
  • Your pick plays right there, so you can check it's the right recording before you send it.
  • Before you send it, the page says if it repeats something already in this round: the exact track, the same song, a song with the same title, or the same artist. It never says which track or whose, and it only knows about tracks sent on the site. The Estimated League Sentiment gauge counts it too.
  • In a season played on the site, voting happens here too (Vote on the site, below). Season 3 votes in Music League, as usual.
  • In a season played on the site, each player is a DJ, who sends tracks and votes, or a Spectator, who only votes. It can change from round to round. As a Spectator the Submit page says so instead of showing the form, and Who’s in counts the DJs and lists the Spectators apart.
  • When a round names who wrote its prompt, it says so under the prompt, on the Submit page and the round’s own page.
  • A season played on the site schedules its rounds ahead: Coming up, on the Submit page, lists the next ones and when each opens. Each opens on its own.
  • Some seasons ask for more than one song a round. Each one you send shows on the Submit page with its own Remove, and you're in once they're all in.
  • Change or withdraw your track any time before the deadline.
  • Some rounds take only some services: the page shows just those.
  • In a round voted on the site, add a note with your track. It shows once the results are posted, with your name. Switch on “Show it to voters while they vote” and voters see it with the track while they vote, without your name. You can change both until the deadline.
  • Some rounds won't take a song, or an artist, that's already in them. The page says so before you send it.
  • Nobody, the admin and commissioners included, can see who submitted which track. Once the round closes, the Submit page sends you to the round's own page to listen, and to vote in a season played on the site (Round pages, Listen to a round).

Vote on the site

  • In a season played on the site, once a round's submissions close, everyone with a track in it votes on the round's own page, and so do the round's Spectators, right in its track list: play a track, give it points and comment on it in the same row, as it plays.
  • A Spectator has no track of their own, so every track is theirs to vote on. Their points count like anyone's.
  • Some rounds hide their prompt, and who wrote it, from Spectators until voting closes: the round shows as “Round 3”. A Spectator guesses the prompt from the tracks and picks its writer from the round’s DJs, above the list. The guess locks when they submit their ballot.
  • When voting closes, Claude scores each prompt guess from 0 to 5 by how close it came, and the right writer earns 3. The results show every guess, its points and why.
  • Spectators earn podium points: each point they gave a round’s winner earns 3, 2nd place 2 and 3rd place 1. They show under the round’s results, and add up in Spectator Standings under the season’s standings.
  • Give your points with − and +. A bar at the bottom shows how many you have left. You can't vote for your own tracks.
  • Your points and comments save on their own as you go, to your account, so you can leave the page, or switch between your phone and your computer, and pick up where you left off. Save saves right away.
  • Submit, once every point is given, is the ballot that counts.
  • Shuffle the list, or put it back in the round's order: your points and comments move with their tracks.
  • Some seasons give downvotes too: press − below 0 on a track. They're optional, up to the season's limit.
  • Every track has a comment box ready to type in, your own included, with or without points.
  • Change your ballot and Submit again any time before voting closes. Everyone sees how many have voted and who hasn't yet, never how anyone voted.
  • The Home banner says when voting is open, when it closes, and whether your ballot is in, and takes you to the round's page.
  • When voting closes, the results, under the round's list, show every track, who sent it and its points, ranked. Tap a track for each voter's points and comment. A player who didn't vote keeps only the downvotes they got that round (0 without any), if the season says so.
  • Some seasons close a round early once everyone's in, or everyone has voted, so results can come sooner.
  • Finished rounds count in the season and all-time stats like any other.
  • The voters' lounge, under the round's list: once you've submitted your ballot, you're in, with the others who have, while voting is open. It opens once 3 people have voted.
  • In the lounge everyone's an instrument for the round, like Kazoo or Theremin, the same all round. Nobody can see who's who, the league organizer included, then or ever.
  • One message every 24 hours, up to 280 characters, and the lounge shows when your next can go. React to messages with the six emoji as often as you like.
  • When voting closes the lounge locks, and every member can read it under the results.

Repeat checker

  • Has it been submitted before? Type an artist, song or album and see every past submission that matches, newest first, as you type.
  • Each one shows its round (tap to open it), who submitted it and where it placed. Any version of a song counts.
  • Paste a Spotify link to check that exact recording, other versions of the song, and more by the artist. Paste a YouTube link and it names the video and shows how the league is likely to feel about it.
  • Pick the exact track from the Spotify matches and the Estimated League Sentiment gauge shows how much the league is likely to care, from green to red, and why: the same artist this season, another version of a song, a cover, an exact repeat, and so on.
  • The Submit page shows the same gauge for the track you pick or the link you paste, before you send it. It spots a song already submitted on another service too, like a YouTube upload of a track first submitted from Spotify.
  • It covers finished rounds. Find it in the menu under your initials, or from the Submit page.

All-Time League Stats

  • Open it from All-Time in the top bar, or its card on the Home page.
  • All-time standings by Career Score: points per round played (as a typical season's worth, so missing a season doesn't count against you), plus a bonus for finishing 1st, 2nd or 3rd in a round and on a finished season's podium. The columns show each part, so every score adds up.
  • Players are scored once they've played 10 rounds.
  • Tap any column heading to sort by it. Tap again to flip the order.
  • On a phone, swipe these tables sideways to see every column; the names stay put on the left.
  • Tap a player's name to open their profile.
  • League Highlights: the highest Career Score, most round wins, most podiums, best single season, and the Tastemaker, whose biggest vote of a round most often went to the winner.

Profiles

  • Every player has a profile: Career Score and where it ranks, with how it adds up, then total points, rounds won, how often their tracks make a round's top 3, tracks submitted and points given.
  • How they finished each season, their five best tracks, their biggest fans and whose tracks they give the most points to.
  • Votes most like them: the players who tend to back the same songs, in the rounds they've both voted in.
  • Their comment stats, signature word and longest comment, plus how many reactions their comments have had.
  • Open yours from the menu under your initials. Switch to anyone else from the list at the top.
  • Tap a player's name almost anywhere on the site to open their profile: round pages, highlights and awards, tables, top tracks and quotes. In Season Standings, tap the row to focus on them, then their name at the top of that panel.

Inbox

  • The tray icon at the top right lists reactions and replies other members leave on your vote comments, newest first.
  • A number on it counts what's new since you last opened it, on any device.
  • Tap an item to jump straight to that comment on its round page, with the replies open.

Comments, all-time

  • All-time titles like most talkative, most terse and most SHOUTING, and the per-player table, across every season. Tap any column heading to sort it.
  • Everyone's all-time signature word.
  • Comment awards, each quoting the comment itself: the longest ever written, the shortest review, the loudest, the most excited, the most questions, the most emoji, and the most words for zero points.

Playlists

  • League-wide and per-season playlists, as tiles on the Home page: every track submitted, and the podium tracks. They open in Spotify (the ↗ in the corner).
  • Each tile shows how many tracks it has and how long it runs. The biggest ones say "about", since their running time is an estimate.
  • Playlists that aren't built yet say "Coming soon".

Getting around

  • The top bar has Home, one button for the seasons, and All-Time.
  • The season button names the season you're on, or the one in progress. Tap it for every season, newest first.
  • A dot marks the season that's in progress.
  • Tap PFML at the top left to get back Home from anywhere.
  • Put PFML on your phone's home screen and it opens like an app, full screen with its own icon. On a phone, the Get the app button in the top bar (or Add to home screen in the menu under your initials) does it: on Android in one tap, on iPhone by showing you where to tap. You sign in once inside it. Opening it shows a short splash, the record turning, while it signs you in.
  • Announcements from the league's commissioners show at the top of Home for a week.
  • Notifications: tap the bell in the top bar, next to the inbox, to turn them on for that phone or browser. Your phone then tells you when a new round opens, when a round's playlist is ready, when someone replies or reacts to one of your comments (tap it to open your inbox), and when the commissioners post an announcement. The bell has a switch for each, so you get only the ones you want, on every device you turn on. It shows a slash while they're off on that device, and you can send yourself a test. On iPhone they work in the installed app.
  • Dark mode: turn it on or off with the switch in the menu under your initials. The site starts light, and remembers your choice on that phone or computer.

Signing in

  • The site is for league members only. You sign in with Google.
  • The first time, use the personal invite link from the league organizer. It connects your Google account to your player, once.
  • Google asks which account to use every time you sign in. Picked the wrong one? The card that says it isn't linked has Use a different Google account, which takes you straight back to the choice.
  • Your initials sit at the top right. Tap them for Submit a track, Repeat checker, My profile, Site features (this page), Add to home screen, Dark mode and Sign out.

What the badges mean

The same colours and marks, wherever they show up.

This season is in progress. On the Home page its card says Live.
T2
A shared place: these players are tied on points.
★ 1st2nd3rd
Gold, silver and bronze mark 1st, 2nd and 3rd, in a round and in the standings. "· tie" or a T means the place is shared.
Daily Double
This track counts twice toward its submitter's season total. In Season 3, each player can ask for one, once per season, in their note when they submit.
−2
A downvote: points taken away. Only seasons that allow downvotes have them (so far, Season 1).
0
A comment that came without any points.
No album art was found for this track.
In the taste grid, darker means more points a round.

How it's built

Built with Claude Opus 5.5, in Claude Code. Counted at the last deploy, .

Commits
183
Lines of code
43,676
Tests run on every deploy
930
Deploys
161
Daily security checks run
11
Lines in the README
3,683
Lines in CLAUDE.md
637
Lines in the changelog
2,632