GatheringTheBulk is a locally hosted inventory management system for Magic: The Gathering (MTG), prioritizing data integrity via Scryfall UUIDs.
- Strict Scryfall Integration: Uses Scryfall UUIDs as the source of truth.
- Offline Search: Fast, local prefix search using a synced SQLite database.
- Async Jobs: Sync and processing happens in the background.
- Bulk Import: Upload
.csvfiles to import cards. Ambiguous items trigger a review workflow. - Review Queue: Manually resolve import conflicts or missing data.
- Pure Go: No external runtime dependencies (Node/Python) required for the backend.
- HTMX: Modern, responsive UI without heavy client-side frameworks.
- Go 1.22+
- Clone the repository.
- Run
go mod download.
go run cmd/server/main.goThe server will start at http://localhost:8080.
- Go to Settings.
- Click Update Card Database to download the latest Scryfall data.
- This downloads ~400MB of JSON and ingests it. It may take 1-2 minutes.
- You can monitor progress on the page.
- Once synced, go to Dashboard and click + Add Card to start managing your inventory.
- Go to Settings -> Bulk Import.
- Upload a CSV file. It must have headers.
- Required:
setandcn(Collector Number) ORname. - Optional:
quantity,condition,foil,language.
- Required:
- Monitor the import job.
- If items are flagged for review, go to the Review Queue tab to resolve them.
cmd/server/: Main entry point.internal/: Core application logic (Database, Workers, Scryfall Client).web/templates/: HTML templates using HTMX and Pico.css.