DexTracker
A Pokémon collection tracker built for completionists: fast, filterable, and designed for the long haul of a full living dex.
Hover the screen to scroll through it.
Client
Personal Project
Industry
Gaming · Collection
Services
Web App · UI/UX · Data Design
Timeline
4 Weeks
Year
2025
At a Glance
The problem.
Tracking a full living dex across multiple games is tedious in spreadsheets and painful in stock trackers. The challenge was a fast interface that handles 1000+ entries without lag, supports granular status, and works on a phone during a trade-up grind.
The solution.
A virtualized grid index with multi-axis filtering (region, type, status, shiny). Bulk actions, keyboard-first interactions, and state that persists across sessions, built so a completionist can use it for hours without friction.
Features
What makes it work.
Complete Dex Index
Every Pokémon across every generation, one searchable home.
- 1000+ entries
- Form and variant support
Multi-Axis Filters
Filter by region, type, status, and shiny simultaneously.
- Combined filter state
- Quick reset
Fast Bulk Actions
Mark ranges, toggle shinies, update status without clicks per entry.
- Shift-click range select
- Keyboard toggles
Virtualized Grid
Smooth scrolling through hundreds of entries on any device.
- No layout jank
- Lazy image loading
Stack
Built with.
Next.js & React
Virtualized lists for large datasets without perf hits.
Tailwind CSS
Dense but legible grid and filter UI.
Local Persistence
Tracks state across sessions without an account.
Outcomes
What shipped.
- 01
Built a tracker fast enough to stay useful during a 10-hour completion session.
- 02
Delivered multi-axis filtering that handles 1000+ entries with sub-second response.
- 03
Shipped a UX that rewards completionists rather than punishing them with complexity.
More from the Archive
— Let's Build
Have a similar project in mind?
Tell me what you want to build. I'll tell you exactly how I'd get there.

