The Shelf

Self-hosted · Open source · Made for families

Every game you own, on one shelf.

The Shelf is a home for your family’s board games, card games, RPG books and console games. Answer “do we own it?”, track who borrowed what, and log what you played, on a server you run yourself.

  • Board game
    Lanternfall2–4p · 45 min
  • Card game
    Orchard Kings2–5p · 20 min
  • RPG
    The Hollow CrownRPG · Rulebook
  • Board game
    Out with JonasDue Sunday
    Quiet Thieves3–5p · 60 min
  • Video game
    Tidepool RunSwitch · 1–2p
  • Puzzle
    Thousand DoorsPuzzle · 1–4p

Everything a game shelf needs to know

Small enough to run on a spare box, complete enough to replace the spreadsheet, the sticky notes and the “who has my copy?” text thread.

  • A shelf, not a spreadsheet

    Covers stand on planks. Filter by type, player count, time, location, owner or tag, and ask “do we own…?” in one search box.

  • Copies, not just titles

    Two copies of the same game? Each has its own owner, location, condition and price. Digital and console copies track their platform.

  • Loans without nagging

    Lend a copy in a couple of taps, pick the borrower from earlier loans, and see what is late at a glance. Due dates are optional.

  • Plays and ratings

    Log who played in ten seconds, friends included. See what gets played most and what has not hit the table in a year.

  • Wishlists per person

    Everyone keeps their own list, with links and gift hints. Turn an item into a catalog entry when it arrives.

  • Import and lookup

    Bring a CSV with you. Add games with an optional BoardGameGeek lookup, or scan a barcode on browsers that support it.

Warm, calm and easy to read

Colour stays quiet so the covers carry it. Light and dark follow your device, and on phones the app becomes a bottom tab bar with sheets for lending and logging.

The library page: a sidebar of filters beside a grid of game covers standing on wooden planks, with three games tagged as out on loan.
The library, with demo data.

Share the shelf, keep the private bits private

  • Profiles for everyone

    Give kids a restricted, read-only profile. Games you mark hidden, and their pictures if you choose, never reach it.

  • Guest links

    Share a read-only link with friends before game night. It expires, can be revoked, and shows only the games you allow. Visitors get a picker for player count and time.

  • Enforced on the server

    Hidden means hidden in the response, not just in the interface. Ratings, prices and owners are never sent to guests.

Your server, your library

  • Runs in Docker with PostgreSQL. A small VM or home server is plenty.
  • Your data stays on your server. Fonts and assets are self-hosted, and lookups only happen when you ask for one.
  • An activity trail shows who changed what, so mistakes are easy to trace.
  • Deletes go to a trash first and can be restored for 30 days by default.

It is built to sit behind Tailscale on a Proxmox host, and works anywhere Docker does.

Up and running in a few minutes

git clone https://github.com/chimericdream/game-inventory.git
cd game-inventory
cp .env.example .env        # set POSTGRES_PASSWORD
docker compose -f docker-compose.prod.yml up -d --build

Then open http://localhost:3000 and create your household. The self-hosting guide covers HTTPS, automatic updates and backups.