GothenburgBitFactory / GothenburgBitFactory/taskchampion

Embed taskchampion in a web service worker

Open
#577 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
Rust
Stars
184
Forks
41
Avg merge
1d 1h
Merged PRs (30d)
7

Description

[Service Workers](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API) 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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.