Skip to content
๐ŸŽฎ ๐Ÿ’ƒ Compare Steam libraries with your friends
JavaScript HTML
Branch: master
Clone or download
Fetching latest commitโ€ฆ
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


A web app for tracking a pool of Steam user accounts and compiling data about games held in common between them. Built on top of the Steam Web API.

Built using Express and Redux on the back end, and Vue.js with vue-table-component for the client.

Styled with the help of Bootstrap 4 and bootstrap-vue.

Pull requests welcome! Please open an issue on GitHub first (for documentation purposes, at least).

Running the app

Requires Node.js and npm.

git clone

You'll need to copy the .env.example file to a new file called .env and change the STEAM_API_KEY variable to a free Steam Web API key which you can find here.


npm install
npm start
# open a browser at localhost:9876


GET /api/players

Returns a list of player summary data for the Steam users the site is tracking.

GET /api/players/:steamId

Returns summary data for the player matching the given steamId.

GET /api/owned-games

Returns data for each game owned by one or more tracked players, including a list of steamIds corresponding to users who own each game.

POST /api/players/:vanityName

Looks up a player by community display name (not necessarily the same as login) and stages them for tracking.

Returns summary data for the player as well as a confirmation url.

POST /api/confirm-player/:token

Confirms player registration with a unique token which expires after process.env.STEAM_ID_CONFIRMATION_TIMEOUT milliseconds.

Shouldn't be composed manually, since this gets returned by /api/register/:vanityName.

DELETE /api/players/:vanityName

Deletes a player from tracking. Only enabled if process.env.ENABLE_PLAYER_DELETE is "true".

You canโ€™t perform that action at this time.