Moderating a 220k Developer Community
Reflections from two-and-a bit years helping to run /r/Reactjs
I have just stepped down from moderating /r/reactjs, the "Front Page of React". Here is a braindump of learnings and recollections for my future self and others (like our new mods) who might be embarking on a similar journey.
Many people don't know that I basically started being Extremely Online™ because I was bored at work. Before 2014 I was a 100% passive consumer of Internet content. The finance day job didn't really encourage creating and engaging online. Someone turned me on to Tickld for the memes, and by Dec 2014 I had joined Reddit (my cake day is 28 Dec!). It took my career change in 2017 for me to realize you could use Reddit for things other than memes.
I recall being very unimpressed by /r/reactjs when I first checked it out. "Nothing going on here". It had 20ish-k members - still decent but nothing to write home about. I think this was around the time that Mark Erikson and Dan Abramov started being actively involved. Since then it's grown to 218,829 as of time of writing (adding 200 a day):
That translates to about 1.2m pageviews a month and 263k uniques a month (Reddit discussions are discoverable by SEO, so we get a lot of non-signed-in views):
You can view more statistics in our 2019 Survey.
Coming out of bootcamp, I was extremely underutilized at my first dev job, so I poured myself into extracurricular activities in early 2018. One of these things was the /r/reactjs forum. Many social networks like Twitter and YouTube basically require a large following for any piece of content to get significant traction. As a "special interest group", /r/reactjs was one of the few places I could post my stuff in public and do well regardless of being a nobody. Like thousands of others, I joined to post my stuff, and then stuck around to learn from others and discuss their stuff. /r/reactjs is a wonderful place to Learn React in Public.
Aside: For experienced React devs, it is also a great way to stay up to date on everything going on in React without spending all your time on Twitter. You could go away for a month, come back, and look for "Top monthly posts" and have a reasonable crowdsourced feel for what the notable discussions and releases have been.
I took two initiatives as a regular member that probably made me stand out - I started the Monthly Beginner's Thread and the Who's Hiring thread. I didn't ask for permission from anyone, I just saw that these things worked well in other forums, and decided to try it out. I learned a LOT of React simply by promising to answer every beginner question that came in - some months we exceeded 500 questions and answers! I still think the Beginners' thread is a great way for both learners to practice React and for teachers to identify pain points. I also have heard from a few people who've found jobs through the Who's Hiring posts, which is nice :)
The job of a community "moderator" is in the name - you "moderate". Just like a moderator in a debate, nobody's there for you, nobody expects you to be an expert. The real stars are the debate participants. But you are responsible for enforcing rules and promoting quality discussion. I think it is nice to have moderators to cool everyone down when discussions get too heated, and to initiate discussion on an important topic when there isn't one. I don't remember exactly when, but it was after one of those heated discussions that Dan Abramov invited me to help moderate /r/reactjs.
Time and time again I've found the React core team to care a great deal about the React community - although its not part of the job description, it's an additional responsibility they've taken on themselves. One bad comment does not a community make, but it's true that culture matters and it's true that people imitate or extrapolate behavior from what they see others do. I started by fleshing out the rules of /r/Reactjs and then enforcing and setting an example. By being "inclusive" (also sex-positive) we effectively excluded those who didn't agree with these rules. There have been a few very irate people over the years - notably one guy who threatened to fork our community (he failed, but not before showing us his National 2nd Place C++ Trophy - prime /r/dontyouknowwhoiam material). I will fight for the right of these folks to form their own community to run it their way. But I also think that excluding this small group (numbering maybe <100) made it a more welcoming place for the remaining 218,729, many of whom weren't even aware of any drama.
Rule 2 was "No bashing other frameworks". I made sure to explicitly state that criticism of React is welcome. I remember, but cannot find, one really good exchange I had when there was some React bashing going on. The commenter liked Angular and was writing in very antagonistic language. I honestly felt like this was a lost cause and almost reached for the ban or "lock discussion" button. But I decided to turn the other cheek. I confessed that I'd never tried Angular, and asked them to explain what they enjoyed about it. The person changed tone completely, saying they had gotten pre-emptively defensive because they were bashing React in the React subreddit. We then had a very nice discussion.
I wonder how many discussions could be better if we really listened to the other side instead of getting defensive. Thanks to the Narcissism of Small Differences, it is usually two sides who agree on almost everything that bicker the most.
It felt like React's popularity exploded from 2017-2018. /r/reactjs doubled, then doubled again. I experimented with other ideas, like flairing posts (do check out our curated Project Ideas or Featured Posts), or starting a live chat (quickly ruined by bots). But I knew that my own interests and work were beginning to take up more of my time. I wasn't scaling. It was time to "hire" more mods.
For better or worse, /r/Reactjs moderators have never been professional React instructors, names you know like Kent C Dodds or Tyler McGinnis, who make a living off teaching React. You could make the case for some vague conflict of interest here and Reddit is very suspicious of corporate interest. But stars attract gazers. I do wonder if the subreddit would have grown faster or would have more quality discussions if we had pursued that. In any case, I invited /u/timmonsjg, who was giving really good answers in the Beginner threads, and /u/dance2die, who I knew and trusted from my Coding Blocks days and was doing the same. Ironically we all live in the NY metropolitan area, although we've never met up. /u/Charles_Stover caught our eye as well with /r/learnReactjs and rounded out our 2019 team.
My leaving was a slow process. I've always been interested in other frameworks (Vue was my first love!) and I started looking into Svelte after traipsing around Barcelona with Rich Harris and Jenn Creighton following his excellent JSCamp talk. I started Svelte Society NYC in Oct 2019 and merged it with Kev from Svelte Stockholm and Antony from Svelte London to became a global organization when Covid struck. Being active in two communities is a fulltime job, but leaving became urgent when I decided I would run a paid community to accompany my book. In June 2020 I gave notice to my fellow mods that I would become inactive (this was a bit of a lie - old habits die hard).
Truly leaving would mean giving up my moderation powers, but I wasn't done with them yet. There's one last job of a mod - to appoint new mods. I wanted to leave /r/reactjs in a better place than when I found it. And you can only have so much of a community when all its active mods are 30something straight white/Asian guys living in the US. So when the craziness of my book launch and new job and conference speaking died down, I launched /r/reactjs' first real Moderator Applications. Rachel Nabors, who among her many talents cares a great deal about docs and community and is one of many prominent Women of React, advised and helped me get the word out to many more diverse people than I could on my own. It took a couple weeks to get through everyone, get consensus on the mod team and then to invite our 4 new moderators, all from diverse backgrounds.
I think it's healthy to have renewal in leadership in a community. We often have the concept of limited terms in government. I think more open source and developer communities should have limited terms. I think more people would sign up for a job if it was a limited 1 year term, that you could pass on. You would have less calcification and leave room for other ambitious folks to come up and take their place. People would also be free to move on to pursue other interests.
A community does not have to constantly grow in order to be great. I increasingly care about quality of engagement, and that I consider one of my greater failings as a mod. Here's Comments Per Day:
and Posts Per Day:
So the engagement is not growing at all along with the subscriber growth. To some extent I can explain this with Reddit's limited real estate on offer - there is only one default sort order, and on average a Redditor views 2 posts per visit, and there's not that much React news or releases going on every single day. But certain exceptional subreddits like /r/AskHistorians and /r/WritingPrompts get MUCH deeper engagement, and the best way to improve the sub might be to look outside programming subreddits for novel ideas. Still, I'm proud of the engagement that we do have - the fact that members of the React Core Team, to Gatsby to Nextjs to React-Spring to Blitzjs to Styled Components, all hang out on /r/reactjs make it a wonderful experience, as do the unnamed dozens more who don't do open source but share their vast experience anyway.
This is just a quick braindump on a Tuesday morning. If you're about to manage a large dev community, I'm sure I'm leaving out some critically important piece of info - please ask away in the comments or ping me on Twitter and I'll do my best to answer!