Skip to content
Sanghyun Kim
All projects
Live · For fun

Pokepedia

A Pokédex for the original 151, a silhouette quiz styled like a Game Boy battle, and a sticker album you fill by getting answers right.

Pokepedia Pokédex grid with type filters
What
Web app · KO / EN / JA
Since
2026 (remake)
Role
Solo
Runs on
Vercel + Supabase, Tokyo

About

In 2023 I built a Pokédex as a JSP team project. This is a solo rebuild on a current stack — mostly for fun, and to see how far a small app can be polished.

You can play as a guest with no sign-up. Link a Google account later and your stickers and scores stay with you.

What it does

Pokédex
All 151 on one page. Search by name in three languages or by number; type filters and sorting stay in the URL.
Detail cards
Stats, abilities and evolutions. Artwork sits on a holographic card that tilts with your pointer or finger.
Silhouette quiz
Fight, Bag, Pokémon, Run — keyboard included. Combos raise your score and the odds of a shiny sticker.
Collection & ranking
A 151-slot sticker album and a best-score leaderboard.
Quiz title screen
Getting a sticker after a correct answer
Charizard on a holographic detail card
Sticker collection

How it’s built

App
Next.js 16 (App Router, RSC, Server Actions) · React 19 · TypeScript
UI
Tailwind CSS v4 · Motion · Zustand · next-intl
Data
Supabase — Postgres, Auth, Storage · Row Level Security · RPC · pg_cron
Testing
Vitest · Playwright
Hosting
Vercel (Tokyo) · Supabase (Tokyo) · Analytics · Speed Insights

Notes

Answers never reach the browser

A round in progress only carries a silhouette with an opaque file name and a masked name. Answer keys live in a private schema.

Judge in TypeScript, commit once

Rules are plain TypeScript. Score, sticker and the next question are written by one Postgres function, so a double submit can't pay out twice.

The slow answer was a region problem

Answers took 1.6–2.5 s: functions ran in Washington, the database in Tokyo. Moving functions to Tokyo and cutting round trips from 8 to 3 got it to ~0.25 s.

Pokémon and related names and artwork are © Nintendo, Creatures Inc. and GAME FREAK inc. A non-commercial fan project.