This is a cut down version (v1.0) of the VGS hosted at VarietyGamer.win
i.e no database support, no challenge code feature or category selection, etc.
This version only selects games from the Steam Top 100 list. Feel free to modify!
Selects 50 of the Top Played Steam games at random and lets you test your Variety Gamer score!
🔗 Live demo: https://varietygamer.win/
- ⚡ Fast, simple PHP — no framework required.
- 🧠 Steam Top list generated locally via
steamtopimport.php(or theapi/steam-top100.phpendpoint). - 🖼️ Image cache stored in
assets/cache/steam-images/inside this folder.
- Serve the repo with PHP (Apache/Nginx + PHP-FPM works great).
- Generate data by running
php steamtopimport.php(or visitapi/steam-top100.php) to populatedata/steam-top100.json. - Visit
index.phpin your browser (a sampledata/steam-top100.jsonis included for offline use).
To run the site and scorecard export without errors, install:
- PHP 8+ (CLI + web SAPI)
- PHP mbstring extension (scorecard tagline rendering)
- PHP Imagick extension (thumbnail + scorecard image processing)
- ImageMagick (Imagick backend)
sudo apt update
sudo apt install -y \
php \
php-cli \
php-curl \
php-mbstring \
php-imagick \
imagemagick
sudo systemctl restart php8.3-fpm # or php8.4-fpm / php8.2-fpm / php8.1-fpm depending on your setup
sudo nginx -t && sudo systemctl reload nginxIf you are using Apache, make sure
libapache2-mod-phpis installed or configure PHP-FPM for Nginx.
Please lock things down so the site stays safe and stable:
- Directories:
755 - Public files:
644 - Secret files (API keys):
600
The web server needs read access to:
data/steam-top100.jsonassets/cache/steam-images/
- Keep API keys outside the web root (as in
/var/www/secrets/apikeys.php). - If you must store secrets in the repo, deny web access via server config.
- Consider password-protecting
build.phpor limiting it by IP.
index.php→ main variety score pagescorecard.php→ score breakdown viewdata/steam-top100.json→ Steam Top list used by the appapi/steam-top100.php→ local API endpoint for the top liststeamtopimport.php→ generatesdata/steam-top100.jsonand caches imagesassets/cache/steam-images/→ image cache used by the importerassets/→ CSS, images, scorecard assets
My Girlfriend & My family, Assassina San, Nomadic, GhostShadow ...
This project is source-available.
Free for non-commercial use with attribution.
Commercial use requires permission.
Commercial licenses are available. Contact: hayward@proton.me or GitHub issues.
