FG-CollectLabs

dev hub
Health Checks
Public endpoints — checked on load
Live & Deployed
Card Inventory
live
Multi-tenant TCG card inventory manager. Track cards from box breaks, location (chaos-sort bins), listings, and sales. Firebase Google OAuth. eBay order CSV import.
Vite / React / TSFirebase AuthCloudflare Tunnel
cd card-inventory-frontend && npm run dev
EV Calculator
live
Sealed product EV calculator for MTG commander precon cases. Per-deck and per-card market price breakdown, platform fee modeling (TCGPlayer / Manapool / eBay), eBay File Exchange CSV export, card scan identification. Firebase Google OAuth.
GoHugoVanilla JSFirebase AuthGitHub PagesCloudflare Tunnel
cd ev-calculator/frontend && hugo serve
WS Set Analysis Blog
live
Preorder investment analysis for Weiss Schwarz booster sets. Hugo static site on GitHub Pages. Claude agent drives IP strength, EN historical, and JP set analysis sub-agents via MCP servers.
Hugo Python MCP (Jikan / Yuyutei / TCGPlayer) GitHub Pages
cd ws-set-analysis/blog && hugo serve
Frontends — Local Dev
Market Tracker Frontend
local :5175
Dark SPA for TCG market price tracking. Sets index, set detail (market / cards / sealed / graded ROI tabs), card price history, graded coverage.
ViteReact 18 TypeScriptTailwind v3
cd market-tracker-frontend && npm run dev
Card Identifier Frontend
local :5174
Image upload UI for card identification via pHash + OCR. Settings drawer configures backend URL. Kept standalone — not merged into card-inventory.
ViteTypeScript
cd card-identifier-frontend && npm run dev
Slab Cracker
local :5173
Card centering measurement web app. No backend — CORS-restricted fetches only. PSA/CGC cert auto-fetch lives in the companion Chrome MV3 extension.
ViteTypeScript Chrome MV3 extension
cd slab-cracker-frontend && npm run dev
AnonTCG Deal Analyzer
local :1314
Hugo dashboard comparing AnonTCG subscriber prices ($1k coupon) vs TCGPlayer sealed and box-break EV. 45-product YAML catalog across 5 games. Sortable by discount metric.
HugoPython PlaywrightMCP
cd anontcg-deal-analyzer/blog && hugo serve -p 1314
Backends — Homelab Proxmox
Market Tracker Backend
192.168.86.182:8080
Go API + PostgreSQL for weekly TCG market prices. Catalog reads, price snapshots, graded data, BQ/GCS sync. Central price oracle for EV calculator and card-inventory.
Gopgx / sqlc PostgreSQLBigQueryGCS
cd market-tracker-backend && go run ./cmd/api
EV Calculator API
ev-api.futuregadgetlabs.com
Go HTTP API serving sealed product EV reports. Reads YAML deck configs from disk. Pulls live prices from market-tracker (TCGCSV fallback). Proxies card-identifier for scan uploads. Image proxy for TCGPlayer CDN.
GoYAMLCloudflare Tunnel
cd ev-calculator && go run ./cmd/api
Card Identifier Backend
192.168.86.181:8080
Go microservice for pHash + OCR card identification. Returns candidates with confidence scores. Optional market-tracker price integration. Will be called by card-inventory-backend.
Gopgx / sqlc PostgreSQLGCS
cd card-identifier-backend && go run ./cmd/api
Card Inventory API
inventory-api.futuregadgetlabs.com
Go API for multi-tenant card inventory. Acquisitions (box breaks), locations (chaos-sort), listings, transactions, eBay order CSV import. Firebase JWT auth. PG on same LXC (docker-compose). LXC 111 on proxmox1.
Gopgx PostgreSQL 16 (docker)Firebase AuthCloudflare Tunnel
cd card-inventory-backend && go run ./cmd/api
Sellthrough Analyzer
pipeline
Python ingest pipeline — scrapes TCGPlayer/Manapool weekly, normalizes, and POSTs bulk price records to market-tracker-backend. Also feeds BigQuery for analytical history.
PythonBigQuery
CLI Tools
Graded Regrade Tracker
CLI
Buy → analyze → grade → sell P&L tracker. Records purchases, pre-grading analyses, submissions, results, and sales. Joins market-tracker for market context at report time.
Gopgx / sqlc PostgreSQL (graded_tracker on .182)
graded-regrade-tracker report pnl
In Planning
Graded Market Watch
planning
Extension of market-tracker-backend: PSA/CGC pop report scrapers, gem rate computation, weekly graded price snapshots (PriceCharting + Apify eBay), watchlist signals (undervalued-10, regrade-candidate-9).
Go (in market-tracker-backend) PriceCharting APIApify / eBay
Data Flow & Dependencies
Data Ingestion

  sellthrough-analyzer (Python scraper)
    │  scrapes TCGPlayer / Manapool weekly
    │  POSTs bulk price records
    ▼
  market-tracker-backend  ←────────────── PostgreSQL 192.168.86.182 · market_tracker DB
    │  Go API — catalog, weekly price snapshots, graded layer
    ├─ weekly ──▶  BigQuery  (full snapshot history, analytical queries)
    └─ weekly ──▶  GCS       (static JSON for stale consumers)


Price Consumers

  market-tracker-frontend  (Vite/React :5175)
    └── GET /v1/*  ──▶  market-tracker-backend

  ev-calculator  (Hugo :1313  +  Go API :8081)
    └── API pulls prices from market-tracker-backend (TCGCSV fallback)

  graded-regrade-tracker  (Go CLI)
    └── joins market-tracker DB at report time for market context at purchase date


Card Identification

  card-identifier-backend  ←──────────────── PostgreSQL 192.168.86.181 · card_identifier DB
    │  Go API — pHash + OCR; optional price lookup from market-tracker   GCS (scan images)
    │
    ├── called by  card-identifier-frontend  (Vite :5174)
    ├── called by  ev-calculator  API (proxied scan endpoint)
    └── will be called by  card-inventory-backend  (planning)


Standalone / Self-Contained

  slab-cracker-frontend  (Vite :5173)  ─  no backend; CORS fetches only
    └── slab-cracker-extension  (Chrome MV3)  — right-click capture, PSA/CGC cert fetch

  anontcg-deal-analyzer  (Hugo :1314)
    └── Python MCP servers (AnonTCG Shopify API + Playwright TCGPlayer scrape)
    └── YAML product catalog (45 products, 5 games)

  ws-set-analysis  (Hugo → GitHub Pages)
    └── Python MCP servers (Jikan/MAL, Yuyutei JP, TCGPlayer EN)
    └── Claude agent drives analysis + post generation


Card Inventory  ← live

  card-inventory-frontend  (inventory.futuregadgetlabs.com  · Vite/React)
    └── Firebase Google OAuth → Bearer token on every request
    └── GET/POST /api/v1/*  ──▶  card-inventory-backend

  card-inventory-backend  (inventory-api.futuregadgetlabs.com  · LXC 111 .201)
    │  Firebase JWT verification (no service-account key)
    │  multi-tenant RLS: inventory_items, locations, acquisitions, listings, transactions
    ├── PostgreSQL 16 (docker compose, same LXC)  ·  card_inventory DB
    ├── will call  card-identifier-backend  (scan identification)
    ├── will call  market-tracker-backend   (market price at acquisition)
    └── nightly BQ export (planned) ──▶  card_inventory BQ dataset

  graded-market-watch  (inside market-tracker-backend)
    └── pop report scrapers, gem rate view, watchlist signals
Database Map
HostDatabaseOwner ServiceKey Tables
192.168.86.182:5432market_trackermarket-tracker-backendgames, sets, cards, sealed_products, weekly_prices, graded_snapshots_weekly
192.168.86.182:5432graded_trackergraded-regrade-trackertracked_cards, purchases, grading_submissions, grading_results, sales
192.168.86.181:5432card_identifiercard-identifier-backendcards (pHash fingerprints), scan_batches, scan_results
192.168.86.201 (docker, LXC 111)card_inventorycard-inventory-backendorgs, inventory_items, locations, acquisitions, transactions, listings, item_transformations
BigQueryprice_trackersellthrough-analyzerweekly_prices (full snapshot history for analytical queries)
BigQuery (planning)card_inventorycard-inventory-backendinventory_snapshots, transactions, transformations — joined against price_tracker