I am well aware that only some of this will be considered, by consensus, MVP. But I want to raise the issue in detail so we can discuss and decide on MVP as well as plan for future enhancements.
There are several possible types of notifications in a system such as Codidact. Note that I have used SO/SE terminology out of convenience, but I realize that the terms and/or the actual functionality of Codidact may vary.
User-directed content. This includes:
Answer to a Question
Comment on a Question or Answer
Question, Answer or Comment that references a user
Votes
Up/Down Vote on a Question
Up/Down Vote on an Answer
Up/Down Vote on a Comment
Reputation Changes other than Votes
Accepted Answer
Bounty Awarded
Any other reputation-generating action not directly initiated by the user receiving the reputation
Award of Badges/Privileges
Notice of Flags or other actions affecting a userâs content
Moderator actions affecting a user
Notification of most of these items in SO/SE is via two sections - inbox messages and achievements. This happens in two ways - display at any user-driven page update and also automated update. The automated update is, I think, the same process that also puts up a notice of new or updated questions, etc. to prompt the user to refresh the page.
I thought the automated update was via a timed JS process making an AJAX call (which can work quite well but would typically be stateless and therefore high overhead because the server would need to process the page queries (user info, list of Q or all details of a Q/A) in order to see if anything changed and let the user know). However, in a very quick test I didnât see any AJAX calls but I do see what I believe is a WebSocket. That would be low overhead (relatively) but would require the server to keep open a stateful session of some sort in order to know what/when to push data to the user.
In addition, a summary of at least some of this information is sent to the user via email if the user does not use the system within âxâ hours after the actions (messages/reputation/etc.) took place.
The questions:
Which of these items (assuming we have them) should trigger notifications to the user?
If the user is âonlineâ at the time, should we provide immediate notification or just at next page display?
Should there be any difference on mobile (small screen) devices?
If the user is âofflineâ at the time, under what conditions and what information should we send automated email?
If we choose to send information via email, what options should the user have (i.e., on/off, frequency, select which items to include?)
Brief comment for now: I think itâll be helpful to think of events in two categories: things a user needs to know, and things a user would like to know. âNeedâ includes answers to questions (you asked the question for a reason), direct responses (comment pings), and moderation events. (Possibly others; not trying to be complete.) âWantâ includes things that donât call for action but are just information, like upvotes and most badges.
Related question: does what counts as a want vs need depend on characteristics of the user? For example, do experienced users need different things than newcomers?
Which is pretty much the same as the difference between the inbox messages and the achievements in SO.
I donât think it makes much difference. An experienced user will zip through those notifications faster, but will certainly still need to know about answers & comments & moderator actions. An experienced user may or may not care about upvotes & badges, etc. - likely not care as much as a new user, but still care some.
MVP: have on-site needs notifications. Maybe have a page with want information.
MVP or soon after: have configurable email notifications. The day email notifications are introduced, they should have at least three settings: none at all, super-important only (e.g. âyour account is suspendedâ), all needs (e.g. replies).
Later: make things more configurable. I donât see a lot of variability in wants vs needs, but different people have different interests in wants stuff. I think SEâs current separation between needs (inbox) and wants (the other thing which I never use) is good.
I have yet to find anyone who actually likes the browser notifications. I routinely turn them off in Chrome & Firefox (no idea if Internet Explorer/Edge has the same kind of notifications or not).
Unfortunately, these notifications are routinely abused by âjunkâ sites. The prompt to allow/block a new notification is not terribly clear to the typical non-technical user. Whenever I see them, I turn them off. Occasionally Iâll ask the user and invariably the response is something like âOh yeah, those things keep popping up, can you please get rid of them all?â
There are ways to have ânotificationâ without using the annoying browser notifications. For example, with this forum I see the title tag shown in the browser tab change when there is something new. And Discord does something too - obvious when you know what to look for but not intrusive like âbrowser notificationsâ (which are almost as intrusive as popup ads).
@celtschk Not just âbrowser opt-inâ which is something typical users do NOT understand but actual opt-in within the Codidact system - e.g., user profile setting default OFF.