GameTrack is a local game library and backlog tracker. It helps you keep track of the games you own, what you are playing, your playtime, ratings, and completion dates.
It also includes Steam sync, IGDB discovery, library filters, analytics, backups, and Markdown/CSV/JSON exports. Your data is stored locally in SQLite.
- React and TypeScript
- Vite
- Tailwind CSS
- Node.js and Express
- SQLite with
better-sqlite3 - Zustand
- IGDB and Steam APIs
- Node.js 20 or newer
- npm
Install the dependencies:
npm installCopy the example environment file:
cp .env.example .envAdd IGDB credentials to .env if you want to use game discovery and metadata lookup:
IGDB_CLIENT_ID=your_twitch_client_id
IGDB_CLIENT_SECRET=your_twitch_client_secretSteam sync is optional. Add a Steam Web API key if you want to use it:
STEAM_WEB_API_KEY=your_steam_api_keyStart the development server:
npm run devThen open http://localhost:3001.
The SQLite database and uploaded posters are stored in data/ by default. Set GAMETRACK_DATA_DIR in .env to use another location.
Build the frontend and server:
npm run buildStart the production server:
npm run startnpm test # run tests
npm run typecheck # check TypeScript
npm run reset-metadata # refresh library metadata from IGDB
npm run fetch-igdb-posters # refresh IGDB posters
npm run clean # remove build outputsrc/contains the React app and UI components.server/contains the SQLite setup and API routes.scripts/contains maintenance scripts.tests/contains API and UI tests.data/contains local application data and is not committed.
GameTrack is designed for personal, local use. Keep regular backups of the data/ directory or use the backup tools in Settings.