PocketPairings
Log in
New privacy rules: player names are now shortened by default to first name and initial (“Ash K.”), Juniors and Seniors to initials. Have an account and want your full name next to your results? Switch it on in your profile. Show my full name

Changelog

What changed on the site and in the app, newest first.

Website

Released continuously, so these are dated rather than numbered.

8 October 2026

Added

  • The site speaks your language. Everything except the admin area is now in English, Dutch, French, German, Spanish (Spain and Latin America) and Portuguese (Portugal and Brazil). The site picks your browser's language; the globe in the header changes it, and when you're signed in your choice is remembered for mail and notifications too.
  • Sign-up questions. Organizers can ask their own questions when you sign up — at a prerelease, which language your kit should be. An option that's fully booked can't be picked while another still has room; once everything is taken you can still pick one and join the waitlist with it. You can change your answers until sign-ups close, and each family member answers for themselves.
  • Show my full name and results. A new, unticked box when you sign up, and a setting in your profile. Without it you appear as first name and initial ("José O."); with it, by your full name. For a family member, you decide as their parent or guardian.
  • Not on PocketPairings but played an event here? At /privacy/opt-out you can ask us to stop showing your name; every event page then shows "Player" with a number instead.
  • An organizer FAQ on what the desktop app does with your tournament file and what players see.

Changed

  • Players without an account show by a shortened name: first name and initial in Masters, initials only in Juniors and Seniors. We no longer keep their full name or Player ID — only what we show.
  • Existing accounts show the shortened name too until you tick "Show my full name and results" in your profile. Nothing else about your account changes.
  • Linking a Player ID to your account no longer asks for a matching name and birth year. If the ID is already linked to someone else, contact support.
  • During maintenance the site shows a "Back shortly" page that reloads itself when we're done.

4 October 2026

Added

  • Download your data. Under Account in your profile you can now download everything we hold about your account and your players as one file.
  • Delete your account yourself. Also under Account. Your login, email, decks, teams and follows are gone straight away. Results of events you played stay with those events, but without your account, your birth year or your published lists.

Changed

  • Junior and Senior players show as first name and initial — "Robin V." — in public standings, pairings, sign-up lists, revealed lists and competition standings. A young player who switched their own player page on keeps their full name.

  • Signing up asks your date of birth (only checked, never stored) and for you to agree to the terms. Children under 13 are added by a parent as a family member, as before. Signing up with Discord asks it too.

  • Fonts now come from our own server, so opening a page no longer contacts Google.

  • The privacy policy now lists every service we use, how long we keep what, and what is public about minors.

  • Accounts with a child under 13 as their own player — from before you could add family members — are paused until a parent or guardian confirms through a link we email. Confirming moves the child to a family member; nothing is lost.

Fixed

  • Signing in with Discord no longer links to an existing account through an email address Discord hasn't verified.
  • Deleting an account no longer deletes the match results it reported.

28 September 2026

Added

  • Waitlists. When an event with a player cap is full, signing up puts you on its waitlist instead of turning you away. The event page shows the players and the waitlist side by side, and your place in line. If someone withdraws while sign-ups are still open, the first person in line gets the spot automatically, with a notification and an email. Raising the cap does the same. You can already hand in your decklist or team sheet from the waitlist, so it is ready if you get in, and your waitlisted events show up under My events. Organizers see the waitlist on the sign-up list and can let anyone in by hand, even over the cap or after sign-ups have closed, right up until the event is linked to TOM.
  • A proxy printer, under More → Tools. Add every card of one of your saved decks in one go, or search for cards and add them one at a time, then print them nine to an A4 page at real card size, in colour or black and white. You can leave a small gap between the cards to make cutting easier. Click a card on the sheet to take it off again. No account needed; signing in adds your saved decks.
  • Editors can fix an article themselves. Instead of sending a submitted article back with a note, an editor can make the changes (a spelling pass, say) and hand it back. The writer sees exactly what changed, word by word: struck through in red, added in green. They can accept it, which publishes it straight away, or keep editing and send it again.
  • A Card button in the article editor: search the catalog and drop a single card into your article as its picture, linked to its page.

Changed

  • Writers can read their article while it is waiting for review. Until now a submitted piece had no link at all; it now opens exactly as it will look once published.
  • A decklist in an article, as text or as a picture, now lists the cards in the same order as the deck builder and the deck page: evolution lines together, Supporters before Items. It used to be alphabetical.

Fixed

  • Linking a Player ID that already belongs to another account now tells you so, with a way to contact support. Before, the profile page reloaded without saying anything, and the same was true of the form's other refusals (numbers only, or details that don't match).
  • The article editor's toolbar stays on screen on a phone when the keyboard opens, instead of scrolling away with the page.

22 September 2026

Added

  • Your notifications, and a switch for each kind. Everything the site pushes to you now also waits in a list under your account, so a pairing you swiped away is not lost. Each kind can be turned off on its own — pairings, match results, event and decklist reminders, judge requests, new events at a store you follow, and a nudge a week before one you have not signed up for. Push used to be one switch per browser: all of it, or none of it mid-round.
  • A map of stores, with the list beside it — and you can now follow the ones you actually play at, from the map or from the list. They sit together on your following page, unfollowing works from either side, and the site can tell you when one of them puts a new event up, or a week before an event there you have not signed up for.
  • Modules can be bought. Every feature module has a public page at Modules saying what it does and what it costs per month or per year, readable without signing in. A store owner can subscribe from the portal, pay by card, and finds Billing in the nav: what renews when, every invoice as a PDF, and a mail before and after each payment. Stopping a module leaves it switched on until the period already paid for runs out, and a store can be given a module free until a set date, so a trial ends by itself.
  • Every Pokémon TCG card, under Cards in the More menu: searchable by name, category and energy type, browsable by set, with a page per card that says which formats it is legal in and why not when it isn't — no account needed, and every search is a link you can share.
  • Events can be browsed as a calendar: a View switch swaps the list for a month grid of the same search, with an agenda under it. Months flip without reloading the page, and each one is its own link you can bookmark or share. The list itself can now be narrowed to today, this week or this month — calendar windows, so "this week" means the same week whichever way you are looking — or to a single league.
  • Tickets and money at the door. An organizer can put a payment link on an event — their own shop, payment provider or bank page — and a player with a spot gets a Buy your ticket button, with a note that the place isn't final until the entry fee is marked paid. At the desk, the Paid badge on the sign-up list is now a button that can be ticked and unticked, and it keeps working after the event has gone live.
  • More for a judge with only a phone. Record a penalty at the table — what it was, which round, what happened — and see what that player has already been given, including penalties typed into the desktop app, so a second warning is recognisable as one. The deck-check roster lists every player and says whose list is still missing, with a name search and a "still missing" filter, and it is on the registration page too, so lists can be checked before the event goes live. And one table can be given extra time — 2, 5 or 10 minutes, or a number you type — with its new deadline shown next to it, and takeable back.
  • Event pages show how far along a tournament is — "Round 3 of 6" — while it is being run, worked out from the official Play! Pokémon round tables.
  • A room display for a live event. A button next to the round timer fills the screen with that round's pairings on one half and a big round clock on the other, paging through the tables when there are more than fit. It survives a reload, so it can be set up on the wall and left alone.
  • The event's QR code has a page of its own — the event's name, store, date, address and the code, big enough to show to the room from a screen or a projector, with a print button that keeps itself off the paper. Until now it could only be printed.
  • A player can ask to be dropped from an event, once that round's match is settled — including a round they had a bye in. The request shows as pending until the organizer actions it, and it cannot be taken back on the site, the way a paper drop slip cannot be taken back off the desk.
  • Articles, under More: written pieces by writers the site appoints, which reach the public page only once an editor has approved them. An article can carry one of the writer's saved decks — as the list itself or as a picture of the cards — and the list stays copy-pasteable back into the deck builder.
  • A changelog page, under More: what changed on the site and in the desktop app, newest first, with the latest desktop version badged so you can see whether yours is behind. Releases were only ever announced in the Discord before.
  • A More menu in the header, so the row stays short as the site grows. Stores, Leagues, Leaderboard, Cards, Modules, Resources, the changelog and the guides live in there, and it works on a phone, where several of those pages previously had no link at all.
  • Site-wide notices: a strip under the header for anything worth telling everyone, with an optional window so it takes itself down again.
  • A resources page: apps to install, rules to read, sheets to print.
  • Duplicate stores and players can be merged into the one that survives, without losing what was recorded against either.
  • The front page counts the paper the site has saved: every result reported on a phone, and every decklist and team sheet handed in online rather than printed.

Changed

  • The judge panel is behind tabs — timer, disputes, results, penalties, lists — rather than one long scroll on a phone. It opens on whatever is waiting: a slip needing a ruling, otherwise the round's tables. The counts on the tabs are only the things still to do.
  • A live event page keeps itself up to date: when the next round's pairings go up, the page brings them up on its own, without anyone reloading. Results arriving during a round do not move it, so it won't jump away while you are looking for your table, and it stops checking once the event is finished.
  • A public player page reads one season at a time — a tab per season the player actually played in, the current one open — and keeps each game apart: TCG, VGC and GO each get their own events played, record, win rate and best finish, with the game played most at the top. The record, events, decks, head-to-head table and season Elo all follow the season you pick. One combined record mixed a TCG loss and a VGC loss into a number that described nobody.
  • The one long Guide page is now a set of guides at /guides, with a sidebar to move between them: how PocketPairings works, following an event, playing in one, judging one, and the app and its notifications. Old /guide links still work, and guides are edited on the site rather than shipped with a release.
  • Events still open for registration are listed soonest first, so the next one you can sign up for is at the top. Running and finished events stay newest first.
  • On a phone the event filters fold behind a Filters button, with a count on it so a filter left on is still visible while the panel is closed. On a wider screen they stay open as before.
  • An event can no longer be marked finished while a match still has no result. The sync is refused and names the rounds and tables that are missing, so a completed event's standings and winner are never built on a half-entered round.
  • Season ratings are rebuilt once a night instead of the moment an event is closed, so an event finished on Saturday joins the leaderboard the next morning. The delay is deliberate: it gives organizers time to correct a roster before the ladder moves.

Fixed

  • The sign-up window is enforced, not just advertised. Sign-ups stop at the closing time the event page shows, and the page now says why you cannot sign up: whether they have not opened yet — with the date and time they do — whether the window has passed, or whether the organizer closed them. The closing time used to sit on the page while registrations kept going through underneath it, and the opening time was never shown anywhere.
  • Event lists are dated by the event's own start — the same moment the event page shows — and ordered by it. A row could read one date for an event whose page said another. The dates also line up in a column now, instead of shifting from row to row with the length of the month name.
  • Check-in times are shown on the store's own clock instead of UTC — on the check-in page players see, and on the organizer's session list and printout.
  • A judge who accepts an invitation sees the event on their Judging tab straight away — while sign-ups are open, after they close, and on the morning of — soonest first. It used to stay empty until the event was actually being run.
  • A round timer a judge clears stays cleared — it used to reappear seconds later, as soon as the desktop app synced again — and the judge panel reads the end time on the venue's own clock.
  • Standings no longer drift for players who missed the top cut. Their placing is settled when the cut starts instead of moving as other people play their bracket matches.
  • Tapping a pairing notification opens the event. It used to bring the app forward on whatever page it was already showing, which from the outside looks like nothing happening at all. The banner you tap while the site is open no longer reloads the page under you when you are already on it.
  • A finished event no longer shows a round countdown that ran out days ago.
  • Copying a deck as an image gives card counts big enough to read — the number on its own, without the multiplication sign — the same size as on an event decklist.
  • The footer shows on a phone as well, now that it is down to a few links. The privacy policy is linked from there and nowhere else, so on a phone it could not be reached at all.

Desktop app

The organizer application that reads TOM. You install these, so they are numbered.

1.4.0 Current version

Added

  • Sign-up questions when you open registration: a dropdown, a line of text or a yes/no box, each optionally required, with a limit per dropdown option — say 12 English and 24 French prerelease kits. The registrants list shows what's left of each option and every player's answers, and you can swap a player's choice at the desk, even over the limit.
  • Unlisted events. Tick Unlisted when you open registration, or flip it later on the event, and the event isn't advertised: it stays off the event list, the calendar, your store page and the map, and followers aren't notified. Anyone you give the link to can still sign up — it is not private.

Changed

  • Nothing is sent until you click Publish pairings. The app still notices when TOM saves your file and shows "New data found", but it no longer uploads on its own — you decide when the website catches up. Watching can be switched on and off per event.
  • The first publish of an event asks you to confirm that your players know their names and results appear on pocketpairings.dev.
  • Players without a PocketPairings account appear on the site by a shortened name ("José O.", initials for Juniors and Seniors). The app still shows full names from your own TOM file.
  • macOS: the app is signed and notarised, so it opens without the "unidentified developer" warning, and updates install themselves from now on. If you're on an older version, download this one from the website once.

Required

  • Update before your next event. The website changed how it names players, and 1.3.x can no longer publish to it.

1.3.0

Added

  • Finish event now: close an event from the app while TOM still has it open, so the public page stops saying the event is running. If a table has no result yet the app refuses and names the round and table, so you know what to enter in TOM first.
  • A live event can be pointed at a different TOM file. A Change file button next to Sync re-points the event and syncs it — for when the file you first picked turns out to be a snapshot TOM never writes to again. Until now the only way out was deleting the event and starting over.
  • Tick sign-ups off as paid on the registration list, with a running "3/12 paid" count at the top. The money is still settled in your shop; this is your own note of it, and the tick comes off again if you tick the wrong row.
  • Drop requests appear on the match-slip overlay beside the slips, with a Drop badge so they read as someone leaving rather than a result to transcribe. They sit at the top of the stack, stay up across rounds until you have actually dropped the player in TOM, and clear themselves once the sync sees it done.
  • A payment link when you open registration. Fill it in and the sign-up page on the website sends players to it to buy their ticket; leave it empty and nothing changes — they pay at the door as before.

Changed

  • The results tab says where the entered slips went. Ones already in TOM and agreed with are counted off to the side ("7 already entered in TOM") with a show-them link, and each one is tagged "entered in TOM" when you look — so a shrinking list never reads as results going missing. Once you are level it says so instead of looking empty.
  • An event that has not gone live yet counts its sign-ups on the event list — "12/32 registered", or a plain count when you set no ceiling — instead of the "0 players" a not-yet-uploaded .tdf gave it. An event whose sign-ups have closed says "Sign-ups closed" rather than "Round 0".
  • An event's QR is now a Show QR button that opens the event's poster page, so you can project it on a screen as well as print it. The old button could only send it to a printer.
  • Judges can be invited while an event is still taking sign-ups, not only once it has gone live, so an accepted judge can pull the submitted decklists up for deck checks before doors open.
  • While an event is running the round label says how long it still has to run — "Round 3 of 9" — worked out from the Play! Pokémon handbook's structure table, per age division and reported for the longest one. Event types with no published structure, fields too small for the handbook's first row, and events that outrun the table keep the plain "Round 3" rather than showing a made-up total.
  • When creating an event fails, the app says what actually went wrong: the site's own words when it refuses the file, an HTTP status when something else answers, "could not reach PocketPairings" when nothing does, or the reason the TOM file could not be read — instead of one "Server Error!" for all four.
  • The locked Competitions screen links to the module's own page, which says what it does and what it costs and reads without signing in, instead of dropping you in store settings.
  • The sidebar credits Olivra Studio beside the version number.

Fixed

  • An event can be created from a .tdf that TOM has not paired yet — the file you upload the moment sign-in closes. A tournament with no pods, no rounds or no players in them used to fail outright.
  • A remark can be saved again. Save did nothing when no penalty category had been picked; the category is now required, and the button only comes alive once both it and the note are filled in.
  • A comma in a judge's written reason no longer shifts every column after it in the remarks CSV, so the penalty report you file is the one you wrote. Empty values are written as empty rather than as "null".
  • Deleting an event tells you the truth: when the site refuses the delete the confirmation stays open and shows why, instead of the app closing the dialog and dropping you back on the event list as though it had worked.
  • The event list scrolls inside the window instead of running off the bottom of the screen, so the last events in a long list are reachable.
  • The sidebar no longer says "Synced just now" after a sync that failed. Only a push the site actually accepted updates the time, so the status can be trusted when you are deciding whether the standings on the public page are current.

1.2.1

Fixed

  • Age divisions are worked out against the event's own season instead of a hardcoded 2025, so a Junior stops ageing out of the right bracket.

1.2.0

Added

  • Competitions in the app, at the same level as the organizer portal: see which competition an event feeds and file it against one.
  • The decklist export is reachable from the registration and live screens, so the stack you file after a sanctioned event is one click from where you already are.

Fixed

  • The registration modal no longer offers a date that has already passed.
  • An empty schedule preview now says why it is empty, instead of looking broken, now that past events are left out of it.

1.1.0

Added

  • VGC team sheets: open a player's sheet and print it.
  • Pokémon GO team lists render correctly, with the wording GO players use.

1.0.1

Added

  • An always-on-top match-slip overlay while TOM is running, with a settings toggle and a way to put it back where it started.
  • Play-session attendance from QR check-ins, and barcodes on play sessions and season attendance.

Changed

  • The sync payload carries each round's type, which is what lets the site label a top cut as Top 8 rather than "round 6".

1.0.0

Added

  • Sign in with your PocketPairings account (device SSO) instead of pasting an API key.
  • A free-form round length next to the timer presets.

Changed

  • The remarks CSV is written straight to your Downloads folder, and the TOM Data Folder setting is gone with it.

Fixed

  • The event screen stays two-column on a laptop-sized window, and the event-details card grows with its content instead of clipping it.

Releases before 1.0.0 predate this file. Their tags are in the desktop repository if you need them.