PokéStash solves the hassle of tracking fragmented Pokémon GO schedules and raid rotations by providing trainers with an all-in-one live event tracker, interactive monthly calendar, and gym PokéCoin budget calculator.
You don't need to install or run anything locally to use PokéStash! You can access the live app instantly by clicking the GitHub Pages website link found directly in the About section on the right side of this repository.
| 🏠 Home Dashboard | 📅 Events Calendar |
|---|---|
![]() |
![]() |
| 🛒 PokéStash Mart & Budget Calculator |
|---|
![]() |
- Frontend Core: React 19 with functional hooks and state-driven tabs
- Build & Tooling: Vite for high-speed hot module replacement (HMR) and optimized builds
- Icons & UI Assets: Lucide React + official Pokémon GO 3D HOME renders
- Data Scraping & Extraction: Node.js & Cheerio for automated web scraping and HTML parsing of community event feeds
- Storage & State Persistence: Browser
localStoragefor seamless offline persistence of coin wallets, custom targets, and cart data - Code Quality: Oxlint for ultra-fast JavaScript linting
- 🏠 Live Home Dashboard:
- Daily highlights (Showcase Tuesday, Max Mondays, Raid hours, Spotlight hours).
- Active 5-star, Mega, and Shadow raid bosses showing current rotations and weakness types.
- Upcoming events countdown feed with quick category filters.
- Real-time daily PokéCoin claim button and persistent stash counter.
- 📅 Interactive Events Calendar:
- Full seasonal timeline tracker (e.g., Season 24: Twilight Trails).
- Day-by-day interactive date picker displaying all events active on any selected day.
- Comprehensive modal view for events containing wild encounters, egg pools, shiny statuses, and event advice.
- 🛒 PokéStash Mart & Budget Planner:
- In-game shop catalog with official bundles, storage upgrades, raid passes, incubators, and lures.
- Interactive cart calculator showing total coin cost.
- Gym defense days estimator based on the 50 free coins/day cap.
- Custom wallet balance editor to track savings toward target items.
- 🎨 Smart 3D Asset Resolution:
- Dynamic fallback system mapping Pokémon names and costume forms (e.g., Gigantamax forms, Minior cores, Batik Shirt Pikachu) to official high-resolution 3D sprites.
- Multi-Stream Request Concurrency: Implement parallelized scraping with connection pooling to dramatically reduce scrape execution time.
- Incremental Delta Scraping: Add HTTP ETag and conditional
If-Modified-Sincechecking to only crawl pages that have received new updates. - Headless Resiliency Engine: Integrate a headless fallback pipeline (Playwright / Puppeteer) to bypass rate limits and capture dynamically injected event scripts.
- Automated Sprite Mirroring & Ingestion: Streamline asset downloads directly into compressed local bundles during scrape runs to eliminate runtime 404s.
- Scheduled CI Scraper Workflow: Configure GitHub Actions cron jobs to run nightly scrapes and automatically commit validated event payloads.
If you wish to run PokéStash locally:
# 1. Clone the repository
git clone https://github.com/Seraphingel/pokestash.git
# 2. Navigate to project root
cd pokestash
# 3. Install dependencies
npm install
# 4. Start Vite development server
npm run devVisit http://localhost:5173/PokeStash/ in your browser.
npm run dev: Launch local development servernpm run build: Build production assetsnpm run lint: Run Oxlint across the project


