top | item 31210680

Show HN: Radiopaper – Troll-resistant public conversations

346 points| evnp | 3 years ago |radiopaper.com | reply

Hi HN! We're a bootstrapped team of 4 and have been building Radiopaper for around 16 months alongside other full-time, part-time, and consulting jobs.

I wanted to highlight a couple of the unique characteristics of Radiopaper that may not be immediately apparent when browsing https://radiopaper.com/explore

* It's possible to interact with Radiopaper entirely by email, and never log-in interactively. The notification emails contain context that explains that if you reply to the email, your message will be published on https://radiopaper.com

* The key mechanism that makes Radiopaper different from other social networks, and more resistant to trolling and abuse, is that messages are not published until the counterparty replies or accepts your comment. You can read more about this in our manifesto at https://radiopaper.com/about

The technical stack is a Vue/TypeScript app talking to an API backend written in Go, running on Cloud Run, and using Firestore for persistence, Firebase Auth for authentication.

Email processing is handled through the Gmail API hooked up to a Cloud Pubsub notification which triggers another Cloud Run service. Outbound emails go through SendGrid.

The whole stack "scales-to-zero", and on days that we have a few hundred active users, we're still under the free limits of Firebase Hosting, Cloud Run & Firestore, so this has allowed us to operate for a long time without funding or revenue. Our overall burn rate is around $40/month, mostly from the smattering of other SaaS offerings we use: Sentry, Mixpanel, Github & SendGrid.

Dave & I discuss our tech stack in a little more detail in this conversation: https://radiopaper.com/conversation/4PsvfxLX2Q5NHLBs8nuN

The team (myself, daave, davidschaengold, youngnh) will be around to answer any questions!

323 comments

order
[+] daenz|3 years ago|reply
About 14 years ago, I also tried to tackle the public conversation troll problem and created a forum that got quite a bit of traction. While Radiopaper takes the carrot approach ("write things people want to engage with"), I took the stick approach: "anyone can ban anyone else for a non-trivial amount of time, but you must reply to their post, and people will see that you banned them."

It was a probabilistic method to filtering out the trolls, and it worked well. Trolls wanted to ban, but they themselves became the more-frequent targets of bans. Eventually, they would get frustrated with the bans and leave. The people that remained, stayed civil to not become a clear target of a ban. There would be brief chaotic behavior, but it never lasted. Cooler heads always prevailed.

Radiopaper mentions that there is a lot of room for exploration in this space, to try different models for creating emergent social behavior and productive conversations. I hope we see more of it!

[+] PaulDavisThe1st|3 years ago|reply
> "anyone can ban anyone else for a non-trivial amount of time, but you must reply to their post, and people will see that you banned them."

This, I like. It would be interesting to experience this system.

My own personal policy on HN is: never downvote anyone for the content of their comment, prefer replying; if downvoting then it must be for extremely poor presentation, not content. That said, I don't tend to upvote or downvote a whole lot.

[+] phailhaus|3 years ago|reply
What was the scale of your community, and how long did the forum last? I would be curious to hear such a system would perform against large numbers of bots or sockpuppet accounts. I think that techniques that work in forums may simply not scale to millions of users, when it actively affects the national conversation.

For example: every time a big political announcement is to be made or an event happens, the optimal game theoretic play is to ban them to prevent them from being able to set the narrative. And it just takes one person to do it. That's not hard at all: if you have millions of users, someone will do it!

[+] palisade|3 years ago|reply
You run the risk of an echo chamber with this method, though. Where like-minded groups of individuals gang up on others to keep opinions they find unpopular concealed. Which may be desirable depending on the goal of your platform or service. But, it is something to be aware you are causing.
[+] kamikaz1k|3 years ago|reply
Sounds like it worked? What happened with the project? Not enough mass of attention?
[+] spangry|3 years ago|reply
> "anyone can ban anyone else for a non-trivial amount of time, but you must reply to their post, and people will see that you banned them."

Was that on a per-thread basis i.e. if I start a thread, I have the power to publicly ban other users who reply to my thread?

[+] derekzhouzhen|3 years ago|reply
I took a similar approach as radiopaper: everything you say is pre-banned, and only the person you talked to has the sole discretion to lift the ban. during the ban you cannot post again to the same person on the same topic. The other party cannot reply to you without lifting the ban. Once the ban is lifted, everyone else can see it and reply to it.
[+] Theory42|3 years ago|reply
Smart. Tit for tat is often a winning strategy.
[+] tomcam|3 years ago|reply
OK I would like to hear a whole lot more about your project!
[+] mro_name|3 years ago|reply
> Eventually, they would get frustrated

the trolls! That's genius!

[+] trenchgun|3 years ago|reply
I would really like to try out this plaftorm.
[+] Kiro|3 years ago|reply
A common discussion "technique" on reddit is to block the person you're arguing with right after your last message, when you feel you're done with the conversation. That way they will never be able to reply and you always get the last word. Unfortunately this feels like an amplification of that. However, I guess the dynamics will prevent the frustrating feeling when that's the game you're singing up for.

Intriguing idea anyway. Looking forward to seeing how it pans out.

[+] davidschaengold|3 years ago|reply
This technique is not possible on Radiopaper. Once a conversation is published — which happens as soon it has messages from both parties — neither party can block the other party or unpublish the conversation (though you can edit your own posts, including deleting them).

Either party can keep adding messages to the conversation in any order, but only a back-and-forth is considered an update to the conversation as a whole, for the purposes of sending it to the top of the feed. That way, if a conversation turns sour, one person only needs to stop replying, and the conversation will gradually sink down the list into oblivion, even if new messages continue to be added by the ignored party.

[+] bgro|3 years ago|reply
The mods there love doing this. "Banned. Reason: Hate speech"

"Why was I banned? I didn't say any hate speech. I just stated my favorite movie."

"I hate that movie, thus it is hate speech because it promotes hate (something that I hate)." or "Read the rules, figure it out"

Sometimes then the mods ironically send actual hate speech in their reply, then block you. Or you reply to them, and replies to mods automatically unlock the nuclear admin ban missiles "for harassment." God forbid you quote their literal message in a report which then triggers the automated word filter bans which are disabled for some reason when it's mod messages.

I'm not really surprised though, since

[+] metadat|3 years ago|reply
Why does redit leave this anti-social loophole exploit open? Is it good for engagement? Seems like a win for the trolls and a net loss in terms of QoL for the good actors.
[+] KennyBlanken|3 years ago|reply
Also, this forces the target of abuse to decide between publishing the message - giving the abuser a platform - versus not publishing it, suffering the abuse privately, and nobody knowing the person is being abusive (aka Missing Stair.)
[+] deeviant|3 years ago|reply
It's worse than that, because you an block an unlimited amount of people, in advance. So you just identify a group of people that would likely respond negatively to your point, and make a post that can't be responded to by that group of people.
[+] dubswithus|3 years ago|reply
When this first happened to me I assumed it was a reddit error until I looked at the response code.
[+] linkdd|3 years ago|reply
> The key mechanism that makes Radiopaper different from other social networks, and more resistant to trolling and abuse, is that messages are not published until the counterparty replies or accepts your comment.

My mind is blown at how simple and elegant this solution is!

Great work there.

[+] taspeotis|3 years ago|reply
It is simple and I do like it, but I also worry that the counterparty can simply not accept your comment and always have the last word.

So there is a reduced incentive to invest your time in writing a reply.

[+] rectang|3 years ago|reply
Isn't this how comments work on Gawker/Kinja properties?

On Gawker/Kinja if you've been "followed" by a power user, your comment shows up right away. If not, your comment goes into "the greys", which are hard to see, until either the person you replied to replies or stars your comment.

I've spent a lot of time reading Jezebel and TheRoot over the years — they're a balm after experiencing the single-silo HN. The Gawker properties aren't what they used to be, but this commenting mechanism has its advantages. It truly defangs trolls. Jezebel and TheRoot could never operate without troll protections — there are so many disturbed characters hanging around trying the most vile stunts, you'd never manage to have a conversation proceed otherwise.

There's a significant flaw, though: the more that your interlocutor disagrees with your reply, the less likely it is that your comment will get approved. This doesn't apply to everyone on Gawker properties because there are lots of approved posters. I don't think the chained comment system would be that great unless it's supplemented by a way of approving/deapproving posters as well.

[+] flir|3 years ago|reply
The key question you have to ask yourself: If I was a bad actor, how would I take advantage of this?

Sockpuppets.

[+] bsaul|3 years ago|reply
Had the exact same « owww that’s smart » instant reaction when reading that part. congratulations to the team.

Edit : since the founders are reading this, i had an idea once about what an anti-twitter would be like and came to this idea : no message under 1k characters. Do what you want with that idea, i give it to you.

[+] westoncb|3 years ago|reply
It's definitely interesting, but it also comes with what seems like a significant tradeoff whose effects may be difficult to anticipate: initial posters are given a big advantage in terms of control over the conversation.

But maybe it won't be such a big deal in practice: in a way, it's kind of like enforcing a certain amount of politeness when conversing on someone else's turf; you've entered their 'house' and are expected to play by their rules while there.

On the other hand, when it comes to debate of any kind, there always has to be one party who gets priority over the other and can tailor the appearance of the outcome of the debate to a certain extent.

TBH, I'm mostly very curious what kind of behavioral dynamics would emerge around this—it's probably not possible to infer too much in the abstract. In any case, an interesting idea.

[+] lordofmoria|3 years ago|reply
But how do you avoid astroturfing? Seems like someone with two accounts (or a small cabal) could get anything they want published with very low friction.

Are you considering a strongly-bound 1-account-per-person model with verified accounts?

[+] layer8|3 years ago|reply
Though I imagine if the moderation doesn’t happen very quickly, there will often be a lot of very similar comments being submitted because they don’t see each other. And the moderator/OP will have to decide between rejecting the “duplicates” (which can feel problematic) or accepting them all (which leads to a lot redundant comments being published). That in turn can create peer pressure to not moderate too slowly. Not sure I’d like those dynamics.
[+] onlyrealcuzzo|3 years ago|reply
The idea is promising, and the design is good, too.

Hoping this works out!

In the end, I see this as a feature for discussions / subreddits - not exactly a business. But who knows ¯\_(ツ)_/¯

[+] ricardobeat|3 years ago|reply
It’s a neat idea but I’d worry if it scales at all to anything beyond a hundred or so followers. At that point it’s offloading the spam filter onto the author, which will end up not publishing any replies at all simply due to the effort necessary.
[+] duck|3 years ago|reply
I found this exchange super helpful in understanding what Radiopaper is: https://radiopaper.com/conversation/K5opCylqOizaZ0HQCB5Q/ots...

This feels like something that would be hard to get traction with, but hats off on trying to do something different and thinking through what social could be. Also, love the design and UX - great stuff!

[+] russdpale|3 years ago|reply
This looks like a bloody brilliant idea thus far. I'm curious as to how you guys approach implementing some of the traditional social media experiences (likes, follows, retweets, etc). There are so many things to consider.. I was telling my BIL, who is a psychiatrist, that we as devs don't do enough to include other voices from other experts in the dev process.. It seems like many of the traditional social media functions could be more harmful then helpful, both individually and as an unhealthy group dynamic. Perhaps simple changes can make big impacts, such as approving people to follow you when they request it, and the option of turning off new follow requests altogether.

It's interesting I see this project, because I've long thought the problem with social media is that everyone can talk to everyone and anyone at any time. Like everyone is in a giant stadium with access to the PA to announce themselves... and everyone in the stadium can use it all at the same time. Real life doesn't work this way. While unfettered communication is nice, it is also overwhelming and positive and healthy communication needs filters and topics and such.

I'll definitely be watching this app and hopefully using it. There is a lot of opportunity here. I really enjoy the clean and simple interface. Personally, I think this is probably the best social media app and idea I've seen come through HN in a long time.

A 'contact me' button which quick copies a link would be a nice addition.

[+] dimal|3 years ago|reply
I would suggest that retweets should not be implemented. They’re the main vector for toxic discussion amplification, and they add nothing to a conversation. It’s a lazy way of participating in a mob.
[+] V__|3 years ago|reply
I hope I'm not missing something, but am I understanding it correctly: Messages between two people are publicly viewable, and then it's possible for other people to comment on them?

I'm having a hard time wrapping my head around a general use case then. It seems like a neat idea for discussions or debates between two people which have public value.. but most of the time when I'm writing directly to someone, why would I want to have it shared? Looking at other social networks, most of the time you want to share something with your social circle and generate a conversation which has more than two people or you message them directly. Am I missing something?

[+] evnp|3 years ago|reply
A few obvious gaps to highlight that we're actively working on:

* The OAuth scopes for login with Twitter are overly broad. This appears to be a limitation of Firebase Auth's SDK, it only supports the Twitter OAuth 1.0 API, whereas Twitter only provides more fine-grained scopes if we use OAuth 2. We're looking into whether we can make changes to Firebase Auth to contribute upstream that would let us request email addresses without permission to view your timeline, followers, etc.

* There are a few quirks with our UX on mobile devices, and Comments are not visible on mobile. We've focused on the desktop experience for reading and writing at first, but a lot of our users do come to us on Mobile, so making this better is a high priority.

* We're missing a lot of the standard social features you might expect from an app like this: following, reactions, @-mentions, topics, search, etc. These and many others are on our roadmap, but as a bootstrapped team trying to maintain a high quality bar, we're moving on them pretty slowly.

[+] kwhitefoot|3 years ago|reply
> search, etc

Without search I can't see how anyone could make much use of it.

[+] leakbang|3 years ago|reply
I've been browsing the site a little bit and I've got a question. Who is this or what is this for? I couldn't think of a personal use case for it so I'm asking out of curiosity.
[+] Klonoar|3 years ago|reply
Just wanted to comment and say that the design is a breath of fresh air. It feels in some ways similar to the startups of 10 years ago while still feeling modern and readable.

I feel like, by avoiding some of the modern UI/UX landing page trends, it feels more authentic when I land there. I like it.

[+] davidschaengold|3 years ago|reply
Thank you — we wanted the design to communicate that Radiopaper is offering something quite different. "A breath of fresh air" is exactly what we hoped for!
[+] roomey|3 years ago|reply
I just signed up. It looks really nice.

I would request some sort of topic subdivision like subreddits or hastags or something similar.

It is hard to know what a conversation is about or even how to post about a topic of interest.

For example, it would be interesting to see a discussion about being on HN and the impact on the user base

[+] edf13|3 years ago|reply
Doesn’t this also allow conversation censorship?

- don’t like someone’s response - simple accept it and no one will ever see the potential counter argument?

[+] MetaWhirledPeas|3 years ago|reply
This seems like an excellent mechanism you have here, and you can tell from the current batch of conversations that you've already achieved good participation. It feels a bit odd and voyeuristic reading it though, almost like I've walked into a high-class party where I don't belong. This may be entirely intentional, and admittedly the sophistication of the conversations is beyond any forum I've seen before. (This might say more about me than your project.) But I do wonder: is there any place for low-brow talk here? Or even quick back-and-forth banter? I just wonder if it's even possible, or if what I'm seeing is simply a result of early testing from your inner circle (who seem waaay classier than my friends, haha!). Even if it doesn't fill every role it seems like a success regardless. Good job!
[+] gitgud|3 years ago|reply
> more resistant to trolling and abuse, is that messages are not published until the counterparty replies or accepts your comment.

So this platform proposes that you must make your comment agreeable to other party, which has its benefits; civil discourse, pleasant rebuttals, less polarising discussion. However it gives the power of censorship to each party, giving a false view of discussion.

What really makes a system resistant to trolling is "reputation", this can be in the form of points or even some kind of verification system. The best platforms respect this, and requires you to earn the right to be heard through time and dedication to the community. Points are a way of verifying that the user has had respectful discussion in the past, as users should only earn points through respectful discussion.

[+] zestyping|3 years ago|reply
Hi Evan! Wonderful idea, and a beautiful implementation.

I conceived this idea independently some years ago (just the core of it: that all replies must be approved by their immediate parent) and am delighted to see it realized!

For a long time, I've been bewildered at the lack of innovation in online discussion. It's time for something new! There are so many ideas we haven't tried — see here for a list of just a few I've been thinking about:

    https://news.ycombinator.com/item?id=28231904

    > Requiring each comment to be approved by the author of its immediate parent
    > (so you can disagree with each other, but you have to be kind)
Have you considered any other ideas for helping people engage in meaningful conversations?

I wish you the best of success! Let a thousand flowers bloom.

[+] gelatocar|3 years ago|reply
This is really interesting, one question that comes to mind is whether popular discussions will become stressful for the original two people as others create new threads off certain comments. It seems that you would either have to ignore those new threads or inevitably end up having to keep track of a potentially deeply branching, difficult to follow discussion - having to make the same points in parallel to multiple people.

Some way to fan in the conversation and allow multiple participants as points converge could solve this but it sounds like it would be rather complex to get right.

[+] davidschaengold|3 years ago|reply
Thanks for this question. It's one we've given some thought to. You're absolutely right that the ability to make new threads allows for the possibility of heavily branched conversations, which could be tricky to follow in their entirety.

Our thinking about this was that we want to make it as easy as possible to follow a conversation between two people, however long and involved the conversation gets. So, while conversations can branch endlessly, it's always easy to follow what any two people are saying to each other.

In the longer term, we might also add some features around seeing an overall conversation branching structure, but it's not on the short-term roadmap.

[+] alimov|3 years ago|reply
> * The key mechanism that makes Radiopaper different from other social networks, and more resistant to trolling and abuse, is that messages are not published until the counterparty replies or accepts your comment.

. Does this mean if someone doesn’t agree with your comment they can ignore it entirely, and nobody else in the conversation will ever know the comment was made? If that’s the case then wouldn’t it be possible to manufacture a sense of agreement (in the thread) by dismissing all unfavorable comments? Edit: Also if enough people of the same ideological leaning (or an army of bots) did this and engaged only with themselves, it could give the illusion that the general sentiment of users of your service is aligned in some belief or system of ideals or w.e? Idk, maybe I’m just spewing nonsense.. I like the overall idea and I wish your team the best of luck.

[+] civilized|3 years ago|reply
> It's possible to interact with Radiopaper entirely by email, and never log-in interactively.

You guys are gods.

[+] Etheryte|3 years ago|reply
This looks like an interesting idea. A twist on mailing lists with a web facing interface. One thing I couldn't figure out, are all threads one-on-one? Or is it possible to have threads with many people in them?

A small technical nitpick, it seems cache headers are not set correctly for images and such right now. When you scroll up and down the homepage, the same images get re-requested again and again. Out of curiosity, why are the top items unrendered when scrolling down?

[+] neilk|3 years ago|reply
Have you talked to people who have handled trolling and abuse at scale before? I ask because there seem to be some huge holes in your model.

1) Message sending is already a victory condition

If I understand correctly, when someone comments, it's always forwarded to the OP. Many harassers will use that to send vile things to the OP. If accounts can be generated without limit, they'll flood the OP's inbox.

2) Since replies are firstly private, this means others will not have the chance to downvote

This deprives the system operator of some potentially valuable signals. Of course they can be brigaded too.

3) Opt-in once and receive a lifetime of abuse

It seems like your system allows for individuals to opt-in to displaying replies, but no way for them to opt out. Many trolls will consider it a game to deceive the OP with an apparently sincere reply and then they'll have an unobstructed channel.

I'm not even a specialist in these matters. Seriously, there are lots of people who are experts in troll fighting at this time, I strongly suggest you talk to them.

[+] YossarianFrPrez|3 years ago|reply
This looks very cool; I've signed up. You can tell from both the visual and mechanism design that the founders really care about their product.

Also, if the Radiopaper team is reading this... You've probably gotten this from other people, but it is hard to know which conversations to enter -- it'd be helpful if they were organized with a title or topic or a tag.

[+] davidschaengold|3 years ago|reply
Thanks for signing up! And thanks for the feedback. It's clear that discoverability is an issue with the site in its current form. We hope to add some features to improve that experience very soon.