Offline-capable Pokédex web site
JavaScript CSS HTML Shell

An index of Pokémon, built as a client-side JavaScript webapp. Powered by ServiceWorker, PouchDB, virtual-dom, and web workers.

See the Introducing blog post for details on the architecture.


First, be sure to install dependencies:

npm install

Then start a dev server on localhost:9000:

npm run serve

To disable ServiceWorker:

NODE_ENV=testing npm run serve


npm run build

This will write files to www/.

Bumping the ServiceWorker version

The ServiceWorker version is tied to the package.json version. So you can bump it by simply doing:

npm version patch

Building up the database via PokéAPI

Note: you don't need to build up the database to start developing; these are just steps to generate the database files (src/assets/*.txt) from scratch.

This site uses data provided by PokéAPI. To build up the database, you'll need to run:

./node_modules/.bin/babel-node bin/build-monsters-database.js
./node_modules/.bin/babel-node bin/build-descriptions-database.js
./node_modules/.bin/babel-node ... # there are several of these

Some of the build scripts pull from src/js/shared/data (which contains some files that I had to build myself by scraping Bulbapedia), whereas the main ones pull from the live PokeAPI. (I never got the local PokeAPI working correctly, so I just pulled from the remote.)


You can add ?highPerfAnims=1 to the URL to force high-performance animations to run. (Normally they are disabled for Firefox and Android <5.)


Thanks to PokeAPI and Bulbapedia for the Pokémon data, and of course to Nintendo, Game Freak, and The Pokémon Company for making such an awesome series of games.