-
Notifications
You must be signed in to change notification settings - Fork 0
Shiny Tracking
My Collection at /shinies is a personal checklist for logged-in users: record every shiny you have caught, in which form, with which costume, and from which event. The page shows what you own and what is still missing.
Log in and open the Collection page to track your own shinies. Three tabs split the view:
- All Shinies -- the full dex with your caught entries highlighted
- Caught -- only what you own, with catch dates shown as "time ago", inline editing, and a remove button
- Missing -- everything you have not caught in any form yet
Click a Pokemon and fill in the add modal:
- Form -- Normal, Shadow, or Purified
- Method -- wild, egg, raid, research, evolution, photobomb, trade, or GO Tour
- Costume -- freeform text with autocomplete offering roughly 20 common Pokemon GO costumes (Party Hat, Witch Hat, Detective Hat, Flower Crown, GO Fest hat, Sunglasses, Lucha Libre, Night Cap, and others). Leave blank for an uncostumed catch.
- Event -- freeform text with autocomplete covering major events (GO Fest 2018 through 2026, GO Tour Kanto, GO Tour Johto, GO Tour Hoenn, GO Tour Sinnoh, GO Tour Unova, Community Day, and others). Leave blank when not event-specific.
True duplicates are allowed -- you can record the same species, form, costume, and event more than once if you caught multiples.
The shiny grid shows one card per species you own. When you own more than one entry for a species, a blue xN badge appears in the top-left corner of that card (for example, x3 if you have three records for Pikachu). Costumed entries show the actual costumed sprite -- Party Hat Pikachu displays with its hat, Nightcap Snorlax displays with the cap -- rather than the plain base shiny sprite.
Entries in the Caught tab show a subtitle line below the Pokemon name when any extra fields are set. The subtitle format is form -- costume -- event, so an entry might read "Shadow -- Party Hat -- GO Fest 2025". The form badge is omitted when it is Normal; costume and event are omitted when blank.
Each entry can be edited inline: click the edit button to update the form (dropdown), method (dropdown), costume (autocomplete dropdown filtered to costumes available for that species -- Pikachu shows its regional caps and Lucha Libre; Snorlax shows Night Cap; etc.), or event (autocomplete dropdown). A remove button deletes the entry entirely. A counter in the tab header tracks how many unique species you have collected.
The 9 most recent shiny catches appear on a trainer's public profile page, below the achievements section. Each entry shows the shiny sprite (costumed where applicable), the Pokemon name, and any Shadow or Purified badge. This section is visible to anyone who can view the profile.
To opt out, open Settings and enable Hide shiny collection under Privacy. When enabled, the shiny section does not appear on your public profile and the public collection endpoint returns an empty result.
The full collection is still accessible separately. When another trainer's profile is public and they have not hidden their collection, a My Collection link appears at the bottom of their profile modal in the Trainer Directory. Clicking it expands the modal inline to show their complete shiny collection. Clicking the link again collapses the section.
Shiny availability (which Pokemon are released shiny and through which methods) comes from PoGoAPI (pogoapi.net/api/v1/shiny_pokemon.json), refreshed server side and delivered with the rest of the cached game data; see Data-Sources. The collection page is ts/shinies.ts.
Sprites and audio come from PokeAPI: grid sprites use the PokeAPI GitHub sprite repository directly (the shiny variant lives under sprites/pokemon/shiny/, and costumed variants live under their own subdirectory paths). The modal's normal vs shiny pair, the Pokedex flavor text and genus, and the cry audio URL are fetched on demand from the PokeAPI REST API by ts/shared/pokedex.ts, which caches every response in memory for the session. Sprites that 404 simply hide themselves.
Your collection is stored per account through the /api/shinies endpoints: GET lists your entries, POST adds one (pokemon_id, form, method, costume, event), PUT /api/shinies/{id} updates it, and DELETE /api/shinies/{id} removes it. All mutating calls carry the CSRF token from the page's meta tag.
Duplicate records are permitted -- there is no unique constraint that would block recording the same (user, pokemon, form, costume, event) combination twice. Each row gets its own ID and can be edited or removed independently.
A separate public endpoint, GET /api/shinies/of/{username}, returns another user's collection when their profile is public and their collection is not hidden. It returns an empty array otherwise. The response includes sprite_url (shiny variant, resolved server side) in addition to the standard fields. See API-Reference for the full endpoint list and Accounts-and-Roles for how accounts work.
Repository | Live site | hailsDotGO is a fan-made project, not affiliated with, endorsed by, or connected to Niantic or The Pokémon Company. Game data comes from community sources credited on the Data Sources page.
Start Here
Features
- Raids and Counters
- DPS Calculator
- IV Calculator
- PvP IV Ranker
- Events
- Shiny Tracking
- Trainer Directory
- Raid Finder
- Social Features
- Trust and Awards
- Bug Reports
- Player Reports
- Store
- Accounts and Roles
- Admin Guide
Self-Hosting
Development
Translations