28 Notifications
Goals
Allow users of shared vaults to send notifications to each other through Dendron.
Context
In vaults shared by many users, it can be useful to get the attention of a user. For example, one user may want to let another user know that a note they are writing is ready for them to look at. Or in a shared journal, a user who needs help can notify another user to ask for help.
While these communications could be done over other channels, such as messaging apps or texts, these channels usually send notifications that alert users and demand immediate attention. In some cases, it may be preferable to simply leave a notification for the other user to look at without alerting them immediately.
Additionally, in some settings, keeping a trail of these notifications within the notes may be preferable. Keeping these notifications public within a knowledge base allows others to review them, and the resulting communication is stored within the knowledge base as future reference.
Proposal
Adding a special user notification syntax to Dendron would allow users to send notifications through Dendron.
A user can type [ ]@username
to send a notification to that user. The user,
once notified, can type x
between the brackets to confirm receipt of the
notification.
Transferring these notifications are simply done through regular sync channels. Syncing a workspace sends out any notifications that were added, and receives notifications added by other users.
Details
User names
To find the username of the current user, Dendron can read the OS username of
the user. Dendron will also allow the user to set the username globally with a
global file (for example, ~/.dendron-user
) or a per-workspace file (for
example, Dendron/.dendron-user
).
Notifications overview
If the user has many notifications, Dendron can show a UI that lists all the notifications they received. The same page can also be brought up using a command, or integrated into the side bar.
Implementation
Notifications are propagated through the existing sync mechanism, no additional work is needed. Finding the notifications is relatively cheap: it can be done when searching for new links in updated notes during a sync. Notifications can be displayed using VSCode notifications.
The overview UI can be implemented with a web-based UI.
Example
Edsger
writes in their notes:... I'm stuck on this issue, can [ ]@Frances take a look at this?
Edsger
syncs their workspace.Frances
syncs their workspace.Frances
automatically receives a notification:Someone mentioned you: "... I'm stuck on this issue, can [ ]@Frances take a look at this?"
Frances
clicks on the notification, which navigates the editor to the note where they were mentioned.Frances
finishes their work regarding this mention, then adds anx
into the brackets:... can [x]@Frances take a ...
Frances
syncs their workspace.
Tradeoffs
Discussion
Please use the Discussion page for any suggestions, concerns, or thoughts.
Backlinks