npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@captnoliv/signalk-autopolar

v1.2.0

Published

Learns your boat's polar by watching how she is actually sailed — never under engine, never at anchor. Web app, SOG/STW and true/apparent comparison, speed-sensor diagnostic, .pol / Jieter / CSV export, direct hand-off to signalk-polar-management.

Readme

signalk-autopolar

Learns your boat's polar on its own, by watching the way she is actually sailed. The more miles you put in, the better it gets — and you never have to sail a single test run.

The web app under way

Features

  • 🔥 Collects while you sail, no test runs. A point is kept only when the boat is in one steady regime — which is not the same as demanding constant numbers. → Why this one
  • 🔥 Nothing is frozen at collection. Every point carries SOG and STW, true and apparent wind, so all four polars are recomputed on demand from the same raw measurements. → Why this one
  • 🔥 The raw log is kept, not just the verdict. Get the thresholds wrong for the day's sea state and you replay the file instead of sailing the passage again. → Why this one
  • 🔥 Never under engine, never at anchor. Blunt on purpose: no evidence the engine is off, no collection — with a bounded manual declaration for boats with no engine data at all. And because engine data can be present, fresh and yet constant, one check that needs no sensor at all: a keelboat does not outrun the true wind upwind. → Never under engine, never at anchor
  • 🔥 Tells you whether your speed sensor lies. Current vs. a genuine calibration error, with a ready-to-use correction table for the Airmar DST810 and similar instruments. → Is your speed sensor telling the truth?
  • 🔥 Leeway measured, and taken off the VMG. Pointing 35° while sliding 8° sideways makes 43° over the ground. The gap between heading and course over ground is split into leeway (flips sign when you tack) and current plus compass error (does not), so the polar can be read against the track the boat actually makes. → Leeway
  • 🔥 VMG targets with the cost of leaving them. The neighbouring angles either side of the optimum, in knots and in percent, so you know whether holding the angle is worth it. → VMG targets
  • 🔥 A live "where am I now" reading. Your current angle and speed plotted on the polar, interpolated between measured wind bands, never extrapolated past them. → Where you are right now
  • 🔥 "Is it worth changing sail?" — what the other sail plans actually did at this wind and this angle, with the evidence behind every row. → Sail comparison
  • 🔥 Sail plan taggable after the fact. Type the times you remember, or let the plugin suggest boundaries from steps in performance — corrections never touch the raw measurements. → Fixing the sail plan after the fact
  • 🔥 Test rigs stay out of the way. Sailing with the main down on purpose is a measurement, not a mistake: those points are kept and studied, and left out of the polar you route with and of everything shared. → Sailing without a sail, on purpose
  • 🔥 Pausable. A delivery, a tow, an afternoon of trim tests: one click and nothing is written — points or raw log, so a replay cannot bring it back. → Pausing Autopolar
  • 🔥 Sea state measured, not typed in. Peak-to-peak pitch over the window, stored raw. → Sea state
  • 🔥 Drafts a polar from your server's history, months before the plugin was even installed, through the same admission filter as a live point. → Drafting a polar from the server history
  • 🔥 Exports and a direct hand-off. .pol, Jieter text, CSV, JSON, raw .jsonl, and one click to push into Polar Management. → Web app tour, Polar Management hand-off
  • 🔥 Free, and the polar goes back into a shared pool — automatically, every 500 points, no position ever collected, both speed readings and what is needed to tell them apart. → Sharing your polar
  • 🔥 Tells you when it is stuck. A ntfy alert if sailing goes on for 20 min with nothing kept, with the dominant rejection reasons. → Idle alert

Web app

http://<server>:3000/@captnoliv/signalk-autopolar/ — live state, polar diagram, VMG analysis, sail-plan filter, speed-sensor diagnostic, exports. Full tour of every card: docs/webapp.md.

Install

From the SignalK app store, or:

cd ~/.signalk
npm install @captnoliv/signalk-autopolar
sudo systemctl restart signalk

No dependencies: nothing to install on board, so no data used offshore.

Then open the plugin configuration and fill in the boat model and the name to publish under. The plugin waits for them before collecting anything — see Sharing your polar.

Reference

Supporting the plugin

Free, MIT, no account, no telemetry, no nag screen on startup. The web app asks once the polar it built for you has actually become usable, at most twice ever, never offline, as a banner and never a modal. Details: docs/support.md.

★ Star the repository · ☕ Buy me a coffee

Licence

MIT. Sharing is the deal, not a legal condition: no licence can compel you to send data, and one that pretended to would just be ignored. The plugin asks once, defaults to yes, and makes it effortless — that is the whole enforcement mechanism.