Show HN: Radiopaper – Troll-resistant public conversations (radiopaper.com)
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!
343 comments
[ 2.9 ms ] story [ 303 ms ] thread* 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.
Without search I can't see how anyone could make much use of it.
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?
Thanks for highlighting the image caching issue, we'll look into it! As for the scrolling behavior, we render a sliding-window of rows to keep DOM size down, but the UX does need some work.
I had a look into it, and it seems we set the following headers when retrieving user images:
> cache-control: public, max-age=3600
So I believe your browser _should_ be caching these.
There's certainly a risk that some kinds of abuse patterns will get through our reply-to-publish model. Eventually we'd like to try and detect bot traffic and challenge them with a CAPTCHA or similar.
1. Send a message to someone you already know, using their email address.
2. Comment on or start a conversation with someone whose post you find interesting.
We expect to add more features around discovering both users and conversations in the future.
I like the idea that messages only appear after they've been approved by the receiving party. That's pretty clever.
We're seeing some errors come in through Sentry about Firebase auth being unable to persist things in local storage, that may be what's going here. We'll keep digging!
We'll work on getting this squared away, but in the mean time, perhaps try the refresh- workaround; or a different browser or OAuth login method.
Mastodon let's you filter people and block them as well, and there are plenty of similar apps that provide actions to create and filter groups of conversations.
Also, is there a blog or some way to follow¹ development and know when new features roll out?
¹ Preferably via RSS!!
Working on a project that aims to improve online discussions is my current long term career goal.
The "counterpart accepting your contribution" filter seems neat and simple.
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!
As we were building Radiopaper, we developed a concept we call "social skeuomorphism." ... Social skeuomorphism is the idea that a social network should be designed to resemble the best social events in the non-digital world. This is tricky, because internet communication differs from in-person communication in many dimensions, and it's not immediately obvious which of those dimensions are the important ones. In a few of these dimensions internet communication might even be superior to in-person communication.
...But parties have a number of built-in safeguards to prevent this phenomenon from becoming toxic. If A approaches B at a party and begins speaking, B is expected to acknowledge the approach, but is free to leave the conversation quickly if desired. If A then follows B, refusing to terminate the conversation, A is being rude, and publicly so. At parties this is often sufficient to ensure that no one has to engage in long, unwanted conversations, or at least not too often.
Maybe this could be a complement to other social sites like HN or Reddit. Sometimes you see two people start to go back and forth in a subthread. Maybe that could be a cue to "take it to Radiopaper".
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.
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?
I think this is for people who like to have other people read what they wrote (as a sort of validation), but doesn't like having people who reply with no-effort content. So the userbase would be people who like having intelligent debates in the open, but in a selective way (not with people they deem "not fit to debate with")
Isn't this the same thing as protecting your tweets and restricting who can tag you and reply to your tweets?
Edited to add the kind of fake boilerplate that seems to gush from every message on there in order to encourage acceptance.
That kind of overtly obnoxious response is generally discouraged on HN.
I don’t think the over-friendliness would last as a phenomenon because frankly I got quickly bored reading replies like that, so I would expect the community to get over it and switch to trying to write good posts instead of performatively respectful ones.
How about I just not accept replies anyone but my whitelist, which I make based on their behaviour in general.
Also, I love the approach with close integration with mails - I think it is strange that the mail protocol isn't more widely used - having my own copies of the conversations, easily searchable and exportable, is a huge advantage!
Email is in some ways like a whole hidden social internet. A lot of people use email who have no interest in Twitter, Facebook, etc. And many of those people are really interesting. Radiopaper provides a way for them to have public conversations online without having to learn a new technology, and without having to worry about what might end up associated with their online presence in the absence of active management.
I share them with a political party that I disagree with, and it always irks when I am called by them.
Maybe I should create an account and check if there's a setting before I whine about it... but this is still the internet!
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.
Ok, this is a really smart idea.
Can you just please add a link to your about page on your home page? without this posting, I never would have found it.
It's not at all clear to me how that premise is going to lead to more civil conversations, but I am 100% behind people trying out different online conversation mechanics and seeing what falls out of them.
Stack overflow, 4chan, twitter, every phpBB ever... the communities they developed were all heavily influenced by the mechanics of interacting with them. I strongly believe that there's plenty of solution space left to explore with the problem of "how do we design interaction mechanics to produce the community we want." I applaud anyone exploring that solution space!
So glad that you're excited to use the platform.
Would you like a custom alias (radiopaper.com/MichaelLeonhard or similar)? At the moment we provision those manually, on-demand.
We saw your message to Socrates, I'm afraid he's not around to reply today, so it'll likely remain unpublished.
I was hoping that https://radiopaper.com/Socrates is role-played by a trained living philosopher. That would be fun.
1. It needs categories. I don't feel motivated to read most of the conversations but if those were related to my interest i definitely would.
2. users should be able to add some bios, who are these people.
3. where it says you can start a conversation there could be a list of experts in my category i can send the question to, not popular people but people who have posted a lot in that category. this can be quora without the spam!
1. We're certainly looking into this, and other approaches to content discovery.
2. You can already add bios! Go to to your user page (link in the top-right), and it should be clear how to add a bio.
3. Thanks for the suggestion, we'll definitely think about this more.
IIRC Discourse started without categories. The whole "bucket of messages" shebang. It did not go well, in the sense that I believe people kept asking for categories.
There's something special about a curated list of folders to slot messages into, that tags and labels don't quite capture.
I prefer to look at it as "each person is interested in different things, and they mostly don't overlap with any other one person, statistically".
My mind is blown at how simple and elegant this solution is!
Great work there.
Hoping this works out!
In the end, I see this as a feature for discussions / subreddits - not exactly a business. But who knows ¯\_(ツ)_/¯
Granted I don't expect to write something bad but yeah, I just have this gut reaction I did something bad, like downvotes
Like a "shadow ban"
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.
So there is a reduced incentive to invest your time in writing a reply.
It's just so frustrating to have no replies when you know the message have been read.
HN is free of such shenanigans and it's been so far the best experience I've had on the internet.
Unless, of course, there's some kind of mechanism that gives threads with higher engagement more prominence? That might create an incentive to have more inclusive conversations. Although that might incentivise trolling too...
EDIT: Perhaps combine the above with a reputation system, where you can see how ban-happy an original poster is. Since people don't like to waste their effort writing a reply that just gets ignored, ban-happy posters would be penalised by lack of engagement. Then platform provided moderation could just become a kind of 'meta-moderation' - basically just banning people who try to game the system (e.g. posting threads saying 'please reply so I can get my ban percentage down').
If neither party is adult enough to participate, then perhaps twitter and facebook aren’t the right places to have controversial discourse.
I could however see it leading to echo chamber threads, or sham threads where one party is deliberately providing a weak counter-argument, a bit like a fox news interview to a right wing politician.
If you get enough overhead from the platform from writing boilerplate comments, maybe you just stop?
“Whenever I write anything publicly I risk being pulled into the maelstrom, which I call the epistemological woodchipper. It's a risk.”
One other worry is that those commentees who are willing to spend significant time moderating the comments they receive may not be exactly those who care about quality. To be honest, I wouldn’t want having to moderate the replies I get on HN. :)
Are you considering a strongly-bound 1-account-per-person model with verified accounts?
It doesn't stop you from posting your own stuff at top level, just stops flames, I suppose?
Sockpuppets.
It's probably trivial to gain a mere two accounts on this service to post a fake conversation of two sockpuppets attempting to "outwoke" each other. You can probably already see the arc of such a fake post in your mind.
(I emphasize I could have the wrong end of the stick about the design).
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.
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.