Add support for 'personal notes' on posts

Does discourse support the concept of a personal note attached to a post by a non-staff user that only the person who wrote it can see?

The use-case I have in mind here is a recipe system, where individuals who use a recipe want to make notes on what they did and how it worked, but not notes they want others to see.

1 Like

donā€™t pms work for this? pmā€™s from a userā€™s post reference that post.

i use pmā€™s to myself as a notepad of sorts, especially if i want to reference a post.

Bookmarks allow you to note a purpose, the bookmark icon is highlighted on a topic or reply once set.


3 Likes

yes good point! i use the bookmarks feature too for this sometimes too, especially if some sort of timeliness is required.

Bookmarks donā€™t seem to be designed to allow much formatting in the explanation for the bookmark. As soon as you hit the return key (ie, to start a new paragraph) the bookmark is created.

As for PMs, I donā€™t see a direct way to attach a PM to a specific post.

This looks like a brilliant idea, if I were you Iā€™d write a plugin to support thisā€¦

4 Likes

It is something Iā€™d consider doing, once Iā€™ve got enough experience with Discourse plugin development to know what to do.

You can use Drafts and/or propose to make this plugin public:

2 Likes

Drafts are very unreliable, because there can be just one per topic. If one starts write a post to such topic it overwrite dratf without warnings.

3 Likes

at first i misunderstood your OP and thought you meant the note was to be shared between the person making the note and the post creator, or to just mark the spot. i see you just basically want a sticky note feature for users to make a personal note on a post, like an extended text bookmark without the time feature. as @Lhc_fl says, this is a good idea and i can see being useful in some instances.

1 Like

I havenā€™t played with staff notes yet, but I should look at the code for staff notes to see if extending it for sticky notes to oneself is realistic. Each time I dig into the code I learn a little more and things seem a little less opaque.

2 Likes

i love the user notes feature and so do my mods. we use it a lot.

i could see a plugin called something like ā€œUser Sticky Notesā€ being somewhat userful. :thinking:

1 Like

The way user notes appear to be implemented, it looks like it would be difficult to modify it to work for personal sticky notes. (The text of the note goes in a json array in the plugin_store_notes table, so it isnā€™t clear if it can have any formatting. In-house ads are also stored in that table, but they use HTML formatting.)

Also, it doesnā€™t appear that thereā€™s a way to edit a user note. I suppose it could be deleted and re-posted, though that would change the timestamp.

1 Like

For me, I would suggest creating a table with three keys:
id, post_id, user_id (corresponding to a user can only record on one post),
and then depending on your idea, you can directly record data on this table, or publish the userā€™s notes as a special post (so that if you do not enable the plugin , the original notes can still be retained)

1 Like

or maybe use a custom field (which Topic supports).

My first thought is that the sticky note should refer to a specific post, similar to a reply, not just the topic. In a lengthy discussion, I could see a user wishing to have sticky notes attached to several posts in a topic.

Using a sticky_post table has its merits, but there are likely multiple places where it would be necessary to exclude a sticky_post from display or processing beyond just the displaying of a topic, such as when sending emails, and it would be necessary to search the sticky_post table for each post to see if it was a sticky note from this user and thus handled differently than a sticky note made by a different user.

A separate post_type would have merit but that might need to be a part of discourse core, and there may be other issues with that approach of which I am not currently aware.

There are also post custom fields, that might be a better approach than topic custom fields, though it likely has many of the same issues and limitations as a sticky_notes tables, as would putting that information in the plugin_store_notes table.

A combination approach, in which there is a topic custom fields entry that indicates that there are sticky notes in this topic, might have potential. If there are none, then the post custom fields table need not be searched for a sticky note indicator.

1 Like

Another possibility that would have to be part of core would be to have a ā€˜sticky_noteā€™ flag in the posts table.

1 Like

I am self-hosting and building a community for educational purposes, and I came across some topics here in which users explain how they use Discourse as their personal notebook. However, that clearly has its limitations, so I got this ideaā€¦

Perhaps there could be a feature implemented so that each user can have their own personal/private markdown notebook? Here are some general ideas I have on how this proposed feature could work.

  • Enabled only for selected groups.
    This would play extremely well with the subscriptions and ai plugins so that, for example, subscribers gain the ability to make their own AI notes.
  • Limitation toggles.
    In order to reduce server load, limitations per group could be set. For example: Group A can have 5GB of storage space in their notebook but Group B can have 10GB.
  • Organized structure.
    The structure of this plugin could be similar to that of Microsoft OneNote, with each notebook being able to have multiple sections.
  • File Compatibilities.
    Users would be able to attach files to notes: pdf, mp3, etc. and there could be an integrated simple pdf viewer.
  • Finer integration with Discourse AI.
    AI bot can automatically summarize an entire discussion in chat or PM and save the summary to a notebook page. etc. etc.
  • Is this feasible?
    Considering the vast amount of open source note-taking applications, such as Obsidian and Joplin, I suspect that it could be quick and easy to get a jumpstart on developing this feature. Needless to say, this has the potential to bring good revenue ā€” the forum/AI/notebook trio!

Let me know what you all think! Maybe we can flesh out something more specific and develop a more refined idea!

3 Likes

Ideally Iā€™d want to be able to sync notes created on Discourse with my local markdown notes. A basic implementation of that would be a ā€œdownload noteā€ button on Discourse that generated an .md file from the note topicā€™s raw content. The title could be set to <note topic title>.md.

3 Likes

Thatā€™s a good point and would definitely add to this featureā€™s usefulness :grin:. Also having the ability for users in a group to have shared notes. This would enable group projects, team documents, etc.