Inspiration
We’re two roommates who still argue over whether Snivy or Oshawott is the better starter. A weekend nostalgia binge turned into “let’s just build the slick Unova Pokédex we always wanted.
What it does
A fast, single-page guide to every Unova Pokémon (#494–649). Type to search, click to open a modal with stats, abilities, evolutions, and a heart icon to save favorites. Dark mode for 3 a.m. scrolling, works offline once it’s cached.
How we built it
React + TypeScript + Tailwind. We pull everything from PokéAPI once, stash it in localStorage, and never hit the network again unless you clear your cache.
Challenges we ran into
- First load was 156 separate API calls → Promise.all saved us.
- PokéAPI nests data like Russian dolls; we flattened it into one clean object.
- Spent two hours convincing Chrome that localStorage can actually hold 3 MB.
## Accomplishments that we're proud of
It loads in ~200 ms after the first visit and still feels snappy on a phone from 2019. Also, the favorite star animation is chef’s kiss.
## What we learned
Client-side caching is free performance; just mind the quota. And Tailwind’s dark mode is three lines of code if you don’t overthink it.
## What's next for Unova Pokédex
What’s next is simple: we’re going full-world. Finish polishing Unova, then roll out one region per sprint until the entire National Dex lives in the same slick shell. After that, we wire in the Gemini API to auto-write spicy Pokédex entries and team tips that update every week. Think “living Pokédex” that never goes stale.
Built With
- gemini
- poke-api
- react
- tailwind
- then-roll-out-one-region-per-sprint-until-the-entire-national-dex-lives-in-the-same-slick-shell.-after-that
- typescript
Log in or sign up for Devpost to join the conversation.