quality = min(community, interface)
If the community is bad, it doesn't matter what tools you use, people are going to write and upvote bad stuff, and sometimes downvote good stuff if such option exists, flagging will be misused, etc. There is no way to conjure a good discussion out of bad actors.
On the other hand, any community will contain a few bad actors. If not now, then definitely when the community becomes famous. The good guys may try to stop them, but it depends on user interface how comparatively easy it is to wreak havoc vs police the behavior. If the good members outnumber the bad ones 10:1, but it is 100 times easier to post bad stuff than to remove it, the website is doomed. Ideally, fixing problems should be so easy that moderators won't get tired doing it.
Related problem is that an online community cannot work on pure democracy, because it is simple to create sockpuppet accounts, and also unless the community is huge, it can be easily overrun by hordes of real people coming e.g. from Twitter. Again, a reasonable user interface will assign greater powers to established users over the newcomers. But it needs some metric to do so, for example the total karma gained. Again, if the core members are bad, they will abuse the rules for petty reasons.
When people complain about some features of the interface, typically about downvoting or even karma as such, they usually correctly point out how the feature can be abused, but forget to consider how a lack of the feature could be abused. For example, downvotes can be used to suppress dissent, and karma can lead to hive minds. However, websites without downvotes are easy to spam (whether by literal ads, or just a small group of people pushing their agenda everywhere, upvoting each other). The standard solution to spam is blocking, but then we have gone full circle, because blocking can also be used to suppress dissent, except it is done per user instead of per comment. (A good website needs both mechanisms. Sometimes there is a bad comment from otherwise good user, but also some users consistently post lots of bad stuff.)
Also, ultimately there is no way to build an online community that would make everyone happy, even if we exclude the obvious trolls. People have different opinions, duh. Most people don't like the environments where the opposite opinion is a norm; many dislike even when the opinions are balanced; and for some even hearing the opposite opinion, no matter how small the minority that supports it, is beyond the pale. Deep in our hearts, most of us want to live in a bubble; we just don't want to retreat to the bubble and give up the places we enjoy, we would rather prefer the bubble to grow and swallow the places we enjoy. We all can't have it this way, so someone is going to complain no matter what.