BeamNG.Earth
A 1:1 scale streamed Earth for BeamNG.drive: real elevation and satellite imagery, floating origin, LOD streaming from a companion server
Backgammon blunder analysis: import your matches, search positions by structure and mistake, measure your play, study with spaced repetition — with an embedded evaluator
GamesGo · JavaScriptGitHub @kevungOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Loading the full README. The saved excerpt is shown below.
A backgammon blunder analysis tool. Import your matches from eXtreme Gammon, GnuBG and BGBlitz, store every position once, search them by structure and by mistake, measure your play, and study the positions you keep getting wrong — with an evaluator built in.Read the full README ↗A backgammon blunder analysis tool. Import your matches from eXtreme Gammon, GnuBG and BGBlitz, store every position once, search them by structure and by mistake, measure your play, and study the positions you keep getting wrong — with an evaluator built in.
Documentation, in nine languages: https://kevung.github.io/blunderDB/
A library of positions
.xg, .xgp), GnuBG (.sgf), BGBlitz (.bgf) and Jellyfish (.mat), by file, by folder or by drag-and-drop. Positions are deduplicated across imports; imported analyses, comments, luck and XG flags travel with them..mat to replay it in another program; export positions, or selected parts of a database.Measuring and studying
blunderdb analyze), without ever overwriting an imported analysis.| Eval panel (gammonNet) | Stats dashboard |
|---|---|
Sharing a database
.dbx container (AES-256-GCM, Argon2id) with a readable header.One binary, five modes, dispatched on the first argument:
| Mode | Purpose |
|---|---|
| (no argument) | Desktop app (Wails: Go backend, Svelte frontend) — Linux, macOS, Windows |
create, import, export, search, list, edit, match, epc, analyze, vacuum, verify, identity, info, … | Command-line interface over the same database — see CLI_USAGE.md |
serve | Headless HTTP + JSON daemon on SQLite or multi-tenant PostgreSQL, meant to run behind an authenticating reverse proxy — see doc/source/mode_headless.rst |
migrate | Copy a SQLite database into PostgreSQL under a tenant |
call | Generic in-process dispatcher over the daemon's handlers, for scripting and tests |
The interface is available in English, French, German, Italian, Spanish, Finnish, Japanese, Greek and Russian.
Every asset on the Releases page comes with a .sha256 file (or the consolidated SHA256SUMS); verify with sha256sum -c. Every asset also carries a build-provenance attestation, verifiable with gh attestation verify <asset> --repo kevung/blunderDB — no key to manage. A minisign signature over SHA256SUMS is opt-in and not yet enabled; see packaging/minisign/.
| Platform | How |
|---|---|
| Debian, Ubuntu, Mint | sudo apt install ./blunderdb_x.y.z_amd64.deb |
| Fedora, openSUSE | sudo dnf install ./blunderdb-x.y.z.x86_64.rpm |
| Arch Linux | yay -S blunderdb-bin (AUR, updated on each release) |
| Any Linux with Flatpak | flatpak install ./blunderDB-x.y.z.flatpak (bundle attached to each release; not on Flathub yet) |
| Other Linux | .tar.gz or raw binary — webkit2gtk-4.1 build for current distributions, webkit2gtk-4.0 build for Ubuntu 22.04-era systems |
| macOS | Universal .app (unsigned — see the security appendix in the docs) |
| Windows | .exe (unsigned — see the security appendix in the docs) |
Server (serve mode) | docker pull ghcr.io/kevung/blunderdb-serve:x.y.z (amd64 and arm64; also builds from Dockerfile.serve) |
winget and Homebrew are not published yet: each release ships the rendered manifests (blunderDB-winget-manifests-x.y.z.zip, blunderdb-x.y.z.rb) — see packaging/winget/ and packaging/homebrew/ for the submission steps.
The full guide, per system and in nine languages: Download and install.
Prerequisites: Go 1.27 (go.mod requires 1.26.0 at least), Node.js 22, Wails v2 CLI 2.15.
go install github.com/wailsapp/wails/v2/cmd/[email protected]
git clone https://github.com/kevung/blunderDB.git
cd blunderDB
make build # wails build -tags webkit2_41 → build/bin/blunderDB
make dev # hot-reload development build
make build targets webkit2gtk-4.1; plain wails build targets webkit2gtk-4.0. The daemon alone builds without Wails or CGO: go build ./cmd/serve.
./blunderDB # desktop app
./blunderDB import --db my.db --type match --file game.xg # import a match
./blunderDB search --db my.db --error-min 0.05 # search by error
./blunderDB list --db my.db --type players # players table
./blunderDB analyze --db my.db # fill missing analyses
./blunderDB serve --db my.db --addr 127.0.0.1:8080 # headless daemon
In the desktop app, open or create a .db file, then import match files via the toolbar or drag-and-drop.
| Layer | Technology |
|---|---|
| Backend | Go · pure-Go SQLite (modernc.org/sqlite) · PostgreSQL (server mode) |
| Evaluator | gammonNet ported to Go · GnuBG bearoff tables (one-sided and two-sided) |
| Frontend | Svelte 5 · Vite · two.js (board rendering) |
| Framework | Wails v2 (Go ↔ WebView bridge) |
| Docs | Sphinx, 9 languages (French source + 8 gettext translations) |
Everyone taking part is bound by the code of conduct.
Contributions are welcome — see CONTRIBUTING.md: prerequisites, make check (everything CI enforces), the worktree workflow, and the two documentation rules — a user-visible change ships with its French documentation in the same branch, and a modified .rst ships with its eight .po in the same commit. ARCHITECTURE.md is a diagram-first tour of the system; the invariants that tests do not catch are listed in CLAUDE.md; design decisions are recorded in docs/adr/.