Eight Pro-Social Platforms that Didn't Work
It turns out that making an engaging platform that encourages civil discourse is hard.
As I discussed in an earlier post, my time working at Facebook led me to believe that a big part of the reason online platforms have the problems they do is that they make information too public, too quickly.
It’s possible that Facebook could be modified to encourage smaller, more civil, conversations. However making major changes to a product as big and complex as Facebook is hard, particularly if you have no evidence that those changes would actually make the product better. So I quit Facebook and tried to build a new product that worked better.
Network effects being what they are, I didn’t expect my new product to take over the world, but maybe it could at least give Facebook something to copy, or give regulators a guiding example of what a healthy social platform looks like.
This is the story of the products1 I built, the reasons I thought they would succeed, and my guesses at why they didn’t.
Slowtalk: Private Conversations about Public Updates
My starting point was to find existing pro-social things people do today, and find ways to make them less painful, so that people would do them more.
Many people told me they would ping friends on chat and have a private conversation about what’s going on in their lives. When these conversations work well they can be great. The privacy of a 1:1 conversation lets you talk about what’s really on your mind, kick ideas around, and develop a stronger relationship with that person than would be possible in public.
But there is a very real awkwardness to starting these conversations. Is this person busy? Do they actually want to hear from you? What might be going on in their life that they would want to talk with you about? So in practice people talk to friends less than they would like to - a sentiment echoed by pretty much everyone I interviewed.
Several people told me that they would look at Facebook and Twitter to know what their friends might want to talk about privately. But posting on those platforms comes with the expectation that you want to have a public conversation, which people may not actually want, particularly about things that are personal, or politically contentious.
So I built a simple product called Slowtalk. Each user writes frequent short updates, saying what they are up to and what is on their mind. Like Facebook, these updates can be shared with friends and groups. Unlike Facebook you can’t reply to an update, but instead talk to people in private about the updates they wrote since you last talked. Updates were clustered by person, making it easy to see all the updates someone had written since you last talked to them.
At first it was great - lots of people who hadn’t chatted for ages had great chats and caught up with each other about things they hadn’t realized others were thinking about.
But quickly the app came to feel like a chore - while having a private conversation with someone can be great, it is also a lot of work, and writing an update could invite a barrage of private conversations from people with too much time on their hands who you didn’t really want to talk to, but felt you had to in order to not be rude. Unlike a student common room, there wasn’t an elegant way to leave, or to see who was in the room before advertising your interest in talking.
Talkbeat: Periodic Private Conversation
Talkbeat was an attempt to get the benefits of one-on-one private conversations, without the “people I don’t want to talk to are talking to me too much” problem that Slowtalk had. The proposed solution was periodic communication.
A lot of normal social behavior is periodic. You see your extended family once a year at Christmas. You see each of your friends once a year on their birthdays. Work teams have periodic meetings. If you are Christian you go to Church once a week. On Halloween you go trick-or-treating with your kids and catch up with the neighbors. Even online, it’s normal for people to message people when Facebook says it is their birthday, or to send catch up messages in the New Year. Even if you don’t have a formal periodic meeting schedule, a lot of friendships form because people periodically “bump into” each other as a result of regularly visiting the same physical spaces.
Another behavior that inspired Talkbeat was the way PMs at Facebook would write periodic HPM (Highlights, People/Product, Me) emails that other people could subscribe to. If something in an HPM was interesting, you would typically respond by jumping into private chat and talking with them about it.
Talkbeat tried to make this kind of behavior easier online. You would add people as friends and then Talkbeat would periodically ask you if you wanted to “check in” with them. If you said “yes” it would help you initiate a chat conversation. If you said “no” (or the other person didn’t respond), it would wait twice as long before asking you again. The result was that Talkbeat would adaptively find the right frequency for two people to talk to each other without either being annoyed that the other wanted to talk too often.
Like Slowtalk, Talkbeat let you write a series of updates, but unlike Slowtalk, Talkbeat only sent those updates to other people when you explicitly “checked in” with them. This avoided tempting others to message you about your updates before you actually wanted to talk to them, and also gave you an opportunity to choose which updates you wanted to send to particular people. It also let you discuss a ‘crazy idea’ with one person at a time (editing if necessary), rather than risking looking dumb in front of lots of people all at once.
As with all the products I built, some people really liked it, and it did cause some really fun conversations to happen, but it didn’t work well enough that it seemed worthwhile to keep working on. One big problem was that it was really awkward to ask someone to install an app in order to get reminded to chat with just you. Another big problem was that once you had over a hundred connections, the check in reminders felt like annoying reminders that you were neglecting your friendships.
I tried an alternative that worked over email, so you could sign up to receive a potentially-personalized adaptive-frequency updates mail from the people you wanted to stay in touch with. However doing things over email made it feel much more heavyweight.
GroupBeat: Periodic Group Conversation
So maybe the idea of periodic checkins is good, but it would be better for the check-in to happen for a group of people rather than one-on-one. That was the thesis behind GroupBeat.
I previously talked about how a lot of human social interaction is periodic, but most of those periodic social events are for groups, not a pair of individuals. It’s the members of a church, the people who went to college in a particular year, the members of a work team, etc.
Multiple people told me that they were part of active social slacks, but there was too much activity for them to check in all the time, so they would just pop in once in a while to chat with whoever was around. Unfortunately whoever was around tended to be the annoying people with too much time on their hands rather than the people you actually wanted to talk to. Wouldn’t it be better if the people who wanted to talk to each other all showed up at the same time?
Other people told me they were part of slacks where each person had their own channel in which they just posted whatever was on their mind, and then other people would pop into their channel to talk to them, and whoever else was talking to that person at the time. The nice thing about this was that it let the shy people feel they could talk about whatever was going on in their life (like updates in Slowtalk) without worrying that they were spamming a shared channel.
So I decided to build a product that combined all of these ideas. It had periodic ‘gatherings’ at which people showed up to a Slack-like product where each person had their own channel. In hindsight building a new product was probably dumb. The existing behavior that inspired GroupBeat was taking place on Slack and so it would have made more sense to help people do things on Slack than to build a new product.
The reason I didn’t just prototype GroupBeat on Slack was because I was really worried about the risks of nasty public arguments, and so I wanted to give the owner of a channel the ability to take a conversation private (including previously written messages) if it started getting angry. People liked this idea in theory, but I never found a good way to make it work without it being confusing.
The other reason I didn’t prototype GroupBeat on Slack was because I really enjoy writing code, and so it was easy for me to convince myself that I needed to write a really cool multi-platform app using fancy modern technologies.
The unsurprising result was that the most common user response was “this is nice, but can you make it more like Slack”.
The periodic aspect of GroupBeat also never really worked. My intention had been that the conversation would still be mostly asynchronous, with people dropping into the conversation at different points during the anointed day, seeing recent messages from people they liked talking to, and then chatting with those people on and off for the next couple of days. What happened instead was that, because the gathering was scheduled for a particular time, everyone treated it as a live conversation. People jumped in at the same time, tried to take part in multiple live conversations, got exhausted, and in multiple-cases switched to Zoom. It seemed that if you were going to go to the effort of scheduling for everyone to talk at the same time, you might as well just schedule a video chat.
Talkful: Reddit-Style conversations without public fighting
The previous products I’d built had been trying to help people have small private conversations. With Talkful I instead tried to see if I could make large public conversations less bad.
People call Reddit “the best and worst place on the internet”. At its best, Reddit is home for some of the most thoughtful and informative conversations you’ll find. At its worst… well you don’t want to look at those parts of Reddit. So if Reddit is the best example of online communication working well today, maybe it’s a good place to start when looking for ways that online communication could work better.
I looked at existing Reddit conversations and talked to Reddit users (and people who might have been Reddit users if they weren’t afraid to post) to get a sense for what was bad about it. One of the biggest problems seemed to be the risk of accidentally saying something dumb and then getting sucked into a big public fight with someone annoying who disagrees with you.
So I built a product that was a lot like Reddit (posts with threaded replies), but that had design features that made nasty public arguments less likely. Talkful went through multiple iterations that tried to address this problem differently.
The first version required the author of a message to “publish” any replies to their message before they could be seen by others. The theory was that if someone said something mean to you in a reply, you could just choose not to publish them, rather than feeling you had to defend yourself. The downside was that in practice people often forgot to publish good replies (even when I added a loud banner reminding people to do so), causing a good fraction of messages to be “can you publish my reply”.
The second version encouraged someone to respond to disagreement by editing their message rather than replying. If someone pointed out a flaw in what you had said then you could edit your message to no longer have that flaw, and then their reply would be appear quiet with an “out of date” header until they revised it or you marked it as still valid. The idea was that, if people disagreed, then rather than seeing an angry public back-and-forth, you would see a nicely refined version of one person’s position, paired together with a nicely refined view of another person’s position.
This version sort-of-worked, but wasn’t a big enough advantage to tempt people to use a new platform rather than Reddit. It also didn’t fully stop the problem of arguing with annoying opinionated people, since it turns out annoying opinionated people will continue to say mean things about you in their edited replies, even if you edit your messages to be more robust against annoying opinionated people.
GroupLetter: A Shared Private Email Newsletter
One common way that groups communicate is through a private email newsletter. This could be for a school, a church, a work team, a social group, or whatever. Typically one person is in charge of assembling a newsletter out of contributions from multiple community members, and the email is sent out with something like Google Groups. However these platforms don’t support commenting (unlike Substack for public newsletters), which makes it hard for them to act as a community hub. Another pain point is that soliciting things to be included in future newsletters is a lot of hassle.
So I built a product that allowed people to create a private newsletter for a community. A newsletter could be divided into multiple sections, each with its own comments. You could also solicit submissions for the next edition (as formatted text), talk to the author about revisions, and choose submissions to be included in the next newsletter edition.
Back when I implemented GroupLetter, it wasn’t possible to create a private Substack, but recently they have launched that feature - suggesting that this product idea wasn’t totally dumb.
I stopped working on GroupLetter because I wrote it specifically for a “Tech and Social Cohesion” group I was trying to form, and I had limited success getting people to comment on the newsletter or submit entries for future newsletters.
HubCard: Big Picture Summaries you can Follow
HubCard was like a cross between Twitter and Wikipedia. A person could create a short “card” summarizing the high level state of something (e.g. Best Treatments for Covid) and other people could follow that card to get updated when that status changed. You would then receive emails letting you know the new status of any cards you followed, including both the new text of the card (with changes in bold) and a change-log summarizing what had changed. Each card also contained a comment section where people could propose changes that should be made to the card.
HubCard was inspired by the kind of status updates that Product Managers at Facebook would often post to announcement groups, summarizing the high level status of the product they were working on, and what had changed since the last update.
I was also concerned by that the media gives people a distorted view of important topics, by focussing on interesting-but-atypical examples, rather than an accurate view of the big picture. Maybe if you could instead subscribe to a feed of “the evolving big picture” then it would be easier to understand what was actually going on?
I talked to a journalist who was very excited about the idea and said that he was going to start a new publication that used my product. He had high hopes of getting funding from Elon Musk, who he had a good relationship with. He told me that Elon was very concerned about the way Twitter was polarizing society and he wanted to find a way that he could use his substantial fortune to fix things.
But it was a big jump from what anyone was doing currently, and big jumps are hard. I attempted to demonstrate that the idea worked by creating cards for a variety of important issues, but maintaining them was hard work and I wasn’t getting many followers. Some other people created cards, but then forgot about them and didn’t update them. Existing journalists weren’t interested unless there was a clear way to make money from them (which we never really worked out), my journalist co-founder got distracted by other projects that paid money, people inside companies told me they would rather just send one periodic update than maintain multiple cards, and Elon Musk decided the way to solve the problems with Twitter was to buy Twitter rather than fund something new.
TalkWell: Semi-Permeable Groups
Real-life social groups often make a distinction between members and visitors. Companies have interviewees who might become employees. Social groups often distinguish between visitors and members. Religions have casual attendees and confirmed converts. Visitors can visit the group, interact with members, decide they want to join the community, prove themselves worthy of becoming members, and then go through some kind of ceremony to become members.
Existing online platforms have poor support for this, and it creates problems. A group typically has a choice between keeping itself secret (and never getting critical mass) or being open to anyone joining (and getting taken over by jerks). This also makes it hard for online communities to be “prestigious” in the way that in-person communities often are.
People I interviewed told me that a common work-around was to have a public Facebook/Reddit group that anyone could join, and then invite people they like to a private Slack. But it’s a pain to make it work, the public space gets dominated by jerks unless you put in a lot of work, and the members might disappear entirely into the private Slack so potential members don’t get an opportunity to prove their value to them.
So I built a product that made the idea of “member vs visitor” very explicit. The core product was very ‘Reddit-like’ except that members and visitors had very different powers. Visitors could write posts and comments, but their comments were smaller and less visible, unless a member upvoted them. In addition, some posts and messages were only visible to members. If a visitor consistently had their contributions upvoted then an admin could invite them to become a member.
It’s possible TalkWell might have worked, but I stopped working on it after fairly little user testing, because one of the groups I pitched it to told me I should talk to someone else who was pitching them a different idea, and we joined forces - which led to AutoGroup (not the real name).
AutoGroup: Automatically matched small private groups
I was introduced to someone who told me she had been running very successful small private discussion groups on WhatsApp. Members of a community would fill in a form, answering questions about themselves, and saying which of several (typically political) topics they were interested in discussing. She would then manually match people into ~5 person groups based on who she thought would get along, and they would discuss things in private. I joined a couple of groups and observed that people were indeed having good conversations, including people with different political opinions having civil conversations about potentially divisive topics.
However there were various things that made doing this on WhatsApp painful. It required her to do lots of manual work matching people and sending them invites to groups. It exposed people’s phone numbers, which some people didn’t like. It didn’t let people create proper profiles. It made it hard to publish conclusions from conversations so they could be seen by other groups. It didn’t have the ability to follow/avoid people to influence who you wanted to talk with next time. All of these things could (and were) worked around in WhatsApp, but it was a pain.
So I built an app that did all this stuff. Each community had a feed of topics which you could express interest in. The app then automatically matched you into small group conversations, and key insights from those conversations could be published back to the feed. Each group chat was run by its own members, but you could summon a moderator to come in and sort things out if someone misbehaved.
We approached organizations that currently had lots of disengaged members reading a mailing list and presented our app as a way to build genuine community. We got a very positive response, with leaders telling us how they really wanted their members to actually know each other and work together to develop ideas, but that their attempts to do this with products like Discord hadn’t worked well.
Everything was going great until it wasn’t. Lots of people were joining the product. Conversations were going great (except when they happened to contain a jerk, which was rare in a 5 person group). Retention looked respectable. But then retention started gradually going down, and good users stopped coming back.
We interviewed some of our lost users and a pattern emerged that they enjoyed the conversations, but that the conversations just didn’t seem particularly impactful. If you write a comment in a Reddit forum then it might get seen by thousands of people. If you say something in a work Slack group then it might affect a decision made at your job. If you discuss political ideas in a small group of people you don’t really know then it ends up not feeling like a good use of time. We tried various mechanisms to allow conversations to be more meaningful, but nothing seemed to stick well.
The only people who were retaining well were the people with very strong opinions, and they weren’t much fun for other people to talk to, making it harder to put other users in groups that would have good conversations.
Learnings
None of these platforms succeeded in solving the problem of online polarization, but then again nobody else has solved that problem either.
There were definitely some things that worked well. All the products empowered people to have much more civil discussions than they would have had on Twitter - backing up the hypothesis that making conversations smaller and more private makes civility easier. I also personally got pretty good at using React Native and Firebase to quickly put together relatively slick multi-platform apps (iOS, Android, and Web).
There were some things I did wrong that I knew were problems at the time, but didn’t see an easy way around. I wasn’t able to find a great-but-painful behavior that was great enough and painful enough to clearly justify widespread adoption of a new app. This in turn meant that I didn’t feel good persuading other people to leave their well paid jobs to be a co-founder with me, with the result that all but one of two of these projects were done solo. If I’d just been looking for a business opportunity then I probably wouldn’t have worked in this space at all, but I was motivated by a desire to reduce political polarization, and so was maybe too keen to work on projects that weren’t actually that promising.
I’m still trying to work out how to think about these projects myself, and I’d love to hear thoughts from others in the comments.
In particular:
Could one of these products be successful if I changed it a little bit?
What was broken in the process I followed?
What other “great-but-painful” pro-social behaviors are out there that are begging for a product to make them easier?
Do we actually need better social products?
In some cases I use a different name to the name the actual product had when I launched it. This is because I sometimes used the same name for multiple products (about half these products were called “Talkbeat”) and the name of one product is now being re-used by another platform that isn’t discussed in this post because it’s possible it will work.
Thanks for sharing your learnings! One possible missing component - understanding the user journey and motives of the people you were building for, and potentially not defining segments of users very clearly. You're looking at problems and thinking of ways to solve them, but that route leaves out many nuances that can be important to adoption and retention.
It sounds like you want to build a 'utility' app (something that's for 'everyone') but usually products don't start this way successfully, especially thoughtful products like what you're building. Network effects are more easily built within groups of people who have some kind of connection. If you had a more particular use case in mind, you might be able to make the app work for long enough to nail it for that use case, grow within that segment, and then branch out.
Fundamentally, a product might be a great idea, but if you take the time to understand what people care about, then you might discover gotchas before you build., or understand that with tweaks, you can avoid some of the problems.
One of the failures I see in the social space in general is the (to my mind anti-prosocial) notion that one size should fit all, that there are or should be norms and practices that are universal. Could you build something that was prosocial in context and not require it to be something that can 'take over the world?' It's something I think we need to reckon with, myself included!
Interesting journey! But what I would really like to learn is how you put together a slick multi-platform apps in React and Firebase. Please explain in one article, ideally with a backing github repo!