AmanTahiliani 9ee14e5c89 fix(frontend): restore pit-stop markers on strategy stint timeline (#45)
Wire Race Hub pit_stops into TyreStintTimeline via optional per-row
pitStops laps; render vertical markers at stint boundaries with driver/lap
tooltips. Matches pre-extraction positioning ((lap-1)/totalLaps).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 01:04:13 -04:00
2026-07-04 00:32:20 -04:00
2026-03-03 00:51:53 -05:00
2026-03-03 00:51:53 -05:00
2026-05-25 10:17:07 -04:00
2026-05-24 20:56:00 -04:00

box-box

"Box, box. Box, box." Every F1 race engineer, ever.

box-box is an unofficial F1 race-weekend command center: live timing, Race Hub analytics, championship context, paddock briefing feeds, and local historical data in one Go + React app, with a preserved Bubble Tea TUI.

Live demo: box-box.amantahiliani.com

box-box Command Center

What It Does

  • Command Center: current race-weekend home with GP identity, live status, schedule, championship leaders, and direct analysis links.
  • Race Hub: session workspace for overview, race story, strategy, laps, weather, race control, and dataset coverage.
  • Live Timing: official F1 SignalR feed bridged through the Go server to the browser via SSE.
  • Championship View: standings, form, teammate context, cumulative points, and a simulator.
  • Paddock Briefing: RSS/Atom news ingestion for a local race-weekend briefing surface.
  • Local-first history: OpenF1 data ingested into a SQLite domain database for fast historical browsing.
  • Terminal Mode: Bubble Tea TUI with standings, calendar, driver profiles, live timing, track map, battles, pit window, and replay.

Quickstart

git clone https://github.com/AmanTahiliani/box-box.git
cd box-box

npm install
npm install --prefix frontend

npm run build --prefix frontend
go run ./cmd/main.go --web
# http://localhost:8080

For a local frontend development loop with seeded data, see docs/getting-started.md.

Project Shape

Area What lives there
cmd/main.go Entry point for TUI, web server, and ingestion CLI
internal/web/ Go REST API, SSE live bridge, SPA serving
internal/live/ Official F1 SignalR client shared by Web and TUI
internal/store/, internal/ingest/, internal/query/ Local SQLite domain database, ingestion, and read models
internal/ui/ Bubble Tea TUI
frontend/ React + Vite + TypeScript web app
tests/ Playwright e2e and visual coverage

The Web UI is local-first and should call the Go APIs under /api/v1/...; it should not read OpenF1 directly.

Documentation

  • Getting Started: install, build, run modes, TUI keybindings, and web routes.
  • Data and Operations: ingestion, environment variables, local files, and live timing notes.
  • Testing: Go, frontend, e2e, and visual regression commands.
  • Architecture Notes: deeper design rationale, data-source decisions, and phase history.

Status

Pre-beta and actively developed. The Web UI is the primary surface; the TUI is preserved and still useful for terminal workflows. Live timing depends on F1 broadcasting timing data, so it is only fully active during live sessions.

License

MIT © Aman Tahiliani

Unofficial project; not associated with Formula 1 or the FIA.

Description
No description provided
Readme 69 MiB
Languages
Go 44.1%
TypeScript 41.3%
CSS 9.4%
JavaScript 2.9%
HTML 1%
Other 1.3%