Towards a Commenting System
This morning I spent some time thinking about Read Write.as and its general purpose. I want to keep its “publication”-like feel, so we pushed out some simple design changes that make it look more like that. But I also want to support the amazing social activity that's grown on it through quoted replies, good old-fashioned links, and shared hashtags. It's time to start thinking about facilitating conversation, instead of it happening accidentally.
The idea so far
I've talked about the idea for our Remark.as commenting plugin before, on the forum and in a lengthy blog post, where I came to this conclusion:
To make commenting more human, it needs to become conversation rather than commentary. Someone talking at you through a television or lonely comment on a blog isn't natural and human; a conversation is. If you want to talk to an author, you should be able to do that directly — no public side is needed. Then, if your conversation turns out to be of interest or use to more people, you should be able to make it public, where it can stand as a work in itself.
My aim is to address the problems of spam and trolling on personal blogs by gently adding friction, while sending conversation to the most fitting digital channel (which might not be blog comments).
The following is what a minimal viable product (MVP) might look like. This is merely a concept that could change radically. It doesn't represent everything that'll be developed, but only the initial product.
I read a post. At the end, there's a comment section. It presents two choices: Reply via Email (private) or Publish a Reply (public).
When I choose to Reply via Email, I get a unique email address that will go to the author. I fire up my email client and write a private email to them. That's the “comment”; it doesn't go to their blog. (Technical note: the generated address hides the author's real email address and will allow Remark.as to optionally moderate messages in the future.)
When I choose to Publish a Reply, I'm taken to a new Write.as post. I write my reply and publish it to my blog (any blog on my account). When I publish the post, it pings the original post, so the author is notified that I replied to them. (Technical note: this will use ActivityPub at first, then ideally Webmentions later.) (MVP note: this “Publish a Reply” action will eventually support any blogging platform.)
I receive a notification that someone published a reply to my post. I visit my Remark.as inbox where I can find and read the reply on its author's blog. I have a few actions I can take:
- Publish the reply on my original blog post. It'll show up in a list of comments as only: Post Title [linked] and Author Name. Readers will need to click through to read the reply.
- Create a new post in response to this reply. This takes me straight to the editor for a new blog post, and lets me easily quote different parts of the reply. When I publish, it'll go to my blog as a standard post and notify that author.
- Mark as read. This toggles a “read” flag on the reply and does nothing else.
- Delete. This permanently gets the reply out of my inbox.
(MVP note: eventually you'll be able to set the level of moderation: automatically approve all, manual approval, etc.)
One assumption this design operates on: the idea that no one has the right to publish whatever they want on your blog [in the form of a comment]. So for example, when replies are eventually published to your blog, they're in minimal form. And the MVP will probably only support manual approval for all comments.
Overall, this is designed for a very narrow use case: public blogging. It assumes a broad audience, and thus introduces friction to discourage bad actors. It won't fit small, trusted communities (it'll be too needlessly tedious). It won't fit authors who want a public conversational format, though it should support private conversations just fine.
Its underlying message is that a standard blog's commenting system shouldn't be for any kind of conversation. There are a gazillion places online to find hectic, noisy yapping via the written word — if you value the kind of conversation you get on reddit, Twitter, chat rooms, email, etc., you should just share your article there. But the off-the-shelf “blog” should be a place of peace and quiet. It should facilitate human connection, yes, but without succumbing to chaos and spam.
One major issue I can imagine involves what back-and-forth exchanges will look like. I like the current design for how simple and neat the first level of replies will be, but I could imagine things getting messy past that.
I imagine this could be mitigated with longer, more contextual replies. But ultimately, we'd need to see how people end up using the system to know for sure.
There are many incremental ways to get this started:
- Adding the
inReplyToattribute on our ActivityPub posts
- Storing ActivityPub Articles and Notes that mention a Write.as / WF actor, to later show in the Remark.as inbox UI
- Building the Remark.as email pass-through system
Not sure when this will make sense to start on. We'll see.
For now, let me know your thoughts by replying to this post in the fediverse and I'll continue this conversation @firstname.lastname@example.org.