blunderDB

blunderDB is a software for creating backgammon position databases. Its main strength is to provide a single place where a player can aggregate the positions he or she has encountered (online, in tournaments) and be able to review these positions by filtering them with various filters that can be arbitrarily combined. blunderDB can also be used to create catalogs of reference positions.

The present documentation is structured as follows:

  • the download and installation section explains how to obtain and run blunderDB.

  • the manual describes the general functioning of blunderDB and how it should be used.

  • the user guide is a practical introduction for quickly using blunderDB.

  • the list of commands as well as the list of keyboard shortcuts enables efficient use of blunderDB.

  • the command line interface (CLI) section describes the available commands for bulk import, automation, and scripting.

  • The FAQ provides answers to the most frequently asked questions.

Version history

Version

Date

Cause and/or nature of changes

0.1.0

December 31, 2024

Beta version

0.2.0

January 6, 2025

Various bug fixes.

Addition of match/TP/GV tables.

Added search filters (moves, cube decisions, date).

Added metadata for positions.

Import/export functionality between blunderDB instances.

Added metadata functionality for databases.

Introduction of version numbers (database and application).

0.3.0

January 27, 2025

Various bug fixes.

Automatically saves the window size.

Imports any comments from XG.

0.4.0

February 3, 2025

Various bug fixes.

Adding an icon for blunderDB.

Filter corrections.

Adding macOS support.

0.5.0

February 4, 2025

Addition of new filters (mirror, non-contact, jan blot, outfield blot).

0.6.0

February 13, 2025

Add filter library.

Displaying the database version in the metadata.

0.7.0

February 16, 2025

Support Japanese and German XG exports.

0.8.0

May 3, 2025

New button to hide pipcount.

Button to load random position.

0.9.0

November 02, 2025

Fix filter library bug.

Database import/export.

Display arrows for selected moves.

Keyboard shortcuts for import/export.

0.10.0

February 25, 2026

Match import from eXtreme Gammon (XG/XGP), GNUbg (SGF), Jellyfish (MAT/TXT) and BGBlitz (BGF/TXT).

Match navigation: browse through moves of an imported match, with played move highlighting.

Match panel: list, sort, inline editing, player swap, tournament assignment.

Recursive folder import and drag & drop import.

EPC (Effective Pip Count) calculator with built-in GNUbg bearoff database.

Collections: custom position grouping.

Tournaments: group matches by event.

Save and restore session state (last search, current position).

Automatic database schema migration.

Multi-engine display in analysis.

Player 1 error/blunder filter in searches.

Database export with granular selection (matches, collections, tournaments, played moves).

Match navigation button.

Pipcount display in match navigation.

Complete command-line interface (CLI).

Automatic reopening of the last database.

Improved toolbar and icons.

0.11.0

March 6, 2026

Filter to search within currently filtered positions.

Add match and tournament filters.

Automatic board clearing when opening the search panel.

0.12.0

March 19, 2026

Import eXtreme Gammon position files (XGP) with analysis.

0.13.0

March 28, 2026

Interface simplification: match and collection navigation is now done directly through panels.

Command line integrated into the status bar.

Console panel renamed to Log panel.

Dedicated EPC panel in the bottom panel.

Copy/paste position in the search panel.

Drag and drop to reorder collections, positions within collections, and matches within tournaments.

Tournament column in the match panel with inline editing.

Automatic display of the analysis panel after a search.

0.14.0

March 30, 2026

Dedicated Anki panel for spaced repetition study (FSRS algorithm).

Import comments from XG files.

0.15.0

March 31, 2026

Export position as PNG image to clipboard (board only via Ctrl+X, or board with analysis via Ctrl+X Ctrl+X).

0.16.0

April 18, 2026

Database schema v2.0.0: Zobrist-hashed position deduplication, denormalized filter columns, bitboard pattern pre-filter, WAL journaling. Batch import >=3x faster, filtered search <=100 ms on 10k+ positions. NOTE: DB files created with v0.16.0 cannot be opened by older versions; old DBs are auto-migrated in place (back up first).

0.17.0

April 20, 2026

Storage optimization: zlib compression of analysis data (~80% reduction), compact board encoding (~90% position state size reduction). Added 5 missing indexes for search performance. Fixed cube error search returning wrong results. Fixed EDIT mode after search returns no results. Restored search panel state when switching tabs. Removed 62 debug print statements from hot search/filter paths.

0.18.0

April 20, 2026

Major codebase refactoring: split db.go (10k lines) into 19 domain-focused files, extracted 7 service modules from App.svelte (4,888→469 lines), consolidated modal/panel stores. Full migration to Svelte 5 runes. Replaced 9 table modals with a generic DataTableModal component. Added ESLint + Prettier + vitest (125 frontend tests) with CI enforcement. WCAG 2.1 AA accessibility baseline (visible focus, ARIA roles, keyboard navigation). Upgraded Database mutex to RWMutex for better read concurrency. Complete CLI documentation (CLI_USAGE.md + Sphinx FR/EN). Rewrote README. Resolved all ESLint warnings (46→0) and Vite build warnings (6→0).

0.19.0

May 7, 2026

Added Stats panel: PR (Performance Rate), Snowie Error Rate and MWC cost (Match Winning Chance cost) indicators, filter bar (player, tournament, dates, decision type, match length), Dashboard tab with level cards / rolling PR / top blunders, Progression tab with per-tournament curve and per-match scatter plot, Errors tab with cube-action breakdown and error magnitude histogram. Interactive drill-down to positions / matches / tournaments from all indicators. Instant PR / MWC toggle. CLI command list –type stats. Alignment of PR / Snowie ER / MWC indicators with eXtremeGammon and gnuBG (0.16 equity threshold for close cubes). Fixed cube_error calculation for Double/Pass decisions. Statistics model documentation (Annex: Statistics model — XG / gnuBG / blunderDB alignment). See Stats Panel.

Table of contents

Contact

Author: Kévin Unger <blunderdb@proton.me>. You can also find me on Heroes under the username postmanpat.

I initially developed blunderDB for my personal use to help detect patterns in my mistakes. However, it’s very rewarding to receive feedback, especially after spending a lot of time on design, coding, and debugging. So feel free to reach out to share your experiences. All (constructive) feedback is welcome.

Here are several ways to discuss:

Donate

If you appreciate blunderDB and want to support its past and future developments, you can

  • buy me a drink if we have the pleasure of meeting!

  • make a small donation via PayPal to the address blunderdb@proton.me

Acknowledgments

I dedicate this little software to my wife Anne-Claire and our dear daughter Perrine. I would especially like to thank a few friends:

  • Tristan Remille, for introducing me to backgammon with joy and kindness; for showing the way in understanding this wonderful game; and for continuing to support me despite my poor attempts to improve my play.

  • Nicolas Harmand, a cheerful companion for over a decade in great adventures, and a fantastic sparring partner since he has caught the backgammon bug.