Checking session availability…
Hang tight while we load the latest updates.
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.
Rebuilding Reddit
Christopher Slowe at UXDX Europe. Video: https://youtu.be/ULErF4jxNXk
Readable transcript: edited from the recording's captions for readability (fillers and false starts removed, punctuation and section headings added). Wording is the speaker's own. Timestamps are positions in the video. Names marked [?] could not be verified against the audio.
Who I am and what Reddit is
[00:00:00] Oh man, with that intro I can only possibly let you down. Thanks for coming out here and not having your post-lunch nap, I really appreciate that. Hey, I'm Chris, the CTO at Reddit. I'll start off with a brief history of me. I got my start doing experimental physics. I use it every day, in that gravity still seems to operate on me. I got started as 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.
[00:00:50] Mostly the time I was doing platform and infrastructure work, and the redesign I'm going to talk about here is also almost entirely my fault. The original stack, now that I'm the CTO, it means that the redesign is also probably turning out to be my fault. So really I'm to blame for everything.
[00:01:12] First off, 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.
[00:01:32] Reddit, we've traditionally called ourselves the front page of the internet. That notion has had some staying power, but what it's actually evolved into is that 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 the real last place online where you have long-form conversations happening.
[00:01:56] We're also kind of a big deal. We do actually have a fair amount of traffic. We're like the biggest 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. We've got 350 million monthly active users, 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 showing, when we took it, the live post and comment submissions. The blue is posts and the red is comments. So lots of things happening.
[00:02:37] Our purpose is to bring community and belonging to everyone in the world. With that notion in mind, the way to think about this redesign is that we have to build an experience that appeals to everybody. It's so simple. Everyone loves the same things.
Why change is especially hard on Reddit
[00:02:57] One part of this is that change is actually really hard in general, and it's especially hard on Reddit, and here's why. Here is back in the day, this is the first version of Reddit, 2005, which happens to be, in terms of timelines, Facebook was 2004, Twitter was 2006, so this is really pretty far back there. You'll notice this strong affinity to the current version of Reddit. In fact, here's speeding through the time: 2009, adding some more cruft, and it's just, look, an ad unit finally. 2013, great. And 2017. Not really drastic changes here.
[00:03:37] So for our redditors, we're talking about taking an experience which they've come to rely on and doing something with it, which of course is absolutely terrifying. One of the primary reasons that Reddit exists is that it's a platform for redditors to criticize Reddit. With that in mind, we're 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.
[00:04:03] The why for the redesign should be pretty clear here. The why, to start with, is about perception. We don't want to look like, my favorite description of our 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. 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.
[00:04:28] On top of it all, 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 jQuery, for those people who remember it, pre React or Angular. It actually works fairly well, but of course it's accumulated a lot of cruft over the years. So the first step here is to really start over, think about building a foundation. What's the new stack going to look like?
Separating the rewrite from the redesign
[00:04:59] With any kind of redesign you have to deal with 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 a combination of Scala and Elm and for some reason you can only support fonts with serifs. So you have to deal with the feature creep and make sure it doesn't actually happen, or at least is mitigated as much as possible.
[00:05:39] What we did to try to stop this was to break up the rewrite from the redesign bits. The rewrite was going to have to happen anyway, so we actually had a chance to go through and start rebuilding the stack. In our case we actually started using React pretty early on. And separately, break off a design team whose entire job it is to try to figure out what should the new stack look like.
[00:06:05] 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 a great engine for innovation. So we were able to actually build a new experience for Reddit without having prior art to compare to, which makes it a lot more straightforward to 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 difference between the two stacks. This was a good motivation to say, hey, maybe this whole redesign thing is a good idea.
Giving designers room to be creative
[00:06:52] The next page relates again to the design side. I am an engineer by training. I know enough about design to know when a designer is very good at their job, and to feel really good about it, because I know I couldn't do that, as evidenced by the early versions of Reddit.
[00:07:09] One of the things we added was a redesign war room, so we really let these designers go off and be creative, which is a very hard thing to do. 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. This included going full bore design sprints. We salvaged a war room, they have an entire conference room dedicated to the redesign, with, as you can see, 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 to dedicate an entire day to crazy ideas. The intention here was not to say we're going to do something radically different, but, what would something radically different look like? That at least got a chance to get out of our box.
Dogfooding, and spinning up user research
[00:08:02] Once you've got these initial sets of new designs, the new question is, could we actually even live here? One of the advantages is that people who work at Reddit also use Reddit. One of the problems is that people who work at Reddit also use Reddit. So we actually had a chance to basically dogfood this ourselves, actually asking employees, hey, would you actually use this? Because we had the full gamut of very core engaged users, this guy, and much more casual, newer users.
[00:08:34] So we did concept interviews. We had people try out, InVision is a magical thing, I love it, I'm amazed, if it existed back in the day the site might look a little better today. We had a chance to actually check and see, before we actually exposed anyone in the outside world who might decide to blog about it and say that we are incompetent, which they would do anyway, would this actually help us achieve our goals, and will this actually look good?
[00:09:04] Next up, once we 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. With that, it was getting full-blown working mockups. At this point the stack was actually advanced enough that we could build some of these early mockups into it. Here's an example of a video call that was going on between our head of user research and a user, and it was great because it was a chance to actually talk to somebody and help find out not only what their problems were but what their concerns were.
[00:09:41] The issue we run up against is that the people who are most engaged and most into Reddit have no problem expressing their concerns on platform. You're not going to get that from a new user. A new user is going to come along, say, yeah, and just bounce. So it gave us an opportunity to hear the full gauntlet of, I don't know what I'm looking at, from the new user, to, why are you trying to destroy Reddit, from the engaged users, and all the variables in between. Honestly, just over a video call you get a much more real understanding of what the user's coming from, and they can actually point at things and say, I don't like this, or I don't know what I'm looking at, in those cases.
[00:10:18] One of the little bits that we 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. It stuck around for a while. We gradually switched into a real looking one, but it's gone through some stylized versions.
[00:10:30] This also 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 most fundamental issues. With a new stack one of them is always going to be things like performance, that's been an ongoing problem, but also just actual product issues, like rough spots, unclear UI. There's always a tendency to want to create mystery meat UI, it just kind of happens as a result of a redesign.
Keeping what makes Reddit work: voting, and communities
[00:11:01] That comes back to, at the end of the day the purpose here is not to do something drastically, radically different and 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 a little bit more modern and a little bit more polished and a little bit more welcoming to more users.
[00:11:24] Fundamentally that means we can't really change how it works. 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 we definitely should be amenable to thinking about the current stack and looking at it in a way that isn't too different.
[00:12:00] The last big thing here is that the fundamental unit on Reddit isn't so much the user, it's the community. 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 do moderators need. 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.
[00:12:34] So early on in our rollout process we started engaging with moderators very, very early, to make sure that we addressed their concerns. That means also that we have to be able to understand what moderators need and what communities need, and those should hopefully be 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 very confrontational, you're changing everything up from under us.
CSS, structured styles and customization
[00:12:59] One of the early things that came up was actually CSS, a very old, very important feature of Reddit. I think what really helped get communities off the ground is that we actually allow arbitrary styling of communities with CSS. That's great, you get experiences like this one, which I don't think anyone here would think is Reddit unless you actually knew it.
[00:13:23] The side effect though is of course that CSS is a very powerful tool. It also means the DOM effectively gets locked in. It meant there was no way to actually start to do subtle iterations, because once we had enough CSS usage from third parties we can't change anything. If we add a div in, it breaks the layout on half of the site and we can't actually fix it very easily.
[00:13:44] So the solution we went towards was, well, it turns out that there is a set of, the first 90% of features that all communities were actually using as part of their styling, we started building out a toolkit for 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, and we've been going back and forth on how much. The intention is to allow for personalization but to make sure that we can still actually move the entire product and not break anything.
[00:14:18] 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 our mobile traffic is going up, users aren't necessarily seeing this customization. Providing a means of actually configuring it via checkboxes and via uploading individual images made a big difference. Here are some examples with structured styles, where you can go, here's the slightly more stylized hamburger button, and it's starting to feel very similar to the old stack in that way.
Listening to users on the platform itself
[00:14:54] Okay, 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 platform. There's an old joke of course 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 can be very tricky. But the important part there is evolving.
[00:15:21] 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 of people in there who are pretty creative. But even with structured styles, there are just some of the basic things that we provided as tools. There's an entire flair system on Reddit which is built off of structured styles, or off CSS, I'm sorry, and we would never have thought of that. There's a whole bunch of creativity there that we want to unleash.
[00:15:48] This means doing things like actually using the platform to have the conversation. We've built a dedicated community called r/redesign that is all about making sure that users have a place to talk about the redesign and they're able to complain, live, in a place that's actually constructed where we can actually pay attention and engage. That's important to us. Most importantly, we do actually listen and take action. We don't accept everything, but we try to make sure people feel like they're at least heard, and we do actually build what most users want.
[00:16:26] It's my favorite question from The Onion: will this likely be a smooth rollout and no one will have any complaints? As with everything that happens on Reddit, it didn't go quite that well, but it went pretty well. We did actually see people wanting to be part of it. When we announced that we were going to move from this very closed alpha into an open beta, we had a call to action saying, hey, if you want to join, oops, back up, if you want to join, just reply here, and we had 2,000 comments in almost no time at all. There are some conversations that are a little bit less pleasant, but we also met pitchforks. That's part of the process.
[00:17:04] 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. 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. That's the part that we have to remind ourselves of constantly.
[00:17:36] Having a community around this 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 their knocks when they actually deserved them, or be able to explain what we're thinking when we make changes.
[00:17:56] This also gave us an opportunity to have advocates on platform. Not everyone on platform is seeing everything that is 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.
[00:18:17] This meant we could do things like launch early adopters, and we actually started doing badges for users who were helpful, or just assisting with styling, assisting with the alpha. We made sure that as part of the first rollout, the first groups that got access to it were moderators, and any existing beta users got 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 felt. We also gave them some things to focus on, like what's going on here. Users were actually building wiki pages for us, on their own[?], on how to do structured styling, how to actually use the new tools, before we even had a chance to finish them, which was really, really delightful.
Metrics, rollout and where it stands
[00:18:58] Okay, metrics, 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 we're talking about changing, it's a really apples to oranges comparison. We don't really know necessarily what magical thing is broken until we've broken it. So we just measured everything we put in. We actually had ten times more metrics 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 to the majority of our traffic.
[00:19:39] We also defined our metrics early on, so we want to make sure that overall engagement, 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 continue iterating. The intention here really is to learn, debug, iterate over the course of several months.
[00:20:02] With all this, finally last April we went, I wouldn't say full bore, but at least partial bore, about 10%, with a gradually increasing rollout. Our job here has been, over this time, to basically continue to maintain sentiment and make users feel like they are being heard, and 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. The whole purpose is to keep track of benefits, make sure things are predictable, make sure the users feel like they're heard and listened to, and iterate, continue down this path of improvement.
[00:20:49] I forgot to update this slide, I originally gave this 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 90% of the project takes the first 90% of the time, and the other 10% of the project takes the other 90% of the time. We're deep into that right now, continuing to iterate. Responsiveness and accessibility are very important. Performance is very important. One does not simply overturn an entire battle-hardened stack and assume everything's going to work.
[00:21:28] 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.
[00:21:48] With that in mind, 30 million users, about a hundred thousand hours of work so far going into this, 50 people on the team, four dedicated teams all forming one giant redesign, which of course, Reddit, we dig it. (garbled) I just want to shout out to the team. This is our redesign team. This was all kicked off originally by the gentleman with the hat here, Ranjan[?]. 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 in React in about two weeks, just for fun, and we've since managed to build an entire team around that. Anand, our director, and his team, we moved him 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. I 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.
