End user pre-approval queue experience can be much improved

At the moment the pre-approval queue feature is pretty user hostile.

If you submit a topic you see:

How can you tell what topics you have in the queue? There is nothing in activity.

Allowing edit is possibly a spam vector if implemented incorrectly (cause people could edit it JUST as you are approving a previous version) however if we were careful you could very cleanly allow safe edits. Which enormously improves the end user experience.

The situation for posting in a topic is even worse.

You get the same dialog.

However on the actual topic you see no trace of your pending post.

I can not tell it exists in my profile, I can not tell it is out there for approval on the topic. I can not edit it.

As an end user, when I experienced this whole thing at https://discuss.reactjs.org/ I felt absolutely terrible. It is like you are driving completely blind.

@xrav3nz as you are improving the moderation queue I really want you to keep this in mind, making a user hostile feature even more easy for moderators may not be the correct order of operation here. We got to think about the users.


Same problem with Akismet: Akismet has temporarily hidden your post, but which one?

1 Like

Akismet and moderation queue really need to be unified, having 2 systems now that have radically different features is really bad. Akismet is now missing all the fancy edit stuff @xrav3nz just added.


Thanks for pointing this out! As I was testing the approval workflow for my last PR, I did feel awkward about the end-user experience. Chose to ignore that at the moment because that wasn’t the area of focus. Now is probably a good time to come back to this!

A few potential improvements off the top of my head:

  • User Activity Page:
    • include pending posts into all/topics/replies, with indication that they’re awaiting approval
    • a separate section dedicated to pending posts; only visible if the user has pending posts
  • “Post Needs Approval” Dialog
    • link to the “pending posts” section on User Activity Page
    • “3 staff who are online have been notified”? - This can also be a bad idea
  • Topic list / post stream
    • could display the pending topic/reply with clear indication that it’s invisible and awaiting approval
    • the pending posts’ ordering with respect to other posts is important
  • Approval queue edit:
  • Improved notification upon approval
    • “your post have been approved, here’s the link to it”
    • maybe a generated message from the staff who approved the post; implement with care as we do not want to spam the user
    • or something close to what we have right now:

The above list is actually missing how to treat rejected post:

  • Do they continue to show up in pending posts?
  • Should we notify the user? If so, how?

Will try to compile a better and more detailed list after giving it some more thoughts.

I actually don’t know anything about the behavior of the posts affected by Akismet and its queue; will get myself familiar with it.


Problem is, that is a plugin vs. core. So that implies we move Akismet to core.

No need to do that, the problem was the we built akismet prior to building the approval queue.

If we had to do it from scratch akismet would simply extend the approval queue UI and use it via the plugin instead of introducing its own ui.


A few proposed new features that aims to improve the approval queue experience:

Notification upon approval

Currently, the user has no insight into the status of their pending post; they will not even know when their post is approved!

notification popup menu

Similarly, when a post is rejected, a system generated PM could be sent with an optional reject reason.

"Pending" section on user activity page

  • This section is only visible to the user him/herself.
  • This section is only visible if the user had posts pending approval
  • Posts awaiting approval can be deleted, but not edited.

Record full edit revisions on queued posts

This does not improve the user experience directly. However, what happens when the user finds out his/her post had been magically edited?

I actually have a PR ready for this, and it can benefit from some serious review :wink:

"Post needs approval" Modal

Obviously, this could link to the “Pending” section mentioned above:

Additionally, what about a system generated PM similar to the one we have for Akismet? This is to empathize with the user, and it is only sent the first time that a user submitted a post pending approval.

Show pending reply in an existing topic

This should only be visible to the author:

When the user is replying to the same topic again, a composer message could be helpful:

It looks like that you already have a reply that’s pending approval:

Original reply excerpt here

Are you sure you want submit another one?

I understand that this may not be a priority for the team; I’d love to work on them once the specs are finalized.

Open to suggestions, cheers! :muscle:

1 Like

I think you are scoping a GIANTENORMOUS bit of work here.

Start with 1 feature, I would say the most URGENT feature is showing the end user the post they have in the queue

You have one post pending approval on this topic

:arrow_up_small: just scope how this should work for now.


Allowing user edits to posts in the queue would be very valuable for us. I anticipate that members of our community will post topics without reading the pinned topic we have. Providing a list of a few things to make sure their post includes in the ‘Post needs Approval’ dialogue would reduce the amount of back-and-forth between our moderators and the topic creator.


I agree with the editing request here @sam but we need to unify all post queues first yes?


I just experienced this on https://discuss.python.org/ again. As an end user it felt really crummy. :sob:

  1. I can not tell in which topics I have pending approval posts
  2. I can not edit my pending approval posts
  3. I can not tell when my thing is going to be approved

What I would like:

  1. On topics, simply display my unapproved post as the last post in the stream with special formatting saying it is pending approval. It will always be last no matter what. This is editable by me.

  2. When I post instead of “Please be patient”, “It usually takes about 4 hours for posts to be approved”, we can recalculate weekly.

  3. Extra super bonus points stretch goal, allow 2 TL3s to approve one of these guys so it happens faster

@eviltrout maybe we can assign this out once your review queue is shipped? It would be a nice little first project for someone who is not yet familiar with the review queue.


I feel like we have a feature request here that ties into the work @dan is doing… basically, arbitrary staff post annotations.

What’s the difference between this…

and this…

and this…

?? cc @hawk


I agree – same works here. Maybe a different colour when it’s just for you and when it’s for everyone though.


Sure, I’d be happy to do it myself but there is value in letting other people explore and test out my code.

  1. and I can’t tell if my post has been approved! (of course unless someone has liked or replied to my post).

may number 4 be a simple notification?



Do we have any UI screenshots of what was done here @sam? Just to close this out.


This is what happens now.

If you make a new post:

Possible improvements:

  1. “Delete” by end user require no confirmation. 1 click and it is deleted forever with no undo.

  2. No way of “editing” once in review queue, you must delete and re-post

  3. “Awaiting approval” posts do not display full context (what they are in-reply-to)

  4. We do not link you to the place where you can see all pending posts: (not a hyperlink to activity)


  5. Admin area links to “top post” in the topic, not to what you just replied to, or to end of topic.

I would say we made a lot of progress since I first brought this up, however I would not like to close this prior to:

  • Adding a confirm OR undo for delete
  • Linking “2 posts pending” to user activity, so you can easily find them.
  • Showing what something is in reply to in the paper trail
  • Improving linking so it takes you to the post, not to the first thing in the topic.

Edit, is a fine stretch goal, it is somewhat tricky cause there are race conditions.

I guess we need to decide how much we want to gold plate the feature, I feel we should give it 1 more week of dev time and then close this off, do all the easy very clear wins.

Also from an admin perspective, I always find it really hard to decide what to do with a post that needs approval, cause I lack context in the approval queue.

Specifically I have seen spam bots cut and pasted a reply and change a word or 2 and just post it again. It seems reasonable without context, but as soon as you visit the topic and get context you can see what they just pulled off. I guess it may make sense to add support approval directly from the topic, that way you can approve a post in the place where people replied if you seek a lot more context. This though can clearly wait.