Files
Shadowbroker/frontend
C3B2W23andClaude Fable 5.1 f95b0eccc5 fix(map): keep tracked aircraft and yacht labels in step with data filters
Tracked-flight and tracked-yacht HTML labels are rendered from the raw
store arrays, while their icons come from the worker GeoJSON that already
has the operator's data filters applied. Filtering Tracked Aircraft to a
category therefore removed the icons but left every other aircraft's name
on the map.

Derive the label subjects from the ids in the filtered feature collection
so a label is only drawn where an icon is. The id rule lives in one shared
helper used by both the worker builders and the label selector; rows with
no identifier keep the worker's positional fallback and draw no label.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-13 14:57:09 -07:00
..
2026-05-01 22:56:50 -06:00
2026-03-04 22:44:08 -07:00
2026-05-01 22:56:50 -06:00

ShadowBroker Frontend

Next.js 16 dashboard with MapLibre GL and Framer Motion.

Development

npm install
npm run dev        # http://localhost:3000

API URL Configuration

The browser calls relative /api/* paths. The catch-all route handler at src/app/api/[...path]/route.ts proxies those requests to the backend using the server-side BACKEND_URL environment variable at request time.

This keeps the backend URL out of the client bundle and lets Docker or other deployments change the backend target without rebuilding the frontend.

Common Scenarios

Scenario Action needed
Local dev (localhost:3000 + backend on 127.0.0.1:8000) None. The proxy defaults to http://127.0.0.1:8000.
Docker Compose None. docker-compose.yml sets BACKEND_URL=http://backend:8000.
Backend on a different host or port Set BACKEND_URL before starting the Next.js server/container.
Reverse proxy in front of the frontend Point external clients at the frontend; keep BACKEND_URL set to the backend address reachable from the Next.js server.

Setting BACKEND_URL

# Shell (Linux/macOS)
BACKEND_URL=http://myserver:8000 npm run dev

# PowerShell (Windows)
$env:BACKEND_URL="http://myserver:8000"; npm run dev

# Docker Compose
# Edit the frontend service environment or add a compose override:
# BACKEND_URL=http://myserver:8000

Theming

Dark mode is the default. A light/dark toggle is available in the left panel toolbar. Theme preference is persisted in localStorage as sb-theme and applied via the data-theme attribute on <html>. CSS variables in globals.css define all structural colors for both themes.