← Back to portfolio

PokeData
Modern fan-made Pokédex (Flutter, Android + Web): browse Pokémon and regions, search and filter, open rich profiles — plus Guess the Pokémon (local or competitive with leaderboards). Favorites and competitive mode with an account; full browsing as a guest. Shipped to the Play Store and pokedata.kaique.site.
Context
Many Flutter demos stop at an API prototype. The challenge was closing the loop on a mobile-first product at $0 infra cost: PokéAPI with local cache, Firebase auth, synced favorites, a custom game API (Workers + D1), PT/EN i18n, store compliance, and a pipeline to Play Store + Wasm web — without treating web as an afterthought.
What the product delivers
- National Dex–style list with fast search and type/generation filters; regions and profiles with stats, weaknesses, evolution, flavor text, and cries
- Guess the Pokémon: local mode (bundled catalog) and authenticated competitive mode with leaderboards and score publish
- Favorites in Cloud Firestore (account) and guest mode for quick lookups; auth only when a feature needs it
- Offline-friendly Drift cache and bilingual PT/EN UI aligned with PokéAPI game text
- Real distribution: Android on the Play Store (com.kaiquesimao.pokedex) + Wasm web on a custom domain, free-tier stack by design
Engineering signals
- Flutter + Riverpod 3, go_router, and feature-based architecture (data / domain / presentation)
- Dio → PokéAPI; Drift for local cache; Firebase Auth (email/password; Google Sign-In on Android) + Firestore
- Game API: Cloudflare Worker + D1, checked-in catalog (no PokéAPI at request time), rate limits, and Firebase token verification
- Multi-thread Wasm web with COOP/COEP on Cloudflare Pages; Google Auth mobile-only by conscious tradeoff
- GitHub Actions: analyze/tests, web/Worker deploy, AAB upload, and free-tier usage monitor (Workers/D1)
Public, unofficial fan project (PokéAPI). Source on GitHub, live at pokedata.kaique.site, and on the Play Store.
#Flutter#Riverpod#Firebase#Workers/D1