An interactive web reference guide for Riot Games' VALORANT. All content is sourced directly from the official Valorant database, so every agent, weapon, map, and skin on the site reflects the real, up-to-date data used by the game itself.
🌐 Live demo: valorant-wikipedia.vercel.app 📦 Repository: github.com/hardlywave/valorant-portfolio
This is a portfolio / pet project built to practice a full SPA workflow with React + TypeScript: routing, consuming an external REST API, component-driven architecture, responsive layout, and hybrid styling with SCSS and MUI.
The project does not store or hardcode any game information locally. Every piece of content — agents, abilities, weapons, stats, maps, skins, and artwork — is fetched at runtime directly from the official Valorant database (valorant-api.com, which mirrors the data Riot Games exposes from the game client). This means the site automatically stays in sync with the game: whenever Riot ships a new agent, weapon, or skin, it shows up here without any code changes.
react-router-dom with no full reloads.react-responsive).Language & Framework
UI & Styling
@mui/x-data-grid — tables with filtering and sorting@fontsource/robotoRouting & Data
useState, useEffect, custom hooks)Responsiveness & Utilities
Dev Tooling
gh-pages (alternative deployment target)Deployment
valorant-portfolio/
├── public/ # Static assets and index.html
├── src/ # Application source code
│ ├── components/ # Reusable UI components
│ ├── pages/ # Route-level pages (agents, weapons, maps, etc.)
│ ├── api/ # Axios instance and Valorant API wrappers
│ ├── hooks/ # Custom React hooks
│ ├── styles/ # Global SCSS styles
│ └── types/ # TypeScript types and interfaces
├── tsconfig.json
├── .prettierrc.json
└── package.json
Requires Node.js 16+ and npm.
# 1. Clone the repository
git clone https://github.com/hardlywave/valorant-portfolio.git
cd valorant-portfolio
# 2. Install dependencies
npm install
# 3. Start the dev server
npm start
The app will open at http://localhost:3000.
| Command | Description |
|---|---|
npm start | Run dev server with hot reload |
npm run build | Create a production build in build/ |
npm test | Run tests in watch mode |
npm run deploy | Deploy to GitHub Pages via gh-pages |
The entire site is powered by the official Valorant database via the public Valorant API. This endpoint mirrors the game client's own asset files, meaning the data is the same information Riot Games uses internally for VALORANT.
What this means in practice:
Requests are made with Axios and typed on the client side with TypeScript interfaces that mirror the API response shapes.
useEffect.master branch.hardlywave GitHub: @hardlywave
This project is not affiliated with Riot Games. VALORANT, all logos, and artwork are property of Riot Games, Inc.