Show HN: I rewrote my notepad calculator as a local-first app with CRDT syncing (numpad.io)
I launched NumPad v1 on here a few years ago, and back then it wasn't much more than a thin CodeMirror wrapper around the calculator engine I'd written.
Now I've rewritten it as a PWA that supports multiple documents, persists them to IndexedDB, and has a syncing service for paying customers. Syncing is handled by Automerge[1] under the hood, which should make it relatively easy to get document sharing working too.
20 comments
[ 3.6 ms ] story [ 57.3 ms ] threadWhat's the license? I wouldn't want to use your code if copyright law poses a threat.
I find them super useful. Using natural language and storing the context along with the calculations helps me to sort of think through problems.
Being able to define variables on the fly is also very useful — I often use them for pricing out materials for projects. E.g.:
(What you can't see here is that Soulver gives all the totals in a bar on the right).Soulver has some examples of other uses on their homepage: https://soulver.app
Also is it possible to use CRDT as rich undo history, not only syncing?
Regarding the CRDT side of things what's the main driver? Syncing is probably better off without CRDT (I'd rather know a note had 2 copies significantly edited differently and now I have a sync conflict rather than no sync conflict but a hacked up note) so I'm assuming paid customers get (or will soon get) live multi user editing (i.e. you can trade local for concurrent usage)
Handling of "to" is a bit odd though.
150 kn in km/h [277.79976 kph] - this is unit convertion
150 kn to km/h [-276.79976 kph] - this is unexpectedly subtraction. I expected the unit conversion here, because of Raycast and Google
09:11 to 15:46
1 https://github.com/gtg922r/obsidian-numerals 2 https://mathjs.org/