It’s very doable, especially with small data.
Unfortunately, you have to take projects’ words that they do this on good faith as an end user. You’d need to GET the app bundle, and then firewall the tab / disable your network interface to be certain that no data is leaking out. It’s not so easy to control this as an end user these days, and web apps can be quite sneaky.
Maybe we’ll see some innovation in this space from browsers in the future, where an app can identify itself as local only and then be sandboxed by the browser.
That would be a really cool 'HTML5' API — let the page do:
document.addEventListener('DOMContentLoaded', () => {
// some bootstrap
document.goOffline();
});
Which could prompt the user — "this web page wants to disable its own internet access. Do you want to continue? (Refresh the page to reload from server)[OK/Cancel]" — and then it can do longer use the internet & has its own storage which gets wiped before it's allowed back online.Would allow all the benefits to devs of doing things in the browser (if that's their choice), & end-users could trust that it was truly offline.
> Unfortunately, you have to take projects’ words that they do this on good faith as an end user
The same is true for applications running natively. Of course, those can be firewalled from any outgoing and incoming network traffic more easily. And they don’t feel like and don’t default to using a network connection all the time. But still, they could.
> Free planning and projection tools that will never ask to link your financial accounts
If it were followed up by convincing me that my data is stored in LocalStorage and doesn’t leave my browser, I’d be sold :). I know I’d still have to trust you that you’re actually implementing what you claim, but I think I’d be willing to. After all, the same would be true for an application running natively: those, too, can submit my data “to the internet.”
For me personally, having an Electron app would not make much of a difference. Do I run your code in my Firefox or in a separate process? I’m still running your code on my machine. Maybe browser-based even has some advantage because it is sandboxed filesystem-wise. Not sure whether this holds true for Electron.
Import/export as CSV or whatever format would also be a huge plus for me.
As a last point, I’m not sure I understand the status quo: you are saying all caluclations are done client-side – but the results are stored server-side?
Nice work!