PHPackages                             jan-wennrich/bgg-portfolio-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. jan-wennrich/bgg-portfolio-generator

ActiveProject[Utility &amp; Helpers](/categories/utility)

jan-wennrich/bgg-portfolio-generator
====================================

Generates static portfolio websites from BoardGameGeek accounts

1.2.0(2mo ago)0261—0%[8 issues](https://github.com/JanWennrich/BGG-Portfolio-Generator/issues)GPL-3.0-or-laterPHPPHP ^8.4CI passing

Since Jul 29Pushed 2mo agoCompare

[ Source](https://github.com/JanWennrich/BGG-Portfolio-Generator)[ Packagist](https://packagist.org/packages/jan-wennrich/bgg-portfolio-generator)[ RSS](/packages/jan-wennrich-bgg-portfolio-generator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (29)Versions (5)Used By (0)

BoardGameGeek Portfolio Generator 🎲
===================================

[](#boardgamegeek-portfolio-generator-)

A static site generator that fetches a BoardGameGeek (BGG) user's data and compiles it into a human-readable, self-contained HTML portfolio. Perfect for showcasing your board game collection online or archiving it offline.

[![Preview Screenshot](/README-preview.webp)](/README-preview.webp)

✨ Features
----------

[](#-features)

- Presents key information from your BGG profile, organized in interactive tabs:
    - **Play History** – grouped and sorted by date
    - **Wishlist** – grouped and sorted by priority
    - **Collection** – grouped and sorted alphabetically
- Displays games as box cover thumbnails with direct links to their BGG pages
- Supports deep linking to specific tabs and sections
- Fully static output: no backend required (vanilla JavaScript, HTML, and CSS)

🔧 Prerequisites
---------------

[](#-prerequisites)

- PHP 8.4 or later (CLI enabled)
- [Composer](https://getcomposer.org)

🚀 Installation &amp; Setup
--------------------------

[](#-installation--setup)

```
composer create-project jan-wennrich/bgg-portfolio-generator
cd bgg-portfolio-generator/
```

🛠️ Usage
--------

[](#️-usage)

Generate your portfolio by running:

```
php bin/bgg-portfolio-generator.php [--bgg-token/--bgg-password] [bgg_username]
```

Replace `[bgg_username]` with a BoardGameGeek username.

You have to authenticate via:

- API token (recommended): `--bgg-token=` (replace `` with your API token)
- Password (workaround): `--bgg-password=` (replace `` with the password of the `bgg_username`)

*(More information about authentication methods in the ["Authentication"-section](#-authentication) below)*

Example command:

```
php bin/bgg-portfolio-generator.php generate Klabauterjan --bgg-token="123-foo-bar-456"
```

The generated portfolio will be located in the `public/` directory.
Open `public/index.html` in your browser to view it.

To keep your portfolio up to date, consider automating this command (e.g. via a daily CRON job or GitHub Action).
*(More information about automation in the ["Deployment"-section](#-deployment) below)*

🔑 Authentication
----------------

[](#-authentication)

Recently the BoardGameGeek API requires authentication to access the data required to generate a portfolio.

You can either authenticate via an [API token](https://boardgamegeek.com/using_the_xml_api) or your BoardGameGeek password as a workaround.

The password workaround limits the functionality of the portfolio generator (e.g. loading thumbnails for plays does not work).
Thus using an API token is the recommended way.
Follow this link to obtain an API token: [https://boardgamegeek.com/using\_the\_xml\_api](https://boardgamegeek.com/using_the_xml_api)

📦 Deployment
------------

[](#-deployment)

To publish your portfolio, deploy the contents of the `public/` directory to any static web host.

You can utilize the [BGG Portfolio Generator Action](https://github.com/marketplace/actions/bgg-portfolio-generator) to deploy your portfolio to GitHub Pages for free. Refer to its usage example to get started.

🤝 Contributing
--------------

[](#-contributing)

Contributions are welcome! To get started:

- Fork the repository and create a feature branch
- Submit a pull request with a clear description of your changes
- Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for commit messages
- Update documentation if your changes introduce new functionality

📄 License
---------

[](#-license)

This project is licensed under the **GNU General Public License v3.0 or later**. See the [`LICENSE`](LICENSE) file for details.

###  Health Score

44

—

FairBetter than 92% of packages

Maintenance87

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~74 days

Total

4

Last Release

65d ago

PHP version history (3 changes)1.0.0PHP ~8.3

1.1.0PHP ^8.3

1.2.0PHP ^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/a3c973c7ba25b01e99b4c6a62de5c3e39a3097e279fbf42bb835dd14bef71888?d=identicon)[Klabauterjan](/maintainers/Klabauterjan)

---

Top Contributors

[![JanWennrich](https://avatars.githubusercontent.com/u/42703348?v=4)](https://github.com/JanWennrich "JanWennrich (70 commits)")

###  Code Quality

Static AnalysisPHPStan, Rector

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/jan-wennrich-bgg-portfolio-generator/health.svg)

```
[![Health](https://phpackages.com/badges/jan-wennrich-bgg-portfolio-generator/health.svg)](https://phpackages.com/packages/jan-wennrich-bgg-portfolio-generator)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

19462.3M1.3k](/packages/drupal-core)[silverstripe/framework

The SilverStripe framework

7213.5M2.5k](/packages/silverstripe-framework)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

728272.9k20](/packages/civicrm-civicrm-core)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
