Service Workers act as a kind of in-browser backend for a website. They can intercept network requests, and make network requests of their own.
If we build a service worker embedding TaskChampion, it can
store a replica locally (e.g., in IndexDB)
make network requests to a sync server
provide an API that a web page can use (either via intercepting URLs or via some in-browser IPC like PostMessage)
This would mean that we could implement a web-based task-management app entirely in the browser, and do so in an offline-first way so that it could be used when there is no network connection. This could be the basis for mobile apps. What I'm proposing here is only the "backend" for such an app. We could easily ship that backend as a JS library and as a simple drop-in taskchampion-service-worker.js file, and let others build web apps on top of it as they please.
Service Workers act as a kind of in-browser backend for a website. They can intercept network requests, and make network requests of their own.
If we build a service worker embedding TaskChampion, it can
This would mean that we could implement a web-based task-management app entirely in the browser, and do so in an offline-first way so that it could be used when there is no network connection. This could be the basis for mobile apps. What I'm proposing here is only the "backend" for such an app. We could easily ship that backend as a JS library and as a simple drop-in
taskchampion-service-worker.js
file, and let others build web apps on top of it as they please.