Back to projects
NextGen Pokédex (Pokédexgen)
NextGen Pokédex combines a Pokémon exploration dashboard with an end-to-end data pipeline, turning PokéAPI data into searchable stats, evolution chains, and team-building insights.
Why I Built It
I wanted to connect my data engineering work with something I grew up enjoying: Pokémon. The project gave me a way to practice ingestion, data modeling, orchestration, and frontend development around a dataset I wanted to explore.
Features
- Search Pokémon and explore detailed stats, radar charts, and evolution chains
- Build teams and analyze their type coverage
- Compare type matchups to understand strengths and weaknesses
- Explore Pokémon origins, generations, and legendary status
- Play a silhouette-based Pokémon guessing game
Pokémon Search
Browse Pokémon and explore their stats and evolution details.

Team Analysis
Review a team's type coverage to understand its strengths and weaknesses.

Data Pipeline
- Ingest Pokémon data from PokéAPI with Python and dlt into DuckDB.
- Transform raw data with dbt-duckdb through staging, intermediate, and mart layers.
- Coordinate ingestion, transformations, and exports with Dagster.
- Export curated marts to static JSON files consumed by the Next.js dashboard.
This separates data preparation from the frontend, letting the dashboard use curated datasets without a live database connection.
Pipeline Architecture

Dagster Orchestration

Technology Stack
- Ingestion: Python, dlt, PokéAPI
- Storage and transformations: DuckDB, dbt-duckdb
- Orchestration: Dagster
- Frontend: Next.js, React, TypeScript, Tailwind CSS
- Data delivery: Static JSON exports