Skip to content

codemaverick-hub/switch2-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

132 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Switch 2 Master Tracker

A free Progressive Web App (PWA) for Nintendo Switch 2 collectors — track your physical library by region, edition and format with daily auto-updated game data.

🔗 Live app: codemaverick-hub.github.io/switch2-tracker
❤️ Support: patreon.com/c/switch2tracker


Features

🎮 Game Library (379+ titles, auto-updated daily)

  • Platform badges — clearly shows Switch 2 Only vs Switch 1 & 2 (NS2 Edition) for every game
  • Box art — fetched from Nintendo EU, loading incrementally each daily run
  • Per-region formats — knows whether a game is a Physical Cart, Game-Key Card or Digital Only in each specific region (e.g. full cart in West, GKC in Japan)
  • Editions — Standard, Deluxe, Limited, Collector's tracked per region (from NSCollectors sheet)
  • Regional release dates — per-region date chips for USA / EUR / JPN / AUS / KOR / CHT / ASI
  • Filters — search, type, platform, status, format, region, ownership, genre

📦 Collection Tracking

  • Global quick buttons: Own (physical) · Own (digital) · Wishlist
  • Per-region ownership — expand any physical game to track regional copies separately with rating board shown (ESRB / PEGI / CERO / ACB / GRAC / CSRR)
  • Per-edition ownership — track Standard, Deluxe, Limited and Collector's editions independently per region
  • Physical disabled for digital-only titles — no phantom "Own (phys)" button on digital games
  • All state saved to localStorage — survives page refreshes, works offline

🖥️ Consoles & Bundles

  • All 7 official Switch 2 models including Japan-only variants with accurate pricing

🎛️ Accessories

  • 17 official Nintendo accessories across controllers, storage, cases and dock

⚙️ Technical

  • PWA — installs on phone or desktop, works fully offline via service worker
  • Daily auto-updates via GitHub Actions (06:00 UTC) — app shows a refresh banner when new data is available
  • Zero dependencies — single index.html, no frameworks, no build step

Data Sources

r/NSCollectors Release Details tab   ← per-region Card Type + Editions (highest priority)
r/NSCollectors Release Summary tab   ← per-region release dates
Wikipedia                            ← publisher, developer, game type
Nintendo Europe search API           ← box art image URLs (40 new per daily run)
data/overrides.json                  ← manual corrections (override everything)

File Structure

switch2-tracker/
├── index.html                   ← App (single-file PWA)
├── manifest.json                ← PWA metadata
├── sw.js                        ← Service worker (offline + update detection)
├── icons/
│   ├── icon-192.png
│   └── icon-512.png
├── data/
│   ├── games.json               ← Auto-generated by scraper (committed daily)
│   └── overrides.json           ← Manual format/region/note corrections
├── scripts/
│   └── scrape.py                ← Multi-source scraper
└── .github/
    └── workflows/
        └── update-games.yml     ← Daily automation

How the auto-update works

NSCollectors Sheet (Details + Summary tabs)
    +
Wikipedia
    +
Nintendo EU search API
        │
        │  daily at 06:00 UTC  (or manually via Actions tab)
        ▼
GitHub Actions → scripts/scrape.py
    │
    │  • Fetches per-region Card Type + Editions from NSCollectors Details tab
    │  • Fetches per-region release dates from NSCollectors Summary tab
    │  • Merges publisher/developer/type from Wikipedia
    │  • Fetches box art URLs from Nintendo EU (up to 40 new per run, cached)
    │  • Applies data/overrides.json (highest priority)
    │  • Safety guard: never overwrites with 0 games if all sources fail
    │
    ▼
data/games.json  (committed only if changed)
    │
    ▼
PWA fetches on load → service worker caches → green banner on update

Setup (5 minutes)

1. Fork or create repo

Upload all files to a new public GitHub repo.

2. Enable GitHub Pages

Settings → Pages → Source: branch main, folder / (root)
Your app will be live at https://yourusername.github.io/your-repo-name/

3. Enable GitHub Actions

Actions are enabled by default. To trigger manually:
Actions → Update Switch 2 Game Data → Run workflow

4. Run scraper once to generate initial data

pip install requests beautifulsoup4
python scripts/scrape.py
git add data/games.json
git commit -m "chore: initial game data"
git push

Customising

Adding manual corrections for a game

Edit data/overrides.json — keys match by normalised substring:

{
  "Game Title Here": {
    "fmt": "k",
    "region": "var",
    "note": "GKC in Japan; physical cart in West"
  }
}

Format codes: c = Physical Cart · k = Game-Key Card · d = Digital Only · ? = TBA
Region codes: ww = Worldwide · jp = Japan Only · var = Varies by Region

Changing the scrape schedule

Edit .github/workflows/update-games.yml:

- cron: '0 6 * * *'    # daily at 06:00 UTC (default)
- cron: '0 6 * * 1'    # weekly, every Monday

Running the scraper locally

pip install requests beautifulsoup4
python scripts/scrape.py

Offline support

The service worker caches the app shell on first load. When offline:

  • App opens normally from cache
  • Collection data is always available (localStorage)
  • Game data falls back to last cached games.json

When back online, fresh data is fetched silently in the background.


Support

If the tracker has been useful, consider supporting it on Patreon — it helps keep the app free and ad-free.

About

Nintendo Switch 2 game tracker PWA with auto-updating game list

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages