Everything you need to use the app and to import / export your data. The app runs entirely on your device — there is no account and nothing is uploaded unless you use Cloud Sync.
| Tab | What it does |
|---|---|
| 📦 My Games | Import / add games, edit box dimensions, mark expansions, backup & cloud sync. |
| 🗄️ Shelves | Define shelf / storage dimensions. Presets for IKEA Kallax, Billy, Detolf. |
| 📊 Packing Results | 3D bin-packs your collection across all shelves; shows an engineering 3-view and a visual map. |
| 🚛 Moving House | Packs the whole collection into cardboard moving boxes; estimates how many boxes you need. |
| ✏️ Layout Editor | Pin specific games to a shelf and auto-fill the rest. |
| 📋 My Layout | Save any packing result as a named layout; move games between containers. |
BGG now requires you to be logged in to use its API. So:
Use the "Add game" form to type a name and dimensions directly.
Packing needs each game's box size (width × depth × height, stored in mm). Ways to get them:
bgg.xml export that has <width>/<depth>/<height> on each game) — import via the XML tab; sizes come in with the names.One JSON file holds everything — games, dimensions, shelves and saved layouts.
shelf-calculator-backup.json.Move your data between your PC and phone without files. In My Games → ☁ Cloud sync:
What 💾 Backup writes and 📂 Restore reads:
{
"v": 2,
"games": [
{ "id": 1, "bggId": "13", "name": "Catan",
"w": 295, "d": 295, "h": 75, "qty": 1,
"isExpansion": false, "inBaseBox": false }
],
"shelves": [ { "id": 1, "name": "Kallax", "w": 330, "d": 380, "h": 330 } ],
"nextId": 2,
"layouts": [ /* saved layouts */ ]
}
Dimensions w/d/h are in millimetres. bggId is used to match games on a "Dimensions only" import.
The importer is flexible: it auto-detects the delimiter (, ; or tab), the unit (inches / cm / mm), and these column names:
| Meaning | Accepted column headers |
|---|---|
| BGG id | bggid, objectid, id |
| Name | name, objectname, title |
| Width | w, w_mm, width |
| Depth | d, depth, thickness |
| Height | h, height, length |
| Optional | qty, isExpansion, inBaseBox |
Example:
bggId,name,w_mm,d_mm,h_mm 13,Catan,295,295,75 9209,Ticket to Ride,295,295,70
Both BGG shapes are accepted on the XML tab:
<item objectid="…"><name>Catan</name>…</item>. Dimensions only if the export includes <width>/<depth>/<height> (in inches).<item id="…"><name type="primary" value="Catan"/>…<versions>…<width value="…"/>…</versions></item>.localStorage for this site. It's per-device and per-browser — Chrome and Firefox don't share, and phone and PC don't share, unless you use Backup files or Cloud sync.%APPDATA%\shelf-calculator\.Since late 2025 BGG locked its XML API behind authentication (the "XML API registration" change):
In a desktop browser logged in to boardgamegeek.com: press F12 → Application → Cookies → https://boardgamegeek.com. Copy the values of bggusername, bggpassword and SessionID and paste them into the app as:
bggusername=YOU; bggpassword=...; SessionID=...
Board Game Shelf Calculator — local-first, no account required.