Implement a way to add suggestions to draft items

Usecase

We need to review blog posts before they are published. For this we often request changes from the author. Currently the only way to provide this feedback is the comment system. However, comments aren’t well suited to review longer blogposts as it’s hard to reference the actual content. It leads to comments such as “In the fourth paragraph in the second sentence you forgot to mention […]”. This can quickly become chaotic and hard to follow up on, especially if multiple people are involved in the review process.

Note: I do understand that you can make suggestions to published items already. This feature proposal is explicitly to improve the process before an item is published. Also there is no way to have different people that propose different changes, it just works for having one differing state from the published state.

Possible Solutions

I personally see two viable solutions, but there may be more.

1: Make it possible to reference text locations from comments

The idea here would be to provide links into the actual content. That way a comment can directly reference a specific location with a rich text field (for example). This is probably the more lightweight approach and easier to implement. The link would basically store the field, location within that field, and version of the content item. In case the field was changed since the link was created, the link would be displayed as “outdated” (it could potentially still open up the history, but the UI should make it clear that the link isn’t about the current version of the content item).

2: Add a way to suggest changes directly

This approach would be more similar to reviews on GitHub PRs / GitLab MRs. You would basically edit the text and propose it as a possible change, which then can be accepted or rejected. I think this would be way harder to implement as it requires the backend to track diverging states of the same content item in case multiple people make different suggestions. So while this would be a really neat feature, I think that simple comments that can reference locations within the content are a lot easier to implement.

Contributing

I can not promise anything, but I am interested to know how complex you think it would be to implement this. If this feature is desired, then I’d at least be interested to try and help with getting this into Squidex (be it by working on the code or even just testing it and giving feedback).

For reference, the discussion where this came up initially as we plan our transition to Squidex: