Rebuilding Reddit


Rebuilding Reddit

UXDX Europe 2018

Reddit is home to the most authentic conversations on the internet. As of 2018, Reddit's popularity has surged to 330 million monthly active users in spite of a UX largely unchanged for a decade. This year, the company launched its first major redesign to make Reddit a more welcoming place for all. 
In his session, Chris Slowe, CTO and Founding Engineer of Reddit, will tell the story of how Reddit was built - and rebuilt - to enable its teams to scale rapidly and unveil its much-anticipated redesign. He will share the process and philosophy of Reddit's new UX, reflect on the community's feedback, and offer advice from developing and designing hand-in-hand with arguably the internet's most vocal, opinionated users.

Christopher Slowe

Christopher Slowe, CTO & Founding Engineer,Reddit

Oh man, with that intro I can only possibly let you down. Thanks for coming out here and not having your post-lunch nap, really appreciate that. Yeah hey, I'm Chris, I'm the CTO at Reddit, start off with a kind of brief history of me. So actually I got my start doing experimental physics, I use it every day in that gravity still seems to operate on me. And I actually started as a founding engineer at Reddit in 2005. For those who don't know what a founding engineer is, it's a fancy way of describing somebody who at one point worked entirely for pizza, and kind of moved on from there. Or as my mom described it, what are you doing with your life? It worked out actually long-term, most of the time I was doing the platform and infrastructure work. And the redesign I'm going to talk about here is actually also almost entirely my fault, the original stack. Now that I'm the CTO, it means that the redesign is also probably entirely my fault, so really I'm to blame for everything.

So first off you know, got to do the standard internal what is Reddit, just curious how many people here use Reddit? How many people here consider themselves a Reddit user? Different groups, well thank you for coming back, and thank you to all the lurkers. Lurkers are people too. Just to you know, do this intro.

Reddit, we've traditionally called ourselves the front page of the internet. That notion had some staying power, but what it's actually kind of evolved into is we're kind of a social network where we have thousands of communities where people can talk about their interests and passions. And we really put the conversation part first. We're kind of like the real last place online where you have long-form conversations happening. And we're also kind of a big deal, we do actually have a fair amount of traffic. We're like the biggest little site that no one's ever heard of. We're usually somewhere between four and six on Alexa. I'm glad to see after all these years they finally fixed their algorithm. And we have about 350 million monthly active users, you know kind of around a million communities, 10 million posts per month, 3 million comments per day, and about 58 million votes. So it's actually a lot, the graph over on the side is actually showing when we took the live post and comment** **submissions. The Blue is posts and the Red is comments. So you know lots of things are happening.

And our purpose is to bring community and belonging to everyone in the world, and so you know with that notion in mind the way to think about this kind of redesign is that we have to build an experience that appeals to everybody. It's so simple, everyone loves the same things. And you know, one part of this is that change is actually really hard in general and it's especially hard on Reddit, and here's why. So here is back in the day, this is the first version of Reddit 2005 which happens to be, you know in terms of timelines Facebook was 2004, twitter was 2006, so this is like really pretty far back there.

And you know you'll notice this strong affinity to the current version of Reddit in fact here's kind of speeding through the time 2009, adding some more cruft. And it's just kind you know, old we had an ad unit finally at 2013 great. And 2017, not really drastic changes here. So, you know for first of** our **Redditors, we're talking about taking an experience which they've come to rely on, and you know doing something with it which of course is absolutely terrifying. You know one of the primary reasons that Reddit exists is it's a platform for Redditors to criticise Reddit. And so with that in mind, we're kind of set up in the state of trying to make it more welcoming but at the same time having to listen to everybody telling us that we're destroying the site.

And you know why the redesign should be pretty clear here. I mean the why is, to start with it's about perception right. We don't want to look like, my favorite description of Reddit's aesthetic was we look like a dystopian Craigslist, which I think is a really high bar to hit, I'm really actually proud of that one. And you know what we want to do is make it welcoming. So I think to us brand perception and making the experience welcoming are basically the same thing. And on top of it all, you know part of having a stack that is about eight to ten years old, developer velocity is a very important thing we're growing as a company as well as as a site. The stack is old, the current production version prior to the redesign was using J-Query for those people who remember it. You know pre-react, free** angular **it actually works fairly well but of course, it's accumulated a lot of cruft over the years. And so the first step here is to really start over and think about building a foundation, what's the new stack going to look like?

And with any kind of redesign, you have to deal with this second system syndrome.
For those of you who don't know it, the way I like to describe it is that for any sufficiently complicated product change, or project change there's this natural conversation that happens all the time which is while we're in there and then you start to rebuild things. And before you know it, you've taken your simple "we should do a front-page redesign," and now your stack is entirely an accommodation of Scala and Elm. And for some reason, you can only support fonts with surfs. And so you kind of have to deal with that as you know the feature creep and kind of make sure it doesn't actually happen or at least mitigate it as much as possible. And so what we did to try to stop this, was to break up the rewrite from the redesign bits. And the rewrite was going to have to happen anyway, so we actually had a chance to actually go through, start rebuilding the stack, in our cases, we actually started using react pretty early on. And separately break off in the design team's entire job is to try to figure out what the new stack should look like.

We also had a big advantage here, in that in 2016 we didn't have our own first-party mobile apps. We've had a giant ecosystem of third-party apps which we still have and we love them they're great engines for innovation. And so we're able to actually build a new experience for Reddit without having a prior art to compare to. Which makes it a lot more straightforward to kind of iterate, and design, and build something that looks a lot more like a modern experience. The counterpoint to that, is that the users noticed pretty quickly that there was a slight difference between the two stacks. And this is a good motivation, this is a good motivation to say "hey maybe this whole redesign thing is a good idea."

So the next text page really just gets into the design side. I am in engineering training. I know enough about design to what designers are, to see a designer is very good at their job and feel really good about it because I know I couldn't do that as evidenced by the early versions of Reddit. And one of the things we added was a redesign of the war room. So we recently let these designers go off and be creative. Which is a very hard thing to do right? It's like you don't just say to somebody okay "it's time to be creative please start being creative now, we need to get this out." And so this included going full-bore design sprints. We salvaged a war room, I managed to ensure they had an entire conference room dedicated to redesigns with as you can see on this like these lovely printouts of what the new site could look like. I managed to not get a big bowl of string and beautiful mind it all into a spiral. But it was actually lovely and also dedicated an entire day to crazy ideas. And so the intention here was to not say we're going to do something radically different. But what would something radically different look like? And that at least got us a chance to get out of our box. So you know once you've got this kind of initial set of new designs, the new question is could we actually even live here? One of the advantages is that of course you know people who work at Reddit also use Reddit. One of the problems is people who work at Reddit also use Reddit. And so we actually had a chance to basically talk through this ourselves, like actually asking employees hey would you actually use this? Because we had the full gambit of very core engaged users, this guy and much more casual kind of newer users.

And so we did concept interviews. We actually had people try out, InVision is a magical thing I love. I'm amazed that you know if it existed back in the day the site might look a little better today. And we had a chance to actually check before we actually expose anyone to the outside world, who might decide to blog about it and say that we are incompetent, which they would do anyway. You know, would this actually help us achieve our goals? And will this actually look good?

So next up once we kind of hit that, not a small milestone but definitely an important one, we actually spun up an entire user research team from scratch to start to interview users. And you know with that it was actually getting full-blown working mock-ups. At this point the stack was actually advanced enough that we could actually build some of these early mock-ups into it.

Here's an example of a video call that was actually going on between our head of user research and a user. And it was great because it gave us a chance to actually talk to somebody and help to find out not only what their problems were, but what their concerns were. And you know the issue we run up against is that the people who are most engaged and most into Reddit or have no problem expressing their concerns on the platform, you're not going to get that from a new user. New user is going to come along and say ehh, and just bounce. And so you know it gave us an opportunity to hear the full gauntlet of you know, I don't know what I'm looking at for the new user, so why are you trying to destroy Reddit from the engaged users? And all the variables in between. And actually, you know honestly just over a video call you get a much more real understanding of where the users are coming from and they can actually point to things and say I don't like this or I don't know what I'm looking at in those cases.

One of the little bits that we kind of incorporated in the first design was, we made some jokes about a hamburger button and we actually made it shaped like a real hamburger which I really liked a lot. Stuck around for a while, we gradually switched into a real-looking one but it's gone through some stylized versions. And so this also you know gives us a chance to try Reddit out with a real user base, with actual content, and then start the iteration loop of trying to fix the kind of most fundamental issues. And you know with a new stack, one of them is always gonna be things like performance, that's been an ongoing problem. But you know just actual product issues like rough spots, unclear UI, you know there's always a tendency to want to create mystery meet UI, just kind of happens as a result of a redesign. So that kind of comes back to, at the end of the day the purpose here is not to do something drastically radically different and to alienate our existing user base, but to find a compromise where we take our current functional and very engaging stack, and start to make it look a little bit more modern, and a little bit more polished, and a little bit more welcoming to more users.

And so you know fundamentally that means we can't really change how Reddit works, you know there should still be voting arrows, voting arrows are the most important thing on Reddit, they're actually more fundamental than commenting. We only had commenting six months in. We also have to be cognizant of the fact that users will be change-averse. And that means that we're not going to be able to do something that is too subtle, but definitely should be amenable to thinking about the current stack and looking at it in a way that isn't too different.

And then the kind of last big thing here is that the fundamental unit on Reddit isn't so much the user it's the community. And so as part of this redesign we have to basically make sure that the very mechanics that have helped to foster communities on Reddit still function. And that really means putting communities first in this redesign and thinking about what are they going to need, what our moderators, at the end of the day the reason why Reddit works is because we have a giant base of moderators who mostly through the goodness of their heart are willing to put time and energy into making sure communities function. And so early on in our rollout process, we started engaging with moderators very very early to make sure that we addressed their concerns. And so that means also that we have to be able to understand what moderators need, and what communities need, and those should be hopefully the same thing. And also to make the design and iteration process part of their journey, so it feels like they're actually working with us rather than it being a very confrontational you know you're changing everything up from under us.

And you know one of the early things that came on was actually CSS. So a very old, very important feature of Reddit. We actually, I think what really helped get communities off the ground is we actually allow arbitrary styling of communities with CSS, and that's great. You get experiences like this one which I mean I don't think anyone here would think that's Reddit unless you actually knew it. And the side effects though is of course you know CSS it's a very powerful tool, it also means the DOM effects gets locked in. It meant there was no way to actually start to do subtle iterations. Like once we had enough CSS usage from third parties, we can't change anything. Like we had a DIV in this and it breaks the layout on half of the site and we can actually fix it very easily.

So, the solution we kind of went towards was, well it turns out that there's a set of the first 90% of features that all communities were actually using is that part of their styling. We started building out a toolkit for actually doing customization with this control panel. So you have here the most basic functionality, we still allow for some CSS here and there but in a much more restricted scope. We've been going back and forth on how much there is. And the intention is to allow for personalization but to make sure that we can still actually move the entire product and not break anything. Another nice feature of having it this way is that if you go out for apps, apps are not going to run CSS. So we already have a problem where, since we have our mobile traffic going up, users aren't necessarily seeing this customization and so providing a means of actually configuring it via checkboxes and via uploading individual images made a big difference.

And so here's some examples with structured styles where you can go. Here's the slightly more stylized hamburger button, and you know it's starting to feel very similar to the old stack in that way.

Okay so next thing up, listen to users. I've already made the joke several times but our users don't have a problem being listened to because they complain right on the platform. You know there's an old joke of course about that users don't actually know what they want or actually they know what they want, they don't know what they need. And so being able to tease out those two things, it can be very tricky. But the important part out there is evolving right, so the cornerstone of the way we operate is the assumption that our users are going to be more creative than us. At the very least, they outnumber us by about a million to one. So just from sheer statistics, there should be a couple people in there who are pretty creative. But just even with structured styles, they're just some of the basic things that we provided as tools. You know and it's an entire Flair system on Reddit which is built off of structured styles or often CSS I'm sorry. And we would've never thought of that like there's a whole bunch of creativity there that we want to unleash.

And so this means doing things like actually using the platform to have the conversation. We've built a dedicated community called our redesign that is all about making sure that users have a place to talk about the redesign. And they're able to complain. You know, we live in a place that's actually constructive, where we can actually pay attention to engage and that's important to us. And most importantly we do actually listen and take action. We don't accept everything, we try to make sure people feel like they're at least heard.

And we do actually build what most users want, this is my favorite question from the ONION. This will now likely be a smooth rollout and no one will have any complaints as everything that happens on Reddit, didn't go quite that well but it went pretty well. And you know we did actually see people wanting to be part of it. So when we announced that we were going to actually move from this very closed alpha into an open beta, we had a call to action saying hey if you want to join, just reply here. And we had 2000 comments in almost no time at all. And you know there were some conversations that were a little bit less pleasant, but we also** **mint pitchforks that's part of the process. I think the takeaway from all of this for us, is that it's a luxury to have users that are so engaged in your platform that they passionately care about every pixel you change right. The fact they're complaining means they love it. And the fact that they're complaining means that they're afraid you're going to break the very fragile beautiful thing that they see in your platform. And so that's the part that we have to kind of remind ourselves of constantly.

Having a community around us, and having a way to converse directly with users as they were going through the process of the redesign, meant that we also had a chance for PMs and designers to talk directly to users. And actually get you know, get their knocks when they actually deserved them. Or actually, you know, being able to explain what we're thinking when we make changes. And this also gave us an opportunity to have advocates on platforms you know. Not everyone on platform is seeing everything that's happening live, and so we had a chance for users who were actually paying attention to say hey stupid, look their blog post was yesterday take a look here's a link. Because we can't call them stupid, so it's good to have users do that for us.

And you know, so this meant we could do things like launch early adopters and actually, we started doing badges for users who actually were helpful or you know just assisting with styling, assisting with alpha, and we made sure that it's part of the first rollout the first groups that got access to it were MADS. Any existing beta users get access to it pretty quickly, we made sure to stay out of their way and let them use the platform and just tell us what they thought. And we also gave them some things to focus on like what's going on here. We actually have users actually building wiki pages up for us. Out of the goodness of their heart on how to do structured styling, how to actually use the new tools before we even had a chance to finish them which was actually really delightful.

Okay, metrics are the most important thing here. With all the talk about "talk," at the end of the day, if the redesign doesn't actually work and you find out that people can't comment, that's probably a bad thing. The tricky part, of course, is that with a redesign, it's a really apples to oranges comparison like we don't really know necessarily what magical thing is broken until we've broken it.

And so we just measured everything, we actually had ten times more metric** coming out of our redesign than we did out of the primary stack. Which as you can imagine also meant some interesting scaling issues in our event pipeline when we started rolling out the majority of our traffic. We also defined our metrics early on, so we want to make sure that overall engagement like, are people voting, are people submitting, are people actually using the redesign. For the early versions, it's really how long do they use it until they opt back out and go back to the old stack and then just kind of reiterating.** And so the intention here really is to kind of learn, debug, iterate, over the course of several months. And so with all this, finally last April we went I wouldn't say full bore but at least two partial bore about 10% with a gradual kind of increasing rollout.

And you know our job here has been over this time to basically continue to maintain sentiment and feel like users are being heard. Also, scale-up, there's a whole bunch of new technologies here that we didn't have much familiarity with. People convinced me that it was an okay idea to have node in the stack, which me being a Python chauvinist took a little bit of work. And you know the whole purpose is to kind of keep track of benefits, make sure things are predictable, make sure the users feel like they're heard.
And listen and iterate, continue down this path of improvement.

I forgot to update this slide, I originally gave his talk closer to q2. So as you can imagine this is still an ongoing process. One of my favorite rules of engineering is that for any sufficiently complicated project, the first 10% of the time of the project goes to the first 90 percent of the project. The other 10% of the project takes the other 90% of the time, we're deep into that right now, continue to reiterate. Responsiveness and accessibility are very important, performance is very important. You know, one does not simply overturn an entire battle-hardened stack and assume everything's going to work. And so getting it to a point though where every team in the company that isn't dedicated to the redesign can start to build product on it has been the real focus now. We do want the redesign to be the stack, but we have to make sure that it has a good reason to have equal footing with our battle-hardened ten-year-old stack.

And so with that in mind, you know, 330 million users, about 150,000 hours of work so far going into this, 50 people on the team, 4 dedicated teams, all for one giant redesign, which of course you know Reddit, we dig it.** **For the OGs in the room, and I just want to shout out to the team, this is our redesign team. This was all kicked off originally by gentleman with the hat here, Niranjan, he actually built the first version of the redesign over his Christmas holiday because we were kind of hemming and hawing about when to do it and he just built a version of Reddit and react in about two weeks just for fun. And we've since managed to build an entire team around that and our director and his team we moved from Microsoft. It was a harrowing process to convince his wife that he should leave his cushy job at Microsoft and come and work with a bunch of clowns like us. And just want to say thanks, I will make the obligatory we're hiring plug and open up with time for questions.

Thank you very much.