Personal project, 2026
go-calc
A calculator that shows how far to trust its answers.
Every answer is exact, proven to guaranteed digits, an estimate with its uncertainty, or refused with the reason. One Go engine runs in the browser as WebAssembly, on the command line, over HTTP and as a package.
- 5trust labels
- 81functions
- 683tests
- 0dependencies
Every answer says how far to trust it.
Exact where it can be, proven to guaranteed digits where it cannot, an estimate with its uncertainty when the input was measured.

Click an answer, see the working.
Each step explains itself in words, shows the arithmetic inside it, stays in your units, and ends with why the answer holds.

It would rather say no than guess.
A mismatched unit, a comparison the bounds cannot decide, a typo in a function name. Each is refused with the reason, and a suggestion where there is one.

Units, measurements, equations, primes.
Checked units with exact conversion factors, uncertainty carried through the maths, exact roots where the algebra allows and proven brackets otherwise.

Help that cannot go stale.
Every example on the help page is computed live by the engine, so the documentation and the answers can never disagree.

A keypad on a phone.
The same sheet laid out for a small screen, with a scientific keypad and the full working one tap away.

Eight themes, every one readable.
Each is checked to at least 4.5 to 1 contrast for every piece of text the sheet and the working panel draw. Clearview is colour-blind safe.








Under the hood
One engine, four front ends.
The browser, the command line, the HTTP API and the Go package call the same code and exchange the same JSON, so they cannot disagree. The front ends format and never compute.
Fractions until something needs an irrational.
Numbers are exact rationals from the standard library. Irrational values are a midpoint with a rigorous radius, and precision doubles until every printed digit is guaranteed.
The float64 shadow.
Each expression also runs in ordinary floating point, so the sheet can point at the exact operation that would have lost bits.
Nothing you type leaves the page.
The engine runs in a Web Worker as WebAssembly, and share links carry the whole sheet in the URL fragment.
Tests guard the promises.
683 tests across 20 packages, four fuzz targets, and checks that every function has documentation, a working example and its own explanation.
Details
- Built with
- Go 1.26, WebAssembly, Svelte 5, TypeScript
- When
- 2026
- Links
- Try itSource
