Programmable Attention/Notification Plugin: for Tasks, Events, Spaced Repetition, Incremental Work, and more

Idea

I wish I knew how to code well, but here’s what I’ve been thinking about… and it would be awesome if someone could help with this.

Basically, like a social media notification feature, which alerts you to what should be done now/today. You know how those little numbers appear on Facebook? Could appear on the sidebar…
image

Then clicking on it would show a list of things that are brought to your attention. This idea is inspired by Andy Matushak’s programmable attention. Using this method, it can be used in many ways:

  • Notifying you when it is time for a task or event
  • Notifying you when you are overdue for something
  • Notifying you when you have finished a Pomodoro
  • Notifying you when you haven’t visited a page in a while
  • Notifying you according to a spaced repetition algorithm
  • etc.

How many times have we taken down notes of things, completely forgot about them, and when coming across it again, have to relearn it from scratch? Also, how many times have we forgotten to complete tasks? Isn’t it also painful to create templates on daily note pages to remind ourselves of what to do for the day?

What if it could all be scheduled into one tiny button on a sidebar - when time, it pops out a notification?

Implementation as HTML comments

It would be cool if inside the body of a text, we could put in a html comment like such:

text to remember <!-- notify: 2 days at 1300hrs -->
text to remember <!-- notify: [[2021-08-25]] at 1204hrs -->
text to remember <!-- notify: every 2 days from [[2021-08-25]] -->
text to remember <!-- notify: every 2 days with `anki algorithm` -->

Storing Variables and Algorithms in the block

Ability to add in variables that are stored:

text to remember <!-- notify: every 2 days with `anki algorithm`, EF: 2, n: 1 -->

The above is an example of the Anki (spaced repetition software) algorithm, denoted by n>2 I(n):=I(n-1)*EF where n represents the number of iterations, and EF represents the ease factor, or how easy the item is to recall (modified everytime it is completed). But this is just an idea for a more complicated use.

Or if we could have modified variables according to the front-matter of the page:

text to remember <!-- notify: 2 days from file.mtime -->

This above would show a notification for a few variables from the modified time. Or we could have randomised ones.

Aesthetic Ideas

(1) For lesser disruption, we could also utilise footnotes:

text to remember [^1]

[^1]: <!-- notify: 2 weeks from [[2021-08-21]] -->

(2) Otherwise, we could create a separate page exclusively, which transcludes the blocks that you want to notify about. For example, for a block on [[A]], we could transclude that block [[A#^block]] on the [[B]] page as such:

![[A#^block]] <!-- notify: 2 weeks from [[2021-08-21]], transcluded -->

Use Cases

You can technically use this for To Do Lists, to schedule things quickly, use the GTD method, incremental reading/writing, weekly tasks, weekly reviews, monthly reviews, bimonthly/annual/weird timing reviews, random reviews, remind you of things that you’ve put on a ‘someday’ list, spaced repetition learning, etc.

What do you guys think? If you like the idea, let’s discuss.

11 Likes

Doesn’t seem that there’s too much interest in this. You know what? I’m going to build it. If you’re interested please suggest some things that you’d like to see in this plugin and we can discuss further.

6 Likes

I like the idea and integrating these reminders within obsidian would be nice. I do this currently by syncing between my jot down app(apple reminders) and obsidian. Reminders allows me to set deadlines, which I didn’t really think obsidian was made for.

3 Likes

Perhaps this could be implemented as something that periodically checks a dataview, notifies and provides a link to such dataview?

2 Likes

I would like a complement like this, I would like you to remind me of my university subjects with a notification.

2 Likes

So taking in the same idea as above, but kind of rethinking/reconceptualising it due to all the new plugins available…

New proof of concept…

(drafting out an idea)

A notification API for existing plugins to tap into. I’m still all in on this idea of a programmable attention, notification-based app:

image

Why in the style of social-media? Well, it works, that’s why social media is using it. The principles behind it as a tool to navigate information are sound. Especially when you have information coming from all sorts of directions, e.g. having a shared vault, tasks/todos, and so on.

Why not just use the Obsidian reminders / Spaced repetition / Tasks plugin?

  • Well, it reminds you in a different way from how twitter or facebook does it, which is via a list of notifications/alerts. IMO the way it does it through a lightbox-type popout isn’t very elegant. But its functions are already there.

  • Furthermore, some of us do not work in front of a computer or have Obsidian open 24/7 a day. What if we want to see a reminder that has expired? A log is a far better idea.

  • Also, different plugins seem to require different ways of displaying their latest feeds - usually all in separate panels which can create a lot of friction from contextual switching. Instead, by building a way to push notifications to this plugin, we can have “one single inbox” for all latest updates.

Photoshopped Concept:

Some other functions not included in the sample photoshopped concept above:

  • Ability to clear notifications once done - “Clear/Archive”
  • Ability to snooze notifications

Inspirations for concept:

Possible integrations for concept:


TLDR: building an API-like plugin that allows display of “the latest feed” (aka notifications) within one single panel, which any plugin can push content to when enabled. Serving as an all-in-one inbox within Obsidian, accessible both on mobile and desktop.

5 Likes