Sailing Router is a free web tool that plans a sailing route between two points — or through several stopovers — using the latest wind and current forecasts and your boat's performance profile. The result is a waypoint-by-waypoint route with estimated timing, a map you can scroll and zoom, and downloadable files you can load into your chart-plotter or keep for offline use at sea.
It runs entirely in your browser. Nothing to install.
The story — Captain Eric and the Subic–Boracay Regatta
A while back my friend Captain Eric called. He was preparing his boat for the Subic–Boracay Regatta — a classic Philippine passage of two hundred-odd nautical miles down the western edge of Luzon, round the islands and on to White Beach. He was not calling for the weather gossip; he was calling with a clear ask: "Can you help me win this one?"
The honest answer was: I can't help you win — the wind and the fleet will decide that. But I can help you sail the right line. So I pulled together the tools I had — the forecasts, the currents, a polar for his boat — and stitched them into a little routing engine. We fed in the start, the finish, the departure hour, and the thing spat out a route that threaded the offshore breeze where the inshore fleet would be parked in the lee of Zambales.
Eric read it, nodded, and went sailing.
He finished 3rd !!!
That prototype is what you are looking at now. The Subic → Boracay passage is one of the eight routes on the showcase above — every few hours it is recomputed against the latest forecast, the same way Eric used it on race morning. The tool grew from there: more boats, more regions, more polars, a proper map, comfort settings, multi-leg routes. But the brief has not changed since that first phone call — help me sail the right line.
1. Getting started
1.1 Create an account
Two paths, pick whichever you prefer:
Continue with Google or Microsoft — buttons above the email field on both Login and Register cards. One click, the provider confirms your identity, you land back on the site already verified with 50 free route credits. No password to remember; no email-verification round-trip. We never see your provider password and never get any data beyond your email + display name.
Email + password:
Click Register in the top-right of the landing page.
Enter an email address and a password (at least 8 characters).
Open the verification email and click the link.
You are now a verified user with 50 free route credits.
Credits pay for route computations: 1 credit per leg (see §7).
1.2 Log in
Use the Login tab with the same email + password.
If you forgot your password, contact support — a self-service reset flow is in the roadmap.
1.3 Plan your first route
Once verified you land on the Plan a Route tab. The shortest possible first run: type a departure port, type an arrival port, pick a boat, click Compute. Details of every field are in §3.
2. The landing page
Public to everyone (no account required):
Hero showcase — featured routes recomputed against fresh weather every few hours.
Showcase tab — eight recent routes across different regions. Click any card to open the route's map.
Regattas tab — a separate page with classic offshore races (e.g. Fastnet, Kiel Week). Same format as showcase, kept apart so the landing grid stays focused on general cruising passages.
Tidal stations counter — click it for a modal listing every harmonic station the router uses for coastal currents.
Donation link — opens a Stripe tip jar. Sailing Router is free; donations keep the servers running.
3. Planning a route
3.1 Picking start and end
There are three ways to set each location. All three write to the same hidden coordinates, so you can mix them freely.
Type a harbour name. The dropdown matches against a curated list of global harbours plus 20k+ marinas imported from OpenStreetMap and coastal city names. As you type, the country code (e.g. FRA) and rough coordinates are shown. Pick the match and the field is resolved.
The hemisphere letter (N/S/E/W) can come before or after the number.
Click on a map. Press Pick on map below the location fields to reveal an interactive map. The first click drops the departure pin (green S), the second drops the arrival pin (red E), the next clicks add stopovers (amber). Drag any pin to fine-tune its position. As you move the cursor over the map its live position is shown top-right. Pins that land on solid ground get a red outline — drag them out to water.
3.2 Picking a boat
The Boat Model field is a search box over 3,600+ performance profiles, including hundreds of real race-measured profiles plus curated generic profiles for common cruiser types. Type three or more characters to see matches; each result shows the brand and whether the profile is measured or estimated.
Once a boat is picked, a View polar matrix button appears. Hovering it shows the speed table (rows = wind speed, columns = wind angle) the router will use.
If your exact boat isn't in the list, pick the closest match — the engine falls back hierarchically (exact model → same brand + same type → same type → generic cruiser).
3.3 Departure time
The date / time picker defaults to now + 1 hour in your browser's local time zone. The time zone you see above the map is always your browser's. Change it if you plan to leave later — the forecast used for each leg is the one valid at that moment.
3.4 Stopovers (multi-leg routing)
Press + Add stopover between the Departure and Arrival fields to add intermediate waypoints. You can add up to 5. Each stopover:
Supports the same three input methods (type, GPS, map).
Comes with ↑ / ↓ buttons to reorder and an ✕ to remove.
Gets its own amber pin on the map picker.
Each stopover adds 1 extra credit to the route cost (see §7).
3.5 Preset modes
Four buttons above the advanced options set the whole parameter block in one click:
Race — no comfort limits; fastest possible route, exploring tight corners of the polar.
Active — moderate limits; fast but avoids dangerous wind / wave combinations.
Comfort — conservative; caps wind at 20 kt, waves at 3 m, requires a minimum 50° wind angle, avoids beam seas, prefers daylight sailing.
Custom — unlocks every individual advanced option.
3.6 Advanced options (Custom mode)
Efficiency — 100 % uses the full polar; lower values scale it down to account for sail condition, crew fatigue, reefing, etc.
Max wind — the route will avoid areas where forecast wind exceeds this threshold.
Max wave — significant wave height ceiling in metres (2 m calm / 3 m moderate / 4 m standard / 5 m rough).
Min TWA — minimum angle off the wind; prevents extreme upwind slogs.
Avoid beam seas — when on, the solver penalises routes with seas on the beam.
Night mode — penalises sailing after dark (useful for short-handed crews).
Min speed — if the polar predicts less than this, the router considers running the engine.
Motor speed — the speed to use when the engine is on. Setting this to 0 disables motoring.
Greediness — 1.0 gives the optimal route. A higher value trades some optimality for a better chance of finding any route through tight corridors or unfavourable wind. 1.2 is a good balance.
Corridor — how far off the great-circle line the solver is allowed to search, in nautical miles. Auto-fitted from your departure-to-arrival distance once both endpoints resolve — coastal hops get ≈ 200 nm, transatlantic crossings ≈ 2 000 nm. Once you edit the field manually, your value is pinned and we stop overriding it.
3.7 Compute
Press Compute to submit. You'll see a polling panel with an estimated duration. Typical solve times: a few seconds to a minute or two, depending on route length and corridor width.
If any of the waypoints sit outside the forecast coverage, or if the route can't be found (e.g. the start is landlocked), the compute fails cleanly and your credits are refunded automatically.
4. Reading the result
The result card appears below the form with:
A one-line summary (duration, distance, comfort score).
A safety disclaimer.
An interactive map with the full track.
Download buttons for each export format.
4.1 Map layers
Toggleable via the map's layer control:
Route — the polyline plus a circle marker at every waypoint.
Wind arrows — small pennants at each waypoint showing wind direction (from) and speed (label at the arrow's tail).
Current arrows — slimmer pennants in a dark-blue colour, placed between consecutive waypoints.
Seamarks — nautical beacons and hazards overlaid from OpenSeaMap (on by default).
Land / water — base map tiles.
Hover or tap a waypoint circle for a tooltip listing wind, waves, current, course, heading and boat speed at that point.
4.2 Legend
A small legend in the top-right of the map explains the wind-arrow colour ramp and the marker shapes. On phones the legend collapses to a "Legend" pill that expands on tap.
4.3 Comfort score
Each waypoint is given a score from 0 to 100 combining wind, waves, heel angle and wave-to-hull angle. Totals are:
- 70 + — comfortable
- 40 – 69 — active
- below 40 — rough
The route's headline comfort score averages every waypoint.
4.4 Forecast-horizon warning
Weather forecasts reach up to five days out. If parts of your route extend past the last available forecast step, an amber banner shows: "N waypoints fell past the last forecast step." You still get a route for those waypoints, but the weather data beyond the horizon is a best-effort extrapolation — treat it cautiously.
4.5 Stopover markers
If your route has stopovers they appear as yellow Stop markers on the map; the route polyline continues through each without visual interruption.
4.6 Downloadable exports
Interactive HTML map — the file you're viewing in the browser; save it to keep an offline copy.
KML — open in Google Earth or most chart-plotter apps.
GPX — the standard sailing waypoint format; supported by practically every chart-plotter. The file contains three complementary sections: a navigable <rte> (route waypoints — what the plotter "goes to"), a <trk> (the same path as a track, for older Garmin / Raymarine units), and standalone <wpt> markers for the start, end, and notable max-wind / max-wave / max-current points (rendered as named chart icons in OpenCPN, Navionics).
YAML — the full waypoint list with wind / wave / current at each step, in a human-readable plain-text format.
Offline HTML — a standalone map file that works with no internet connection. Useful at sea without signal.
📄 PDF briefing — a server-rendered, print-quality PDF with a cover page (passage, boat, departure, distance, duration, comfort), a hazards summary (forecast-horizon clamps, peak wind, peak wave, close-hauled segments), a contingency-port hint listing the nearest harbour at five points along the route, and a paginated waypoint table on page 2. Download once and email to crew or print on the dock.
4.7 Loading on your chartplotter
Download the GPX file from the result card and import it into your chartplotter app or hardware unit. GPX 1.1 is the universal waypoint-exchange format — every recreational-sailing nav system honours it: Garmin GPSMAP / Active Captain / Connect / fēnix, Raymarine LightHouse (Axiom, Element), B&G / Simrad / Lowrance / Furuno hardware units, Navionics Boating, iNavX, Aqua Map, SEAiq, SailGrib WR, PredictWind, OpenCPN, TimeZero / Nobeltec / MaxSea, qtVlm.
The general workflow is the same across all of them:
Mobile apps (Navionics, iNavX, Aqua Map, Active Captain): open the .gpx from your Files / Downloads app, or use the app's own Import menu. The route appears in My Data / Routes; tap to start navigation.
Hardware chartplotters (Garmin, Raymarine, B&G, Simrad, Furuno, Lowrance): copy the .gpx to a microSD card, insert it into the unit, then Menu → Files → Import (path varies slightly by brand). On Navico-family units (B&G / Simrad / Lowrance) the path is identical because they share firmware.
Desktop (OpenCPN, TimeZero, qtVlm): drag the .gpx onto the chart, or use File → Import / Open.
What the file contains: a navigable <rte> (what the plotter "goes to" with turn-by-turn), a matching <trk> for older units that only render tracks, and standalone <wpt> markers for the start, end, and notable max-wind / max-wave / max-current points — rendered as named chart icons on units that support it. Waypoints are named WP000, WP001, … (padded to 3 digits) so the route displays in order on units that sort lexically.
5. Route history
The My Routes tab lists every route you've computed, most recent first, with a status badge:
- Complete — finished successfully; click to reopen the map.
- Running — still computing.
- Failed — something went wrong (credits were automatically refunded).
Click any completed route to reopen it in the result card — the map, the exports, and the weather overlays are all still there. Nothing expires.
6. Map picker — details
Opening Pick on map shows the Leaflet map used for visual pin-dropping. A few nuances:
Click ordering is strict: empty start, then empty end, then new stopovers, up to 5. Clicks never overwrite a filled slot.
The live cursor coordinate in the top-right updates as you move the mouse, in the format 48.381 N, 4.486 W.
Dragging a pin writes the new coordinates back into the text field and the hidden fields your submit uses.
Pins dropped on land — even inside a port you might consider "close enough" — get a red outline and a hover tooltip reading "On land — drag to water." You can still submit; the router will attempt to snap to the nearest sea point, but the result may not be what you want.
Clear map pins removes only the pins you created by clicking — text entries you typed are preserved.
The picker is an alternative to typing. The classic input path (harbour name or GPS paste) keeps working exactly as before; you can mix the two.
7. Credits
7.1 How many credits a route costs
A single-leg route (departure → arrival) costs 1 credit.
A multi-leg route (departure → N stopovers → arrival) costs N + 1 credits.
For example: Brest → La Rochelle → Bilbao = 2 stopovers = 3 credits.
7.2 Automatic refund
If the solver fails — a leg with no findable route, waypoints outside forecast coverage, invalid input — the credits deducted for that route are refunded automatically and the failure banner shows how many credits were returned.
7.3 How to get more credits
Every verified account starts with 50 free credits on signup. Additional credit packs and a subscription tier are in the pipeline but not yet live. In the meantime, the donation link helps keep the service free for everyone.
8. Custom polars — "My Boats"
If the stock polar for your boat doesn't match how she actually sails — you've changed sails, re-weighted the keel, got a full cruising load vs. empty delivery trim, or just want to tune downwind angles — you can fork the closest global polar into a personal copy and edit it cell-by-cell.
8.1 The My Boats tab
Visible in the top nav only once your email is verified. Shows your custom polars with their source (the global polar they were forked from) and last-edited date. Up to 3 per account — a deliberate cap to keep you focused on the ones you actually use.
8.2 Creating a custom polar
Click + Create from existing.
Search the dropdown for the closest match to your boat. The suggestions are the same 3,600+ polars the Plan tab uses.
Pick it — the name auto-fills as "My {source}"; edit freely (e.g. "My First 40 — race trim").
Click Create. You land straight in the editor.
8.3 The editor
A table with TWA rows (wind angle) down the left and TWS columns (wind speed) across the top. Every cell is boat speed in knots, editable from 0 to 25.
Changed cells turn amber and show a tiny ↻ button — click it to revert just that cell to the source value.
Hover a changed cell to see what the source was.
The grid shape (which TWA and TWS points exist) is fixed by the source polar — you can't add new rows or columns, only change speeds within the existing grid.
Rename the polar at the top of the editor; save writes the whole grid in one go.
8.4 Using a custom polar in a route
On the Plan a Route tab, your custom polars appear at the top of the boat-model search with an amber mine pill. Pick one like any other polar. The router will use your edited speeds for every leg of that route.
8.5 No delete — by design
Custom polars can be edited or renamed but not deleted. Routes you computed with a polar keep working forever even if you later tune that polar's speeds — because the route's timing and waypoints are baked in at compute time, not recomputed from the polar on the fly. If you run out of slots, rename one you're no longer using and overwrite it.
8.6 Not shared
Your custom polars are personal. They never appear in anyone else's search, never in the showcase, never exported. Two different users can both have a polar named "My Boat" without colliding.
9. Showcase & Regattas
Two curated sets of pre-computed routes available to anyone:
Showcase (landing page): eight ongoing passages chosen to cover different regions (English Channel, Bay of Biscay, trans-Atlantic corridors, Caribbean, Mediterranean, Pacific, Southeast Asia) and different boat types.
Regattas (/regattas.html): a smaller set of iconic offshore races (Fastnet, Kiel Week → Warnemünde). Each one is a weather-routing study against the latest forecast — it is not a race entry, just a "what would this look like if I left now?" simulation.
Both sets are recomputed every few hours against fresh weather.
10. Submitting a missing harbour
If the port you're looking for isn't in the autocomplete dropdown:
Start typing the name.
When results are sparse, an + Add "X" as a new port row appears at the bottom of the dropdown.
Click it, fill in the name, latitude, longitude and an optional note, and submit.
The entry is queued for curator review. Once approved, it becomes visible in everyone's autocomplete.
You can only submit if you're verified (avoids spam).
11. Account
Your header shows your email and current credit balance. The Account tab (or the right-aligned tab when you're logged in) lets you:
Log out.
See your verification status.
Access the donation link.
No public profile, no data sold. Your email is used only for verification, password reset, and occasional service-status notices — never for marketing.
12. On mobile
Everything works on a phone. A few accommodations:
The map legend is collapsed by default and opens on tap.
The layer toolbar moves to a footer bar under the map (on desktop Leaflet's own control is used instead).
Weather arrows thin out at low zoom so the map stays readable.
The map picker is the same single tool — Pick on map opens a full-width Leaflet map you can pinch-zoom, tap-drop and drag.
13. Where the data comes from
Sailing Router pulls from public weather and chart sources, then runs the routing on our servers. Nothing about your trip leaves the site.
Wind — NOAA Global Forecast System (GFS), the same model most marine forecasts are built on. We download 13 regional GRIB files every 6 hours, hourly resolution out to 5 days. Source: nco.ncep.noaa.gov.
Currents — NOAA RTOFS (Real-Time Ocean Forecast System) for the non-tidal surface current, refreshed daily. Tidal currents blend three layers in priority order: (1) 102 hand-tuned harmonic stations covering France Atlantic + Channel + UK + North Sea + Norway + Irish Sea + Med strait pinch points + Philippines (sources: SHOM, BSH, Rijkswaterstaat, Kartverket, BODC, IIM), (2) NOAA CO-OPS auto-discovery on the US coast, (3) the FES2014a global tidal-current atlas (AVISO/CNES/LEGOS/CLS, 1/16° grid, 4 majors M2/S2/N2/K1) for everywhere else — open ocean crossings now see realistic barotropic tide instead of a flat zero. Stations always win when in range; the atlas fills the deep-water gap. Sources: polar.ncep.noaa.gov, tidesandcurrents.noaa.gov, aviso.altimetry.fr (FES2014a), data.shom.fr.
Polar diagrams — 3,661 ORC VPP profiles imported from the open-source jieter/orc-data repository, which mirrors the Offshore Racing Congress Velocity Prediction Program output. Plus 8 hand-curated generic profiles (cruiser, racer, catamaran, …) for boats not in the ORC catalogue.
Harbours — 80 hand-curated ports + ~23 k OpenStreetMap marinas and seamark harbours (via Overpass API) + ~30 k coastal-city names from Geonamescities500 (filtered to within 5 km of an existing harbour). Licensed under ODbL / CC-BY.
Land detection — the global-land-mask Python library (≈ 0.1° / 11 km resolution, Natural Earth data) for the offshore base layer, plus a high-resolution GSHHG-h coastline (≈ 500 m fidelity) used inside coastal and ultra-coastal tiers. The high-res layer resolves narrow harbour channels (Pertuis de Maumusson, Kiel Fjord, Subic Bay exit) that the 11 km grid would collapse into solid land.
Geocoding — Nominatim (OpenStreetMap) for typed harbour names that aren't in our local list.
Everything is public, free-tier or open-licensed, and we respect the source attributions. Weather is refreshed every 6 hours — that's the GFS publication cadence, so any faster would just re-download the same files. Each refresh fetches fresh wind for all 13 regions, the global RTOFS currents, and re-seeds the showcase + regattas.
Adaptive step size. The solver switches between three resolutions automatically. In open ocean it takes 3-hour steps (16 candidate directions) for routes under 500 NM, 6-hour steps beyond that — coarse enough to be fast, fine enough that GFS wind shifts are captured. Within 15 NM of land it drops to a fixed 2.5 NM distance step with 32 directions so it can hug a coastline. In a narrow channel (Pertuis de Maumusson, Kiel Fjord, Subic Bay exit) it tightens further to 1.2 NM with a 0.3 NM deduplication grid so it can thread the centerline. The transitions happen on the fly; nothing to configure.
14. Safety disclaimer
Sailing Router is a planning aid. It is not a navigation system. It does not replace:
An up-to-date, paper or vector chart of the area you intend to sail.
Your own assessment of wind, sea and visibility on the day.
A backup plan, functioning safety gear and correctly-filed passage information.
Your judgement as skipper.
Weather forecasts — even the best ones — can be wrong. Currents near shore can differ significantly from the model. Tidal predictions are approximate. Always verify against a second source and adjust as conditions evolve.
Sailing Router is offered free, without warranty. You sail at your own risk.
15. Offline mode (PWA)
Sailing Router is a Progressive Web App. Once you've visited it online, the site can be installed and used at sea without signal — for the routes you've already computed.
15.1 Installing as an app
Chrome / Edge (Android & desktop): an "Install" icon appears in the address bar after a couple of visits. Click it; the site installs as a standalone app with the compass icon.
Safari (iPhone/iPad): Apple doesn't auto-prompt. Tap Share → Add to Home Screen. Same icon, same standalone window.
Firefox: ☰ menu → Install.
Installed or not, all the offline behaviour below works in any modern browser tab.
15.2 What works offline
The landing page, Plan Route, Guide, Contact and Legal pages load from cache.
The last 5 completed routes are kept in cache automatically — open My Routes and click any to re-show the map, the comfort score, the export buttons. Older routes need a connection.
The showcase list shows its last-known content when offline.
15.3 What doesn't
Logging in / registering / sending a contact message — these need the server.
Computing a new route — that's a server-side operation; we can't run the A* solver on your phone.
Submitting a missing harbour.
15.4 The offline indicator
A red bar appears at the top of the page when your browser detects no connection. It disappears the moment you reconnect; nothing is blocked, just a hint that you're seeing cached data.
15.5 Caveats
Cache is per browser. Wipe Safari history or switch from Chrome to Edge → cache is gone.
The 5-route LRU evicts the oldest when the 6th completes — by design. Use the download buttons on the result card (KML/GPX/HTML/Offline-HTML) for routes you want to keep regardless.
Cache size is browser-dependent; modern browsers reserve ≈ 50–100 MB which is plenty for our shell + 5 maps.
16. When a route fails to compute
Sometimes the router can't find a path. Instead of a generic "no route found", the result panel now shows a specific reason in your language and credits are refunded automatically. The most common reasons:
Wind is too light — your boat's polar can't make headway in the forecast wind. Try a different departure time or a boat with better light-air performance.
Wind exceeds your max-wind setting — switch to the Race preset or wait for the wind to drop.
Waves exceed your max-wave setting — same as wind: Race preset or later window.
Coastline blocked the route — pick a less constrained start or end, or check the next wind window.
Couldn't find a clear final approach — the search came within a few nautical miles of the destination but couldn't close the last leg. Move the destination a little further into open water.
Wind requires beating tighter than your min-TWA — Race preset allows closer angles.
Too shallow for your boat's draft — picks a route through water deep enough at high tide; the alert means even the high-tide reading isn't enough.
For Find best departure windows, each failed slot in the table shows its reason on hover and credits for that slot are refunded automatically. If many slots fail with the same reason, that's a strong hint to change the boat or the comfort settings rather than retrying.
17. Print & PDF briefing
Two ways to take the route off the screen and onto paper or into an email.
🖨 Print briefing — a browser-print path. Click the button (or Ctrl/⌘ + P) and the print stylesheet hides everything except the route summary line and footer — no map, no tabs, no form, no disclaimer. The map iframe is deliberately omitted because browsers paginate iframes erratically (Safari rasterises them at random sizes; Chrome puts them on a separate page). What comes out is a clean text-only one-pager: passage, boat, duration, distance, comfort score, footer. Save as PDF or send straight to a printer.
📄 Download PDF briefing — a server-rendered, print-quality PDF generated in our compute service. Cover page (passage, boat, departure, distance, duration, comfort), hazards block (forecast-horizon clamp, peak wind, peak wave, close-hauled segments), contingency-port hint (nearest harbour at five points along the route), and a full waypoint table on page 2. This is the version you want for crew briefings; it's not subject to browser-print quirks and prints identically across devices.
Both buttons appear on the result card after a route computes, and on shared-route pages (see §9 for shared route links).
18. Languages
The site is available in English (default), French, Spanish, Italian, German, Chinese (中文) and Japanese (日本語). On a first visit your browser language picks the right one automatically; pick a different one any time from the Language switcher at the bottom of every page. Your choice is remembered for one year via a cookie.
URLs use locale prefixes: /fr/, /es/, /it/, /de/, /zh/, /ja/ — English keeps the bare root. Each language has its own indexed pages so you can share a French route URL with a French friend and they land on the French version.
Some technical terms (boat models like Oceanis 45, abbreviations like TWA, TWS, VPP) stay in English worldwide — they're proper nouns or industry standards.
19. Find the best departure (subscribers)
Subscribers see a second button next to Calculate Route: Find best departure. Pick a window of 24 h or 36 h from your chosen departure time and the system runs the solver at 3-hour intervals across that window — 8 runs for 24 h, 12 for 36 h. The result card lists every slot with departure, duration, distance and comfort score, and stars the fastest and smoothest picks. One click on any row re-opens the full route map for that slot.
Cost is one credit per slot — 8 credits for a 24 h window, 12 for 36 h — same as if you'd queued each route by hand. Predictwind and Savvy Navvy charge for this feature; we don't, beyond the credit cost. Subscriber status is granted manually for now (Stripe subscriptions ship later); contact us if you'd like a trial.
20. Light and dark mode
Sailing Router ships in dark mode by default — designed for low-light cockpits at dusk. A small ☀/🌙 toggle pinned in the **top-right corner** of every page flips between dark and light themes. Your choice is saved in your browser; if you've never picked one, the site follows your operating system's preference.
The map tiles inside route results stay dark regardless of theme — CartoDB dark + OpenSeaMap nautical seamarks are easier to read on the water than light tiles.
21. Contact
Issues, feature requests, harbour corrections, or simply to say hello — use the contact form. Every message goes straight to the maintainer; your email is used only to reply.