Skip to content
Ákos Kappel
Language: en
Theme
Light
Dark

Pokédex

All 1025 Pokémon with search, type matchups, a team builder and a quiz, in nine languages.

Pokédex list with search and filters

About the project

A personal project from 2024 that started as a simple paged list in Vue CLI. Later I rebuilt it as a fast Pokédex for all 1025 Pokémon, without ads, using data from PokéAPI.

What you can try

  • Search by name or number from any page; accents and punctuation do not matter
  • Filter by up to two types and a region, sort, and share the result by URL
  • Pokémon pages with artwork, shiny versions, stats, type matchups, evolutions with conditions, moves, forms and cries
  • A team builder that shows shared weaknesses and attack coverage
  • Searchable lists of moves, abilities and items; each move and ability page lists the Pokémon that learn or have it
  • Compare up to three Pokémon, play "Who's that Pokémon?" and see the Pokémon of the day
  • Names in nine languages, favourites with export and import, dark mode, keyboard shortcuts and a quick find (Ctrl+K)

Under the hood

  • Data snapshots are bundled at build time, so search and filters need no network requests
  • Every page is prerendered with its own meta tags, about 2,000 pages including a sitemap
  • Installable and usable offline (PWA with Workbox); images come as WebP from an image CDN, about 10 kB each
  • Unit tests in Vitest, end-to-end tests in Playwright with accessibility checks, Lighthouse in CI, deployed to GitHub Pages
  • Pokémon details load from the PokéAPI REST endpoints when a page is opened, and the service worker caches them with the artwork for 30 days
  • A script refreshes the data snapshots from PokéAPI through GraphQL when new games come out

Changelog

  • Vue CLI replaced by Vite
  • Vue 3.2 to 3.5, Vue Router 4 to 5 and TypeScript 4.5 to 6
  • Axios and the pagination library removed
  • Docker replaced by GitHub Pages
When
2024 – 2026
Type
Personal
Versions
  • Vue 3.5
  • Vue Router 5
  • Vite 8
  • TypeScript 6
Stack
  • Vue
  • TypeScript
  • Vite
  • PWA
  • Vitest
  • Playwright
  • ESLint
  • GitHub Pages
Pokémon detail page with stats, types and evolutions
Pokémon detail with stats, type matchups and the evolution chain.
Grid of Pokémon cards in the dark theme
Browsing all 1025 Pokémon in the dark theme.
Team builder with six Pokémon and an analysis of weaknesses and coverage
Team builder: shared weaknesses, attack coverage and a table per attack type.
Venusaur, Charizard and Blastoise compared stat by stat
Comparing up to three Pokémon, with the highest value in each row marked.
Black silhouette of a Pokémon with a field for the guess
Who's that Pokémon? Wrong guesses unlock hints, and the best streak is saved.
Flamethrower move page with power, accuracy and the Pokémon that learn it
Every move has its own page with its stats and the Pokémon that learn it.

1 of 6

Pokémon detail page with stats, types and evolutions

Pokémon detail with stats, type matchups and the evolution chain.