In our web app (apologies in advance for my vagueness), we’ve gone down a path where a user can engage in the exact same functionality via the same mirrored component in two separate places in the app.

To flesh it out, imagine a buy/sell component where buyers and sellers can chat and negotiate with one another to make the best deal on an item. Let’s just call that agglomeration of features a “negotiation panel.” This same negotiation panel now appears in two separate places in our app with the exact same functionality in both places: (1) on a sale item’s detail page and (2) on a transitional page of “stuff-I’m-currently-negotiating.”

Once I (as a buyer, say) have engaged with a seller on a detail page for one of their sale items, I can choose to continue negotiating on that very same detail page OR I can carry on the negotiation on my “stuff-I’m-currently-negotiating” page. It’s the same component, mirrored in two places, with the exact same functionality. Email notifications link to the “stuff-I’m-currently-negotiating” page, rather than to the detail page.

Here was the thought process:

The goal was to keep buyers (and sellers) from needing to go to the detail page to finish negotiating a deal. Instead, since they’re already watching and keeping tabs on “stuff-I’m-currently-negotiating” page, let’s just throw the “negotiation panel” in there, too. Save them some time and effort.

My fear is that this will confuse users, some of whom will inevitably wonder whether they’re carrying out the negotiation in the “right” place. Why does it appear in two places? Where should I be? Which one is correct?


In the short-term, this is the arrangement we have to deal with, but long-term, I’d like to see us get rid of this mirrored functionality.

My questions are these: (1) Have you seen a pattern like this in other apps? (I can’t say that I have.) (2) How would you go about recommending to the business that this pattern be abandoned?


(3) feel free to chime in if you think this is great idea. ;)

  • Is this example actually what the feature in your app does? Is it used for communications like this, or is this just a contrived example to illustrate your point? Commented Apr 17, 2018 at 21:42

2 Answers 2


This is an anti-pattern but it can work.

The scenario as you paint is that there is a "normal" and "expected" place in which to do a particular task. (In the example given it's to buy and sell a commodity or service.)

However sometimes users are engaged in another area (the negotiation area) and you do not want them to break their train of thought by forcing them to go elsewhere. (Thereby putting the negotiation at risk.) At the same time you don't want to confuse them about where they are and what they are doing.

This can be done. But it is an anti-pattern and you need to be very careful with this. And, as this is focused upon negotiations and trades, it means you need to test. Really test.

Without having more details I would explore a solution where users in the negotiation area can start the buying process. Make it clear that they are in the negotiation area and that this option is there to help make their transaction smoother.

At some point, say the final steps you may want to push them back to the buy area. You can make this a selling point - negotiate, agree on the points of the negotiation and then go to the buy/sell area to confirm and dot the "i"s and cross the "t"s.

  • In our case I can't see a way for us to allow for folks in the negotiation area to start the buying process. They must do that on the detail page. Why? Because our item searches lead to the detail page. The detail page is the canonical "this-is-the-thing-you-searched-for" end point. And this is where transactions start. Buyer shows interest by starting a chat conversation with the seller about the item or by clicking on an action button (like "Ask for an offer"). At that point an entry is created on the "stuff-I'm-currently-negotiating" page, et voilà, the negotiation panel gets mirrored there
    – JonW
    Commented Apr 18, 2018 at 9:16
  • I agree with you: this feels like an anti-pattern. At a minimum (and against Steve Krug's advice), we're making users think: Am I doing this right? Is this where I do the Real Negotiation?
    – JonW
    Commented Apr 18, 2018 at 9:17
  • ^Above comments were from OP. (I've pasted it from a deleted answer)
    – JonW
    Commented Apr 18, 2018 at 9:18
  • I think it's too definitive to say that the solution being discussed will cause problems (is an anti-pattern). To me it seems like the solution exists as there are two different use cases being catered to. 1. I found an item and I want to negotiate the price. 2. I need to continue to participate in the negotiation process (which happens over an extended time).
    – Zenon
    Commented May 18, 2018 at 14:07

Facebook as well as LinkedIn provide 2 ways of chatting with friends, either on the messages page or in a little popup thing at the bottom of the screen. There are likely many more examples of the same functionality in different places.

Considering your use case I don't think there is anything wrong with duplicating the functionality. It's actually quite useful for your users! As long as the status of the conversation is the same on both screens, eg. messages sent on one screen appear on the other, people will get it.

However you could change the styling of the component like the Facebook messaging thing to be a full solution on one page and a simplified version to close a deal on the other. That will help users make the distinction.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.