Larger proposal for discussion: Notification System

Anytype is in an interesting early phase where, unlike most productivity apps I use, it actually has little or no need for a “notifications” system. But if I understand future plans right, then it will definitely need such a system eventually. So I’d like to open up some discussion on UI/UX and features we’d like to see in such a system and see if we can help shape its direction as it is being planned and initially developed.

Notification Sources

First, I think notifications will be necessary/useful for the following, at a minimum:

  • Reminders, e.g. dates
  • Application update notification and accessing change log after update
  • Multi-user, e.g. changes to shared pages, @mentions, etc.

With that in mind, there are several types, contexts, or “levels” of notifications I can think of, and different ways to handle them all.

Notification Types

Immediate/Action-based Notifications: when you perform some action, sometimes it is good to let the user know the outcome, especially in the case of success or failure. For example, if you move a page, or delete, etc. These types of notifications are often handled with “toasts”: https://stackoverflow.com/questions/1348788/what-does-toast-mean

There are a couple things that distinguish Toasts from other types of notifications. 1: they pop-up automatically, but unobtrusively, usually in the bottom of the UI. 2: they can usually be optionally interacted with, for example to Undo the last action if it was accidental. 3: they usually disappear on their own after some short amount of time, e.g. 10 seconds. Thus they usefully inform the user and give them some small but important functionality, while not interrupting most normal use of the app. This is different from pop-ups for example.

Personal/Direct Notifications: these are notifications directly related to or targeted at the current user. Things like date reminders, @mentions, etc. In my view these are ideally handled separately from Activity Stream (see below), or at least can be given special highlights or something. These notifications can be expressed in pop-ups, notification icons, or even (in some systems) emailed to the user. Pop-ups may be a common way to express these types of notifications, and they are distinguished from Toasts in a couple possible ways. 1: they generally come up in the middle of the screen, or somewhere in the top third, to get attention. 2: they usually have some option to interact with them, either “mark as read” or, ideally, a link to where the notification originated, e.g. a page with a date, a page with an @mention, etc. 3: they generally need to be manually dismissed before continuing work (this could be as simple as clicking outside the pop-up though).

Activity Stream: generally speaking these will only be relevant to multi-user environments as they don’t normally pertain to changes one makes to their own data. This kind of notification is more broad and tends to be more “noisy”, and may or may not be an eventual feature of Anytype. But for example if you “subscribe to changes” on a given page or database record, you would want to see some notification of updates. This is often shown as an “activity stream”, and the user may be notified with some kind of small indicator “light” showing that there are unread notifications. Generally such notifications are not given priority and so do not appear in pop-ups or “toasts”, there tends to be too much activity, and it is often better seen and understood by a user in a linear “stream”.

Suggested Implementation

This is just my personal view of how it could work best in Anytype.

As I have outlined, there can be at least 3 types of notifications. And I’d like to see all 3 and some separation between them for reasons I partly outlined above. I appreciate good “toast” notifications, ClickUp shows some good examples for instance. These are short-term notifications that do not “persist” and briefly inform and present some option to the user.

The most critical type of notification, I think, is what I’ve called “Personal/Direct Notifications” above. These I think should either be in an easily-dismissed pop-up (optionally), or part of the activity stream but with some special characteristics. They could be a on different “tab” of the activity stream, for example, or shown in a different, more stand-out color (e.g. red vs. yellow), and if Activity Stream content is marked read automatically when viewed in the stream, personal notifications should probably require being manually dismissed. Personally I favor something like Notion’s approach here, with a tabbed interface for notifications/activity stream.

Finally, the Activity Stream, less critical but really nice to have, especially for mult-user environments. Again I think Notion shows some good ideas for this, although it is not necessarily the absolute best implementation. It is worth evaluating numerous products that have such a UI convention to decide on the best features.

How would you like to see all of this work?

70 Likes

Hey, @Oshyan

Thank you for all ideas you share, especially such big as notifications!

And I really like the way how you categorized the types of notifications with the use cases, so I will use your definitions in further discussion.

Short-term notifications

It’s interesting to dive deeper into the conditions for these notifications because we already have them.

I see some subcategories that can be shown to the user:

    1. Background process. When you decide to upload the huge 4K video to a remote server, you can dnd it into the app. You will see the progress bar of copying it to the local Anytype folder. Later, it will be uploaded. But it can take several minutes or hours (depends on the internet connection) and it will be useful to show that it was successfully uploaded. Or «you are all set» like phrase after import from Notion.
    1. Confirmation. When something happened, but somewhere else. Like here (in ClickUp): you create a new task, but there is a Dashboard page opened — an irrelevant page for such action. So you need to see something bringing the confidence of executed action

    1. Something happened. Simple state that describes what happening right now on your screen. Like: there is no history in Undo, some exception happened, pasted URL is broken, and so on. I’m not a big fan of these notifications. From my point of view, it should be understandable with common sense. The app should work without sudden errors.
    1. Other types. Please write other groups if you see something not covered.

:question:What are the most useful notifications you want to see now?

Personal/Direct Notifications & Activity Stream

For now, we need to implement more features that changing its state in the background without your knowledge or by some trigger being fired. I mean sharing notification, calendar alert, message, changes in a shared document, and so on. When objects will have a lifecycle and lots of states/stages it will be necessary to implement that.

12 Likes

Thanks for your great reply @vova_ermolaev. It is great to see support of these ideas. Thinking about it now, and after re-reading what I wrote, I think a more full implementation of short-term notifications is probably most important because it helps people really understand what Anytype is doing and how it works. The application is intuitive most of the time, but somewhat “opaque” when anything goes wrong or something happens in the background, etc.

I am looking forward to functions like date-based reminders, etc. but indeed these functions, and especially messages, edits and updates and @mentions from others, etc. all need to come before the notifications for them are relevant. :wink:

I think one of the easiest ways to get ideas for how to handle all of this stuff is, as you have demonstrated, looking at other apps that do it successfully. Perhaps in that respect it would be good for others as well as myself to respond with examples of other tools where we like the functionality?

    • ClickUp has already been mentioned, and I do think it does well, especially with the short-term notifications, e.g. “toasts”.
    • I think Notion also has some good aspects in its “Updates” pop-out tab. I like that it pops out and doesn’t take over the whole screen, I like that it has tabs for “Inbox”, “Following”, and “Archive” in particular, and that it provides options for e.g. getting all notifications as emails. Also a nice feature is that the quoted block that each notification references can be clicked on to jump straight there, rather than just linking to the page. Highly contextual.

I will try to think of other good examples and add them here over time. I look forward to further discussion on all this as various systems get into place and the accompanying notifications become possible!

12 Likes

Notifications in Android & iOS for Due dates notification, Reminders and other similar things would be a game changer :grinning:

12 Likes

Im not sure if that is in the same league, but it would be nice that an given Android alarm clock application could be triggered by receiving a notification from Anytype.

1 Like

Those ideas accurately and cleverly anticipated the future needs of users.

As I was belatedly aware of this reflections, I imagine that it is now closer to an officialization than to a possible further reflection.
Especially since it should also be integrated to the upcoming “Sidebar with navigation”. So I would wait until these elements are released to bring possible reflections or mockup on the subject.

However I would rather propose this terminology:

  • App/System Notifications
  • Personal Notifications
  • Social Notifications

It would indeed be very useful, but it may be too complicated to bind this two apps and much simpler to propose to customize the sound notifications by designating our personal audio files, one for each type of notification.

1 Like

I would not count on “notifications” being part of the sidebar. There is no real reason in my view to consider them interlinked, only that Sidebar would probably be a good place to put notifications once they’re added. But I’m not aware of efforts to add notifications at this time. So if you have thoughts to add, they are probably useful and welcome at this stage.

1 Like

I have to say that I don’t either, I was implying that the global UI of Anytype will soon change with the arrival of the Sidebar, therefor the location of possible notifications must take it into consideration.
So I prefer not to invest too much time to imagine the implementation of the notifications. I already have found many unlisted bugs, some of which require screen recording in order to be easily understood by the Staff.

Oh I see, then I misunderstood. And your approach makes sense. :slight_smile:

1 Like

I wanted to add to the subject by saying that I think that notifications is a key features that could make users migrate away from task managing apps (and even kanban boards) to Anytype.

AnyType has a great approach to tasks : as they are an object type that you can customize or re-create at your will, you can effectively create a task type that is custom-made for your use. This is great, and I believe that this could make AnyType miles away from the existing competition !

A quick example: I personally like to work with a “today” task list, that contains tasks that I select in my different tasks lists, that each represent an area of my life. Hence, ideally, i want to have a small button to say that I want to do this or this task “today”, so that it gets displayed in my “today” list; and in the same way, I should be able to remove this task from my “today” list quickly. This particular feature is hard to come by in the open-source software I use; but with AnyType, I can do it in 2 minutes ! How powerful !

IMO, the limitation is that one of the key functionality of task managing apps is the reminder: In order to lay out your mental load to the application, you got to be sure that it will warn you if a task if urgent with a notification. I believe that this, the kanban view and the possibility to insert inline sets (which allows one to display a custom view of tasks in an object) are the only functionalities that are needed for Anytype to keep everyone on board of a single app for organizing with tasks.

Such reminders/notifications are a big feature, though; I think that they should be integrated within the OS that is being used, and should ideally activate even when the app is not launched. That would requires to adapt to the notification system of Windows, Mac, Linux, Android and Iphone, which is, I imagine, a pretty big amount of work.

What do you think about it ? How could reminders be implemented in a way that would not make the user worried to miss a notification ?

3 Likes

We can discuss notifications [here](self-promotion, removed by moderator), too.

Discussion on notifications as it relates to Anytype should be here in the forum. This is the official place for all Anytype alpha test and future planning discussion.

1 Like

I completely agree with this approach of making notifications available via the OS standard.

Also for me the typical use case would be to add a reminder to some tasks and then it would be helpful if I get notified by the OS even if Anytype is not currently running. I guess on mobile devices this is pretty much a standard of implementing notifications but on Windows for example I have no idea on how difficult it is to realize something like this (probably one needs at least some service agent running in the background).

2 Likes

A flexible system to add reminders is the only thing that I would need to switch to anytype from notion completely. I just joined the alpha program and I’m excited to try it but I need to be able to add reminders to my to-dos on my to-do-lists.

I feel strongly about how easy notifications are to miss… Because they might be REALLY important. A regular windows notification is not enough for me because it’s a short pop-up that is then lost in the endless notification stream that I never ever check. I would prefer an (additional) red circle or something on the task in the task bar or on the tray icon. It must be easily visible that there is a reminder that I missed.

On Android notifications are usually hard to miss because they stay in the status bar until dismissed. But if there is a way to make them even harder to miss on Android I’d love that.

Since I’m new here I haven’t found the Roadmap or kanban board or so where I can see if this feature is already being worked on… Can someone point me in the right direction for this?
Thank you :slight_smile:

2 Likes

Hi @zwometer! Welcome to the Anytype community! This feature request right place or a larger discussions but I think we should branch of separate each request for specific features so people can upvote what they like. Adding a backlink to this topic is helpful to place the feature request in the context of this larger discussion.

Edit: reading your ideas, I think the Discourse implementation of notifications comes quite close. Do you agree?

Edit 2: Kanban/public roadmap is planned (hehe) but not yet available.

Thank you @sambouwer,
I have no experience with Discourse, so I cannot say.

There was another feature request regarding reminders but it was not discussed much and ended with a link to this one here. I still don’t really get what an “official” feature request looks like, so that people can vote on it and so on… Everything on here looks like an open discussion. Since you seem to be a very experienced alpha tester, you could maybe take over the task of separating the main features and setting up the related feature requests as you proposed (if I understood you correctly)