Back to work

Case Study

Game Hub

A game discovery web app built with Vue 3 and TypeScript, where users can browse, filter, and explore games powered by the RAWG API with infinite scroll, cached queries, and a typed composable architecture.

Frontend Web DevelopmentFrontend Developer2023
Game Hub project banner

Project Highlights

  • Built a Vue 3 application using the Composition API with TypeScript throughout, structuring logic into reusable composables (useGames, useGenres, usePlatforms) for clean separation of concerns.
  • Integrated the RAWG Video Games API via a generic typed APIClient<T> class wrapping Axios, enabling consistent and type-safe REST data fetching across the app.
  • Implemented TanStack Vue Query for server-state management, providing automatic caching, background refetching, and infinite scroll pagination for the game grid.
  • Added Apollo Client with GraphQL and @vue/apollo-composable as a secondary data source, demonstrating multi-protocol API integration within a single frontend project.
  • Managed global UI state — including active genre, platform, and sort filters — using Pinia stores, keeping filter state consistent across route changes.
  • Built component-based UI with GameCard, GameGrid, GenreList, and NavBar components, all wired to Vue Router v5 for client-side navigation.
  • Configured Vite v8 as the build tool and vue-tsc for TypeScript checking, keeping dev server startup fast and type errors caught at build time.