Every improvement we ship to OpenSail, in plain language. The newest changes are at the top.
Catamarans and trimarans stop being scored like keelboats
Routes for a catamaran or trimaran no longer report a heel angle, no longer pay a comfort penalty for heel that a multihull does not have, and the briefing stops talking about it.
Fixed
No more phantom heel for multihulls. Comfort scoring used a ballasted-keelboat heel model for every boat, so a catamaran could be told it would heel 20 degrees and comfort-weighted routes were steered around heel that never happens. Multihull routes now show heel as not modeled, and the comfort score counts rolling and slamming only.
Fixed
Rolling estimates use multihull stability. A catamaran with no stability figures entered was scored with a keelboat's righting stiffness, which put its roll period close to ordinary sea periods and exaggerated beam-sea rolling. The estimate now comes from a multihull table sized to your boat's length; figures you enter yourself are used as before.
Improved
Comfort says which scale it is on. A multihull route labels its comfort score "(multihull scale)" so a 7 out of 10 is never read on the keelboat axis. The briefing states once what the score covers and what it does not: bridgedeck slamming, wind loading, and following seas are not modeled.
Improved
Every new route remembers the boat it was solved for. A route now records the hull type and stability figures used at solve time, so editing or merging a boat later cannot change how an old route is described.
Routes with waypoints save again
A route planned through one or more waypoints could finish solving and then fail to save. Fixed.
Fixed
Waypoint routes were refused at the last step. Since the 8 September release a route with waypoints, and a route that starts with a motor leg out of harbour, solved correctly but was refused when it was saved, so it never reached your voyages. Both shapes save again, and the forecast copy each route was solved on is recorded with it as intended.
The map remembers the forecast
The map now asks the server which forecast copy is current and names that copy on every request, so caches between you and the server can answer. For forecasts published under a name (the wave forecast today; the wind models as their runs move to the named store), frames you have seen stay on your device and replay without downloading again.
New
Named forecast frames stay on board across reloads and dropped connections. Once a frame from a named forecast copy has been downloaded it is kept on your device for a week under that exact copy. A reload replays the timeline from storage without downloading a single frame again; a new copy replaces the old one cleanly. Wind models that are not yet published under a name keep working as before and gain this as they move over.
Improved
The timeline and the first weather arrive together. Opening the map asks the server which forecast copy is current at the same moment it fetches the first frames, and checks the two agree before anything is drawn. Later requests name the copy so every cache along the way can serve them.
Improved
Unchanged data is never downloaded twice. When a frame has not changed since you last asked, the server answers with a short 'nothing new' instead of the full frame. Over satellite or cellular that is most of the bytes saved on a return visit.
Improved
Saved routes replay the exact forecast they were planned on. A route now remembers the precise forecast copy the solver used. Opening it later pins playback to that copy for as long as the server keeps it, and tells you plainly when it has been retired.
Dragging the timeline no longer floods a slow link
Scrubbing the forecast timeline over satellite or cellular used to request every hour the thumb passed. It now waits for your finger or mouse to lift and asks for just the moment you stopped on.
Fixed
Drag the timeline freely, the map catches up when you let go. While you are dragging, the clock and the thumb follow you and any frames already on board show immediately. Nothing new is downloaded until you release, then only the frame you landed on (and the next one, for smooth play) is fetched. A long drag that used to fire forty requests now fires two or three.
Improved
Tapping or using the arrow keys still jumps straight to a time. A single tap on the timeline and the keyboard arrows keep working exactly as before; only a held drag waits for the release.
Weather shows up sooner on a slow link
The map now asks for less, remembers more, and gets the first forecast frames on screen faster over satellite or cellular. Under the hood every forecast copy now carries a fixed identity, so what you see is always the exact copy the server named.
Improved
First weather frames arrive sooner on Starlink and cellular. Opening the map used to fetch the same forecast twice before painting. The first fetch now feeds the timeline and the map at once, and the server keeps the day's forecast warm so nobody pays a cold start after a restart.
Improved
Frames you already have are not downloaded again. Each frame now carries a version tag. When it has not changed the server answers with a tiny 'nothing new' instead of the whole frame, which saves real bytes while scrubbing back and forth.
Improved
Scrubbing stays responsive while the map fills in around you. Interactive scrubs get priority over background frame loading, and each connection gets a fair share, so one busy tab or one heavy user cannot make everyone else's timeline stall.
Fixed
Zoomed-out world views no longer wait on coastline depth checks. At wide zooms the map was sampling fine coastal depth data for every cell before drawing. That work only matters close to shore and for routing, so the world view now skips it and paints much faster. Routes still use the full-detail coastline.
Improved
Routes remember exactly which forecast they were solved on. Every saved route now records the precise forecast copy and a fingerprint of the weather the solver used, so re-opening a route later shows the weather it was actually planned against.
Tidier records after clean-up
Small fixes to the wave-forecast publishing trial's housekeeping. Nothing changes on the map.
Fixed
Clean-up now clears the right records the moment it deletes a forecast copy. The nightly clean-up recorded which copies it was deleting only after it had already forgotten their names, so the immediate record clearing did nothing and a later sweep had to catch it. It now notes the details first.
Improved
Operator previews now say exactly what the real command would do. The preview mode of the trial's milestone commands checks the same rules as the real run, so a preview that says it would proceed will.
Every switch goes through the ledger
Two remaining hand-operated steps in the wave-forecast publishing trial now check the database ledger first.
Fixed
Trial milestones can no longer be advanced without the ledger's agreement. Marking the wave-forecast trial as verified, and later retiring its compatibility links, used to be possible without consulting the version ledger. Both steps now refuse unless the ledger is reachable, every version on disk matches it, and all consistency checks pass.
Fixed
Records of deleted forecast copies are cleared instead of left dangling. When the nightly clean-up removes an old forecast copy, the database record that pointed at it is now blanked rather than left pointing at nothing. Nothing changes on the map.
The version ledger moves into the database
The wave-forecast publishing trial now takes its version numbers from a database ledger, not a file.
Fixed
Version numbers are now handed out by the database, never by a file. Yesterday's fix kept the permanent record of forecast version numbers in a file next to the data. A further review showed that if that file went missing, the system could quietly start counting again from an old number. Numbers now come only from a database ledger that is written and confirmed before any forecast copy is placed. The file is kept purely as a mirror: if it falls behind it is rebuilt, and if it is ever ahead of the ledger the system stops and asks for an operator instead of guessing.
Improved
Bookkeeping problems now stop a cycle instead of being logged and ignored. If the database cannot be reached, or the records that say where each forecast lives cannot be repaired, the affected model skips its cycle and reports itself unhealthy. Nothing changes on the map for anyone; the trial remains limited to the wave forecast.
Forecast versions that never repeat
A fix to the new forecast-publishing system, still limited to the wave-forecast trial.
Fixed
Every published copy of a forecast now gets a number that is never reused. During a rehearsed rollback of the new wave-forecast publishing trial, a re-published copy of a run could be given a version number an earlier copy had already used. Nothing wrong reached the map, and the affected caches were cleared the same evening, but the guarantee behind those numbers had been broken. Version numbers are now recorded permanently before a copy is placed, survive a rollback, and the nightly checks refuse any repeat. The system also repairs its own bookkeeping after a rollback instead of relying on a manual database edit.
Fixed
The operator check for a forced re-publish understands skipped numbers. Because numbers are never reused, a forced re-publish can jump from copy 1 to copy 3. The tool that confirms such a re-publish succeeded was still expecting the very next number and reported a correct result as a failure. It now checks that the new copy is newer and matches the permanent record.
Groundwork, double-checked
Hardening of the still-switched-off forecast-publishing machinery.
Improved
The new publishing code now survives a hard crash mid-step. Two rounds of adversarial review found ways a sudden process death or a routine automated restart could have left the new forecast-publishing system half-finished. Those paths are now journaled and self-healing. It remains switched off for every model; nothing changes on the map.
Groundwork, stowed
New forecast-publishing machinery is aboard but not yet switched on.
Improved
A safer way to publish forecast runs, waiting in the wings. Our forecast pipeline now carries the code that will let each model run be published as an untouchable, versioned record. It is installed but switched off for every model; we will turn it on for one wave model first and watch it for a full day before going further. Nothing changes on the map today.
Watch-keeping, tidied
A small fix to yesterday's server watch.
Fixed
Our server memory watch no longer repeats itself. The new memory watch could nag us every five minutes when a reading hovered on a threshold, and could stall on an odd value. It now sends one clear warning, one clear alarm, and copes with anything the server reports. Nothing changes on the water.
Early warning below deck
A small watch-keeping addition on our servers.
Improved
We now hear about a full forecast cache before you feel it. Our servers watch how full the forecast cache and the account store are and page us well before either runs out of room, so a busy weather day cannot quietly slow the map or block sign-ins. Nothing changes for you on the water.
Forecast cache, run-proof
More below-the-waterline work for slow connections.
Fixed
Cached forecast frames can never mix two model runs. Each cached frame is now labelled with the exact model run and source it came from, so a fresh run replacing an older one at the same hour is always served fresh. You should see no difference today; it closes a gap before the next round of low-bandwidth loading improvements.
Forecast bookkeeping, tightened
Groundwork for faster loading at sea. Nothing changes on the map today.
Improved
Every forecast now carries a precise identity below deck. The server keeps a stricter record of exactly which model run it is showing you, so future updates can cache forecasts safely on slow satellite links without ever mixing two runs. Today this is invisible; it is the foundation for the next round of low-bandwidth improvements.
Sturdier foundations
Invisible on deck, important below the waterline.
Improved
Weather caching moved to its own engine room. The fast-lookup store that keeps forecasts snappy now runs separately from the systems that guard your account and billing, so heavy weather traffic can never crowd them out. You shouldn't notice anything — that's the point.
Loading indicator, now honest everywhere
A follow-up polish pass on the slow-connection fixes.
Fixed
Loading status tells the whole truth. The “Loading forecast…” indicator now tracks exactly what's on your screen in every mode — paused, playing, and route replay — switching weather models or map layers can no longer leave it silent while new data is still on its way, and cancelled background downloads never make it linger.
Faster weather on slow connections
Scrubbing the forecast timeline no longer floods a slow link with downloads — a big fix for satellite internet at sea.
Fixed
Timeline scrubbing on satellite internet. Dragging the forecast timeline used to quietly download weather for every hour your finger passed over, which on Starlink or other slow links could leave the map saying “Loading forecast…” for minutes. Now only the moment you settle on is fetched, and stale downloads are cancelled — a full drag costs a couple of small requests instead of dozens of large ones.
Improved
Faster, smoother connections to OpenSail. Our servers now speak HTTP/2, so the map, forecasts, and charts share one fast connection instead of queueing up six at a time. High-latency links feel noticeably snappier.
Improved
An honest loading indicator. The “Loading forecast…” pill now only shows when the weather you're looking at is actually still loading — background refreshes no longer make a perfectly good map look stuck.
Honest analytics, honest banner
We now use Google Analytics to see which features earn their keep — with a real consent choice and a privacy policy that says exactly what leaves your browser.
New
Usage analytics, with consent. OpenSail now uses Google Analytics to understand which features get used, so we improve the right things. In Europe and the UK nothing loads until you allow it; everywhere else you can decline in one click, and declining means nothing is sent to Google at all. The cookie banner now offers a real choice, and a 'Cookie preferences' link in the footer lets you change your mind any time.
Improved
Privacy policy updated. The policy now spells out precisely what analytics collects and what it never sees: no email, no vessel names, no route coordinates, no ad tracking, and tokens are stripped from URLs before anything is sent.
The data page catches up with the map
One missing model, now listed.
Fixed
HRRR listed on the data sources page. The 3 km high-resolution model for the Gulf of Mexico and US East Coast has been live on the map since July, but the data sources page never mentioned it. It now does, including what it powers (map layers and model disagreement) and what it doesn't yet (route solving).
The pricing page catches up with the app
One correction in your favour.
Fixed
Every forecast model at every tier. The pricing page listed 'all forecast models' and the model-disagreement layer as Passage features. The app has never actually held them back — every model and the disagreement view are included from Voyager at $59/yr, and the page now says so.
How we stack up, in writing
A new comparison section covers OpenSail against PredictWind, savvy navvy, Windy and LuckGrib, with every price sourced and dated.
New
Comparison pages. One page per competitor plus a five-way overview, linked from the footer. Every competitor price links to the vendor's own page with the date we read it, and every page includes a section on where that competitor beats us. If your use case fits their product better, the page says so and links you out.
Playback follows your voyage's forecast
With a route on the map, the timeline and instruments now read the exact forecast your route was planned on — end to end.
New
Voyage-pinned playback. Right after a new forecast starts publishing, the map's live timeline can briefly be shorter than the one your route was planned against — the scrubber used to stop partway while the route line kept going. Now, while your voyage is on the map, playback automatically rides the voyage's own forecast: the whole route scrubs, and the wind and wave readouts show the weather your route was actually optimized on.
New
See which forecast you're on — and switch. The status pill at the top of the map now says when playback is pinned to your voyage's forecast, names the exact model run, and gives you a one-tap unpin to jump back to the freshest live weather.
Improved
Honest fallbacks. If your voyage's forecast has been superseded and removed, playback falls back to the live timeline and says so plainly — the map never silently substitutes a different forecast while claiming it's the one your route used.
Corner controls stay readable
Two small map-corner fixes.
Fixed
Map credits and loading status on top. Opening the map credits panel, or a 'Loading weather' moment, no longer hides behind the corner buttons — whatever you invoked is always the thing on top.
Map polish and playback honesty
The map's corner controls got a redesign, and the timeline now tells you when playback is temporarily shorter than your voyage.
Improved
The helm dock. Anchor Check and Feedback now live in a tidy glass column that reveals its labels as you hover — nothing overlaps, on any screen size, and the map credits panel is finally readable.
Fixed
Honest playback limits. Right after a new forecast run starts publishing, the map's playable timeline can briefly end before your voyage does. The bar now says so — and tells you scrubbing extends automatically after the next forecast update — instead of letting the boat silently stop mid-route.
Passage plans to island harbors
The navigation-only line beyond your forecast now reaches island-sheltered destinations and ocean-scale distances.
Improved
Island landfalls. Destinations tucked behind islands — Horta in the Azores, and harbors like it — now get their dashed passage-plan line beyond the forecast horizon. The final approach is planned at a much finer scale than the open-ocean crossing, so island channels thread correctly.
Improved
Any distance. The beyond-forecast passage plan now handles ocean-scale remainders (a thousand miles and more) in seconds, including routes that must round major landmasses like the Florida peninsula.
Transatlantic-scale passages
Ocean crossings of any length now plan cleanly — a routing bug that could reject very long passages from certain harbors is fixed.
Fixed
Very long passages from enclosed harbors. Departing a bay or enclosed harbor for a passage thousands of miles out (say, Chesapeake Bay to the Azores) could fail with a routing error. The harbor exit and the ocean crossing are now planned at their own scales, and these voyages return a proper partial-forecast plan in seconds.
Improved
No passage dead-ends. If route optimization ever hits its computation limit before the forecast runs out, you now get the weather-routed section plus a navigation plan for the rest — clearly labeled as a computation limit, never dressed up as the forecast's edge — instead of an error.
Voyages beyond the forecast horizon
Long ocean passages no longer stop at the edge of the forecast — OpenSail now routes what the forecast covers and plans the rest honestly.
New
Partial-forecast voyages. A passage longer than the forecast used to be rejected outright. Now you get a weather-optimized route to the forecast horizon plus a navigation-only continuation to your destination — clearly marked on the map with a horizon marker and a dashed line, never dressed up as weather routing.
New
Coverage, disclosed everywhere. The timeline, voyage HUD, comparison table, route history, public track pages, and GPX/KML exports all say exactly how much of your voyage is forecast-backed and how much lies beyond — including how far and roughly how long the remaining leg is.
Improved
Smarter forecast-run selection. When the freshest model run hasn't published its long-range hours yet, OpenSail now uses the most recent run that actually covers your whole passage instead of failing — the exact cause of rejected multi-day routes for some Pacific passages.
Improved
GRIB downloads cover the whole voyage. The route-corridor GRIB now spans your full track — including the leg beyond the forecast horizon — so the weather you download covers the ocean you'll actually cross.
Improved
Route watches for the full passage. Forecast-change alerts on a long passage now stay active until you could realistically arrive, not just until the forecast ran out — and alert emails name the full voyage, not just the forecast-backed distance.
Fixed
Honest errors and labels. Departures beyond the forecast get a clear explanation with real numbers instead of a generic failure. Dateline-crossing exports now produce valid GPX/KML on every chartplotter, and the comparison table labels duration as duration.
The new timebar
Weather playback and route scrubbing merged into one forecast ribbon, plus catamaran routing fixes.
New
One timeline for everything. The weather timeline and route scrubber are now a single forecast ribbon — day cells, sunrise/sunset shading, wind strength coloring, and your route's time band in one place, on desktop and phones.
Improved
Map footer rail. Layer toggles, legend, and playback controls consolidated into a cleaner footer rail that stays out of the chart's way on small screens.
Fixed
Catamaran routing accuracy. Multihull polars are respected end-to-end — heel-based comfort penalties no longer apply to boats that don't heel, and replayed voyages match what the router actually sailed.
Sailing with OpenSail and hit something odd, or missing something you need? Tell us at support@opensail.app — real passages drive this list.