---
# System prepended metadata

title: Solid Notifications Client (ES)
tags: [Notifications, Solid, EcmaScript]

---

* date: Tue, July 4th
* time: 14:00UTC [based on doodle](https://doodle.com/meeting/participate/id/b3LW210b)
* video conf: https://meet.jit.si/solid-notifications
* chat: https://app.gitter.im/#/room/#solid_notifications-panel:gitter.im


### Existing repositories

* https://github.com/woutslabbinck/Solid-Notification
* https://github.com/o-development/solid-notification-client
  * superseding https://github.com/o-development/solid-webhook-client

### Topics


#### hybrid ESM & CJS builds

ESM allows better three shaking and I see it as preffered module system for the browsers. At the same time some dependents need CJS builds ([for example Component.js based services](https://github.com/LinkedSoftwareDependencies/Components.js/issues/83))

#### Bundle sizes for browser builds

Mostly relevant for *receiveFrom* based channels which stream notifications over open connection.

Currently CSS only implements WebSocketChannel2023. I'm planning to collaborate on StreamingHTTPChannel2023 in near future. We shouild make sure to keep browser bundles as small as possible. Which includes tree shaking and most likely RDF parser already used by the dependent. We could look at simple CI setup with something like  [Rollup analyzer](http://rollup-plugin-analyzer.doesdev.com/#ci-usage-example). Also [Rollup visualizer](https://github.com/btd/rollup-plugin-visualizer)


#### Web Workers

At least WebSocketChannel2023 relies on capability URL, that means that we should support running the Notification Receiver in a Web Worker.

Discovery & Subscription Clients require Solid-OIDC where [inrupt library only runs on the main thread](https://github.com/inrupt/solid-client-authn-js/issues/1657)



#### Kinds of Notification Subscribers


Mostly relevant for *sendTo* based channels which receive requests with notifications.

Currently CSS only implements WebhookChannel2023.

In [SAI Authorization Agent](https://github.com/janeirodigital/sai-js/tree/main/packages/service) I'm doing subscribing in a background job run in a separate worker process. The webhook callback which acts as Notification Receiver runs as part of the main service, later I might consider running it as dedicated service as welll.

#### Focus points

* use authenticated fetch
* don't depend on CSS
* Use local version of context for JSON-LD
    * Or just pass a parser
* Needs handling both **subscription services** and **notification channels** (see discovery channel 2.1)