A web app for browsing BattleTech mechs, filtering by era/faction/tonnage, and building lance lists.
- Backend: Go 1.22+ with stdlib router and pgx for Postgres
- Frontend: React 18 + TypeScript + Vite
- Database: PostgreSQL 16
docker compose up -dcd backend
go run ./cmd/serverServer starts on http://localhost:8080
cd frontend
npm install
npm run devFrontend starts on http://localhost:3000 (proxies API to :8080)
| Method | Path | Description |
|---|---|---|
| GET | /healthz |
Health check |
| GET | /api/mechs |
List mechs (filterable) |
| GET | /api/mechs/:id |
Mech detail with equipment |
name— search by mech or chassis nametonnage_min,tonnage_max— filter by weight classera— filter by era namefaction— filter by faction name or abbreviationrole— filter by role
slic/
├── backend/ # Go API server
│ ├── cmd/server/ # Entry point
│ └── internal/ # DB, handlers, models, ingestion
├── frontend/ # React + Vite app
├── data/ # Data source documentation
└── docker-compose.yml
See data/README.md for details on MegaMek, MUL, Sarna, and miniature sources.