Offline Navigator Binder
Self-contained file://-compatible copy of the navigator-critical pages, for race-day use offshore with no internet connection. Built once pre-race, copied to nav laptop or phone, opened in any browser.
Why it exists: The production site at crew.lupodimare.site is behind Cloudflare Access — offshore = no access. Iridium/StarLink too slow for live site (some pages >10 MB). Race-day decisions can't depend on connectivity.
How to build it
.venv/bin/python scripts/build_navigator_binder.py
Or zip-bundle for easy transfer:
.venv/bin/python scripts/build_navigator_binder.py --zip
Output:
output/lupo_navigator_binder/ ← directory bundle (~25 MB, 86 pages, 29 maps)
output/lupo_navigator_binder.zip ← zipped version (~6 MB)
The build: runs mkdocs build against mkdocs.binder.yml with use_directory_urls: false so file:// works; disables Google Fonts; curates navigator-focused subset; post-processes Folium maps to rewrite cross-links; drops README.txt at binder root.
How to use it on race day
- Pre-race: rebuild the binder during race week. Copy
output/lupo_navigator_binder/(whole folder) or zip to: nav-station laptop, navigator's phone, any backup device - Offshore: open
index.htmlin any browser. No internet required. Maps stay interactive. - On watch: 10 onboard cards are the primary reference. Stream-corridor decision and winner-route maps have historical data for the crossing.
- Print backup: every page prints cleanly via File → Print. Use Save as PDF.
Crew phones (everyone, not just the navigator)
The binder folder is the navigator's offline copy — it browses best on a laptop; file:// relative links are unreliable in iOS Files/Safari. For the other ~9 crew, make a one-time PDF pack instead — it opens identically on every phone, prints, and laminates:
- On
crew.lupodimare.site(or the local build), open each of the 10 onboard cards + MOB card + emergency quick reference + comms plan + decoder. - File → Print → Save as PDF for each (the print stylesheet fits each card to one page). Or combine into a single PDF with Preview/Acrobat.
- AirDrop / message the pack to every crew member before leaving the dock, and add it to the T-1 checklist.
This is the realistic offline path for the whole crew — no app, no connectivity, no file:// quirks.
Verify before departure (offline QA)
Before you rely on the binder at sea, confirm the build works offline — catch a broken build on shore, not at the nav station with no internet:
- Open
output/lupo_navigator_binder/index.htmlin a browser with Wi-Fi off. - Click through all 10 onboard cards — confirm each loads.
- Open at least one Folium map (e.g. a Stream-corridor map) — confirm markers, tracks, and threat zones render (the tile background may be blank offline; that is expected).
- Use Ctrl/Cmd-F to search a known term (e.g. "north wall") — confirm in-page search works.
- If any step fails, rebuild with
scripts/build_navigator_binder.pyand re-test before departure.
What's in the binder
- Navigator workflow: walkthrough, model→tactic synthesis
- Boat: Lupo specs, sail inventory, polar analysis, crossover notes, crew orientation, race-week prep schedule
- Safety & Comms: MOB card, emergency quick reference, communications plan, watch roster
- Playbooks: watch captain, navigator, driver, trim, pit, bow
- Routing — historical: winner route summary (with annotated maps), routing tactic catalog, historical race database
- Routing — Gulf Stream: framework, Stream-corridor decision, crossing strategies, seasonal baseline, WCE guide, CCR guide, RTOFS interpretation
- Routing — forecasts: weather analog framework, forecast analog matcher, pre-race data workflow, T-10 brief template, if-then playbook
- Onboard cards: all 10
- Debrief & rules: routing decision log, debrief template, rule compliance checklist
- Reference: decoder (all codes), source catalog, source classification
What's NOT in the binder (intentionally dropped)
- Routing-run logs and sensitivity tables (
08_routing_runs/) — pre-race planning artifacts - Per-day project management files (
PROJECT_PLAN.md,IMPROVEMENT_LOG.md,historical_fleet_tracks.md) - Polar degradation scenarios — embedded in polar analysis already
If you need any of these offshore: add page path to the nav: section of mkdocs.binder.yml and rebuild.
Maintenance
- Before race week: rebuild; delete old
output/lupo_navigator_binder/and re-run the script (idempotent) - When new content added: add to the
nav:section ofmkdocs.binder.ymlif navigator-critical, then rebuild - The binder is gitignored:
output/is in.gitignore; the script + config + this page are committed
Implementation notes
- No external network dependencies. Material theme configured with
font: false. SVG namespace declarations are XML URIs, not network fetches. - Path compatibility.
use_directory_urls: falsekeeps pages as.htmlfiles forfile://compatibility. - Maps offline. Folium maps bundle Leaflet JS. Map tile fetches use CartoDB Positron CDN — tiles WILL fail offline but markers, tracks, and threat zones render against a blank background.
- Build script:
scripts/build_navigator_binder.py— single-file, no external dependencies beyond mkdocs+Material.
Last build: run .venv/bin/python scripts/build_navigator_binder.py to refresh.
PRE-RACE RESEARCH — NOT race-period routing advice.