Built to be checked, not trusted blindly

Your protocol isn't our data.

Nothing on this page asks you to take our word for it. Other tools interpret and advise; VialMath only calculates — and every claim below comes with the way to check it yourself. Where a check needs a tool, it's a tool you already have: your browser.

01 · Check it yourself

What VialMath sends, and how to see it

Beyond loading its own files, the app makes exactly two kinds of request. Neither carries your protocol. Here is how to watch it happen.

  1. Open the app in a desktop browser. vialmath.app/app — no signup, so nothing about you exists before you start.
  2. Open the browser's developer tools and pick the Network tab. Chrome, Edge and Firefox: press F12 (or ⌥⌘I on a Mac). Safari: enable the Develop menu in Settings → Advanced, then Develop → Show Web Inspector.
  3. Use the app. Add a compound, log a dose, change a vial, export a backup. Watch the list. You will see the app's own files load, and one request to version.json when the app opens or comes back to the foreground. That request carries none of your data — no key, no identifier, nothing you entered. It exists so the app can tell you a newer build is out.
  4. Activate Power, if you have it. You will see one call to the license server. It carries your license key and nothing else — not your protocol. It happens once, at activation.
  5. Keep watching. That is the whole list. Calculations, schedules, history, exports — all of it runs on your device, and nothing you entered leaves it.

A request always carries what any web request carries at the transport level — your connection's address, standard headers. The claim is precise: the app adds none of your data to any request, and we don't retain addresses from the license check. We'd rather say that plainly than have you find it in the panel.

02 · What the app never does

No account, no cloud, no analytics in the app, no database, no advice.

No account, no sync, no cloud storage.

There is no login and no signup. Your protocol lives in your browser's local storage on the device you use. Nothing is mirrored to a server, because there is no server that holds it.

No analytics inside the app.

Nothing about what you do in the app is measured, counted or sent. Our public web pages — this one, the home page, the free tools — run a small page counter that records the page and the referring site and nothing that identifies you; the app is deliberately excluded from it. The details are in the privacy policy.

No compound database, no recommendations.

Zero built-in compounds. You name everything you track. VialMath never suggests a compound, a dose or a range, never flags combinations, and never surfaces what other people group together. It computes what you entered; it never evaluates it. That boundary is permanent.

No alerts, by design.

Run-out and reorder-by dates are computed and shown in Today whenever you open the app. VialMath does not send notifications or reminders — it has nothing to send them from, and nothing that knows you exist.

03 · The tradeoff, stated

Local-first means you own the backup.

Nothing is on our servers — which is the privacy promise, and also means there is no cloud to restore from if you lose or replace the device, or clear the browser's site data. So the app makes the backup easy and keeps reminding you.

Export everything, any time.

A full JSON backup — everything on the device — from the Data view, one tap, free on every tier. Import it on the new device and you are exactly where you were.

A calendar file too.

An .ics export of your scheduled doses, reorder dates and gate checks, for any calendar app. Also free, also one tap.

The app nudges you.

When it has been a while since your last backup, Today says so. That nudge is the closed loop that makes local-first honest — not a setting you have to remember exists.

04 · The arithmetic

Run the exact test suite that gated this build.

Every build is released only after its own test suite passes on the code being served. That suite is public, and it runs in your browser against the same files the app loads — so what you check is what you use. The count below is stamped from that run by the release script, never typed by hand.

The arithmetic contract the suite enforces, in one breath: a U-100 syringe has 100 units per millilitre; concentration is vial mass over water volume; the draw is dose over concentration, times 100; a blend's dose is quoted per component but one injection removes every component; every quantity has exactly one derivation, so two screens can never disagree. If you find a number that breaks any of that, tell us what you did and what you expected — [email protected] — and read the changelog for what was fixed and when.

05 · What we deliberately don't claim

Precise beats impressive.

We don't say "most private" or "most secure" — those are comparisons nobody can check. We say what the app does and doesn't do, and we give you the panel to confirm it. We don't publish user counts or testimonials we can't stand behind. And we don't call VialMath medical software: it computes from the numbers you enter, and for anything medical the right person is the clinician who oversees your protocol.

Start free — no signup Free tier: no card, no account, no trial clock.