Reddit's redesign increases power usage of user's devices
reddit.com
reddit.com
The previous design was great. The new version of both sites is slow, sluggish and provides me with no benefit. Why was the change implemented? The previous design wasn't broken!
How's the user feedback? A/B testing really indicated to you this was a good choice?!
If you have any insight -- I'm sure this was a decision made much higher up than dev -- please do share.
There's no easy back peddling from a year of development. It may be crap, but they put so much time & effort into it they can't turn back now - even if a lot of users hate it. They're also working more on becoming an Advertising platform, and this redesign allows for more flexibility there, like linkedin's auto-play videos when scrolling into view.
They didn't waste their time. They got promotions and padded their resumes with "designed and implemented" sections. In the process they also justified their salaries. Imagine they are well paid designers getting nice 6 figure salaries. During review they say something like "we didn't do anything, all the stuff actually worked pretty well" vs "yeah, we identified these million things wrong then went and redesigned and modernized all the stuff". Which one will they go for. Which one does the management go for? Or future employees.
That's why I believe GMail was changing its UI every 6 months. You sneezed and you got a new UI in it, even though the old one was pretty decent.
Even if the new UI is crap nobody in the chain has the incentive to raise their hand and say it, because they've all been praising it and approving it for a year.
This highlights I think why it is very important to get impartial test users, who perhaps are paid to be brutally honest and just give their opinions whatever they are.
Better yet, link bonuses to actual feedback from real users. However, the best thing to do, is to implement a policy of strict continuity. Even radical architectural changes can be implemented under such a regime. Strict Continuity means being accountable to users. Relaxation of strict continuity generally means management/devs have their own agendas, and those stupid users be damned!
Yes there is - you call it what it is, a failed Epic. Pivot and see what you can salvage before moving on.
As for the why did this change / previous design wasn't broken - you're abstracting away the interface and systems from the careers which built them. We must endure constant change to allow new generations space to fail and grow. A cynical perspective would say that careers aren't made through maintenance work.
I call BS. I know for a fact that policies of strict continuity can be maintained, because I've done it -- that you can implement radical architectural change without rocking the boat and without throwing the users/UX under the bus. The fact that we, as a field, aren't aware of this just goes to show how "half a field" programming still is.
A big part is the blur between toy and product. We disregard end-users as "sheeple" while simultaneously receiving gratification from their auth count.
I call BS. If you're moving to a new UI framework, these are usually powerful enough to emulate the old UI. Getting the new framework to feel as snappy as the old UI is a very good benchmark for performance as well as for feature parity. (They usually have more features, but there might be some corner-case overlooked.)
The question is - will it be a heavily used multi-million dollar valuation site, or will it be a rarely-used development site?
Management sometimes will decide that it isn't worth the effort, and sometimes that will be the right call. But for a user-oriented site, high value should be placed on the user.
In their place, would you? How much money would it make for you to think about your users, and how much would it cost you?
That depends on the rate and cost of user acquisition, as well as the ROI of user retention.
I distinctly remember when Reddit rolled out the new "mobile site" because it took multiple seconds longer to load than the previous one and now crashes my IPad 1 and is janky on my IPad 2-ish quality Galaxy Tab.
If these companies want to do something for the environment and their customers, they should make their sites blazingly fast through simplicity not lazily loaded this and that progressive client side whoochathings.
Ironic.
But why can't I find this blog post? I just spent much longer than I ought to have searching for it and can't find a trace of it. You have to wade through a lot of SEO stuff that comes up with the search results, but restricting to older content helps (I think this happened at latest 2010 probably several years before that). The old google blog I think was google.blogspot.com or googleblog.blogspot.com but you need to search it on the wayback machine and I can't see a way to do that except by hand.
The Web needs an anti-bloat movement where animation is minimized and documents are mostly server-rendered.
Instead please extend HTML with useful entries and stop using Javascript for layout and handling connections and refreshes.
What you said suggest the use of migrated like Google AMP. Server side had no idea how things are supposed to be rendered. Trying to force it via JS is an extra crock.
Server side has an idea on how things are supposed to be rendered for content-based documents.
Games and complex apps need JS, but readable documents don't. Not everything should be "an app".
Animation is often not accessible and it's a problem that needs to be fixed.
Make it work. Make it fast (or pretty). That order.
But the reason I stated it is that A: it was a heavily requested feature B: comments regarding infinite scroll have been weirdly positive (contrasting my point in another reply about most comments are from very strongly opinionated users) and C: usage statistics ie I can assure you when compared side by side people make more of the equivalent page turns. Personally I like both methods but infinite scroll was a clear winner for us.
Further, I see this behavior in Incognito, and my understanding is that extensions are not active in Incognito.
And that's on top of how much slower it is, how it starts with a sidebar covering the page, janky lightbox scrolling, fixed headers covering the page, autoplay everything, etc. Search and other major features don't work.
New Reddit is awful, the only reason I can see for them to make it is busy work for all the new developers they hired after getting a large investment. Again, there's absolutely no need for a single page app, the whole point of browsing Reddit is to load seperate documents, something the web has been able to do since its inception. And that's not even mentioning the actual design, which is like every new design with less contrast and more wasted space on my desktop monitor.
Unfortunately there's no going back, the sunk cost is to high and they think they really are making things better the new way. The linked post make some errors in the calculations, but I would be surprised if the overall point is wrong.
It's about par for the course when a new dev group and/or manager comes in and wants to make their mark. I generally find this sort of thing facepalm-inspiring-not-so-smart. For one thing, there are so many examples out there of how this can go wrong. (see sorenjan's cousin comment) For a mature long-running production system, the right thing to do is to bias for continuity and incremental change. This isn't to say that redesign and progress are forbidden. There are usually benefits to be had. I've been a part of teams that have implemented radical changes to underlying frameworks. (Re-hosting from an object database to Oracle, for example.) My experience is that there is almost always a way to do this incrementally, but that ego and limited imaginations get in the way of doing the right thing.
When you're out to re-architect or re-host a long standing production system, there are two things you should absolutely do, absolutely:
1) Avoid disrupting the current users
2) Preserve the hard won domain, operational, and optimization knowledge of the previous development team
The goodwill of the users and the good reputation of your company/app were won with great effort and expense. They are extremely valuable. Degrade those at your peril! Likewise, the hard won domain, operational, and optimization knowledge of the previous development team were won with great effort and expense and are extremely valuable. Degrade/disregard those at your peril!
I think I would like to ask new managers who are going to "make their mark" by re-implementing something if they can absolutely guarantee 1) and if they can quantify 2) and back themselves up empirically. Then, when the project is done, ask how good they were at answering those questions.
Just the 2 cents of a hoary old veteran.
(A couple of hints, for those wondering how: Automated test suites and syntactic code rewriting are your friend!)
Sometimes you need to evolve to survive. We got stuck with the old codebase and adding features was a nightmare - features a lot of users were demanding! With the new design and codebase we can start adding more features.. optional features! we wont force you to use them. And FYI unlike other companies we don't even force you to use the redesign! We've left the old one up at old.reddit.com
Sometimes you need to evolve to survive.
Are you suggesting that I think evolution is wrong? Would that really be a fair reading of my comment?
We got stuck with the old codebase and adding features was a nightmare - features a lot of users were demanding!
A positive suggestion for a future project: Implement a new UI with a newer fancy framework -- but have it emulate the old UI. (It should be flexible enough to implement the old UI and the new.) This lets you be maximally flexible in introducing new features incrementally, and lets you easily make comparisons with the old system, especially with regards to performance. In some cases, this can also let you re-use QA assets. Also, this can facilitate allowing users to transition themselves to the new site/new features incrementally, which makes the transaction of switching to the new UI more consensual for the users. (More pull, less push, from their perspective.)
And FYI unlike other companies we don't even force you to use the redesign! We've left the old one up at old.reddit.com
I noticed. Good on you. As a user, the transaction still seemed a bit foisty to me, but it was better than usual. But as a hoary old dev: you can still do better than the naive complete rewrite.
Thanks for the feedback. As I'm not on the web or redesign team I don't know how feasible that would have been.. I know there was a ton of stuff being done in strange ways with the legacy system.. but I can promise that with the new framework we will be able to make the usual A/B adjustments a lot easier and hopefully evolve more incrementally now into something better than both the current old and new designs.
Generally speaking, I love 'new' stuff, and even welcome non-backwards-compatible breaks with the old to get rid of cruft/legacy issues. But with the Reddit redesign I definitely feel that it goes way beyond that and instead does a whole lot of things that seem more 'state of the art front-end bandwagon-ey' than is prudent.
Basically, I get the impression that while the redesign might include a whole bunch of stuff that redditors have been asking for, it's primarily not made with that target audience in mind. Who the actual target audience is I'm not sure, but I imagine their interests don't align with most users. I'd be happy to be proven wrong though.
(and honestly, I wouldn't be surprised if the actual target audience is 'front-end reddit devs who like to use the coolest newest stuff')
That's the fundamental problem in such a situation with completely asymmetrical power. The 'bosses' think they are being super conscientious -- and often they are genuinely trying -- but their point of view lets them get away with thinking, "Oh well, they won't mind. Oh well, it's worth it, they can take it."
I wouldn't be surprised if the actual target audience is 'front-end reddit devs who like to use the coolest newest stuff'
That's something to think about. You want to be able to hire the best devs. This is why policies like "Absolute Continuity" are useful for keeping the devs self-honest. Otherwise, because there is no direct accountability, the dev's priorities are going to creep into superseding the user's.
It's possible, but I doubt it. It seems more likely to me that the 'bosses' don't really care all that much beyond whatever they consider the 'bottom line'.
We’ve been through well over a year of development and feedback (both internal and external) and most of it has been positive or constructive criticism that we are working on. Definitely agree the performance could be better, but we’re working on it and it’s still early days.
This is true. However, the transaction needs to seem equitable to the users. Will the improvement in looks and better feature discoverability seem to users like a fair trade-off for performance? Performance of a UI is pretty much the most valued quality to a user.
Given that the developers/company have almost all of the power in the transaction, this feeling of equity is all the more important. The devs/company need to be careful about appearing to foist a new UI on users. Success should be measured against the consensuality of the transaction. To what extent are people switching because they want to, because it's a better deal to them? (Vs, the company can force it on users, because they have all the power.) The more consensual the transaction is to users, the more value is preserved or created by the company.
What other comparable network/website goes to that extent to not force a redesign on their users?
Ok, let's be fair. Given the dismal record of websites with regard to user continuity, you're doing relatively great! However, I'd also say that this is the wrong pool to measure against if you're looking for the limits of excellence. You're doing better than the peer group -- that can be fairly said to be a positive. But what if your peer group are the delinquents?
So good on you for what you've done! Perhaps I'm a bit delinquent in giving you some deserved praise and credit. It's a good start. However, there's a lot further you could go if you wanted to.
EDIT: What is it with the redesign opt-out form? It feels a bit heavy handed. How about I just get to have the old site by default, and I get to check out the new design when I feel like it, without the inquisition?
Sorry if the opt-outs a lengthy process. I guess the redesign team want to extract as much info from you as possible. I would just go to old.reddit.com if I were you ;)
That comes across as condescending and smarmy.
Again, I'm not against evolution. This whole things is yet another example of what happens in asymmetrical power situations.
Second, while I appreciate the opt-out option, is it here to stay or is it a fallback mode until the entire site is flipped over to the redesign? I can't imagine the former being the case - having two teams maintain two fundamentally different UIs doesn't seem viable in the long run. If so, to what extent is the rollout of the redesign influenced by the number of people opting out or the opt-out feedback?
I get that the Vivaldi issue was an issue with the browser itself, which has just been fixed, but this was only within Reddit, and not the billions of other sites on the internet. What the hell is going on?
With regards to the redesign, i'm actually in awe of how badly it was done. I literally knocked up a browser extension in a weekend a few years ago which performs far better than the current design. I feel really bad having a go like this but i am genuinely curious as to how this massive, relatively simple (i use the term lightly, i know it is complicated) front end has suffered like this. You have a huge amount of money from conde naste, and - from reading the backend/performance blogs - some seriously shit hot engineers; what went wrong? Is there a large amount of politics halting progress? Did you try some new frameworks/technologies which just failed/didn't work as expected? Genuinely curious (and again sorry if it seems like i'm having a go).
But the old redditors learned it just fine.
First off the linked post wasn't a very fair analysis and redditors pointed that out in the comments.
But to answer your questions: The previous design wasn't broken per se but it wasn't particularly user friendly. Whilst there are plenty of redditors who are used to the layout, a lot of potential users (first time visitors) never came back and became redditors - including many people I tried to introduce to reddit. The redesign is doing much better in that regard. Remember starterupers out there - you don't hear from the satisfied customers so much on the internet but you do get usage metrics :) So take the negative comments with a pinch of salt.
I understand if your reason for a redesign is to keep new users, but what I don't understand is why it had to be a single-page application?
Did the design team consider that reddit's core user base likes the old design and may be there because of it?
i.e. The redesign may be more pleasing to non-redditors, but displeasing to the site's actual users. Did you test on regular users or just new users?
I'm curious what the numbers shows on how much is attributable to making the list of links look more like a social media timeline vs. all the other changes combined. Over the last few years, the writing on the wall is that Reddit sees the path to grow as evolving into Meme City, USA. Did you test that in isolation to other UI changes?
The solution? Server side rendering through next.js, same code via redux+react-router+react.
For a long standing production app, my suggestion is to start with a plan for a better layout/architecture in your fancy new framework, but start by emulating the old UI. The new framework is often flexible and powerful enough to do this. If it isn't, then I might question its validity.
I think it comes to down to the growth at all costs mindset of being a VC funded company. Besides the point mentioned above, I think the new design allows them to increase their engagement numbers :
- they heavily push users to install the mobile apps to the point that it's annoying
- the new design lends itself better to native ads
- they started autoplaying videos and gifs on mobile for some users
- when I browse from a desktop without logging in, I noticed that threads now have a "related content" suggestions after the first few comments (I don't remember seeing this previously. Correct me if I'm wrong on this)
- they introduced new profile pages which make the site into more of a social network. Users can now follow other users, post to their own timeline etc.
- they started collecting more user data (for ad targeting) and have reset users' tracking preferences at least twice so far. Related links [0] [1]
Hopefully they start taking user feedback more seriously.
[0] https://www.reddit.com/r/privacy/comments/73259t/reddit_secr...
[1] https://www.reddit.com/r/stopadvertising/comments/87d1sq/psa...
It only had to happen once for me to decide this.
my personal experience with the old site: slow, nothing works, even on wifi interaction is awful, broken cache headers make the index reload everytime I pressed back from an image (which you never knows if it will open the dhtml preview or change the page url to a jpg) and every time you click the first link, a modal popular tells me that I'd be hapier with the app.
the new site: absolutely the same, but somehow even slower (and it was already the top slower site!) with slightly larger images. plus a broken login flow.
i am pretty sure the only users to ever visit that site a second time on a mobile phone did so clicking a link by mistake. either they got the app or bounced.
Is this a bad joke?
I don't want to judge the new design, but the old design was really, REALLY bad. It was complicated, bloated, a lot of stuff was hidden, the colors were ugly... nothing was right
Is this some kind of HN-wide practical joke or do you really believe that 90's style design was somehow any better? Also if this is actually your opinion, do you realize it's probably marginal amongst users?
There are a lot of core Reddit users that just like it how it is, which I get, but there is so much that can be improved. I could write pages about this, but just to give one example: one thing many people aren't aware of is how much work the moderators do to make Reddit a good place. Right now they rely on some pretty janky tools to do that work. The redesign allows us not only to give them better tools to do that work easier, but also allows us to add things like submit validations that prevents users to posting garbage to their subreddits which they then have to take down by hand. If you think we should just add those features to the old Reddit, all I can say is you've never looked into the sad, tired eyes of someone who has worked on that codebase.
> None of your math makes sense. All your measurements have only the consumption at one exact instant, not over time, the total energy used is the integral of the energy flow over time. You'd need to measure the consumption over time, or total discharge of the battery, to actually have the energy used to load a page (in J, not W, you can't measure the energy required to load a page in W).
> You just multiplied a banana times Pi. And showed the results in meters of strawberries.
> The issue is that the redesign uses more power across millions of devices, and that has an impact.
> I might have gotten the exact number wrong, but the exact number doesn't matter that much. It's about it being a significant difference.
Of course the exact number matters. Let's say you're off by a factor of 1000. Then the power difference isn't really worth worrying about.
To be honest, this reads to me like a reddit user angry about a site change trying to make a sensational article to protest it, knowing cynically that even if it's very wrong it won't matter, the headline is too sticky for reddit to ignore.
This is the same mistake typically made by the "electric vehicles will overload the grid and we'll need 500 new nuclear plants!!" folks.
May be the new design is preloading content to make the subsequent clicks faster? May be the new design enables usage of HTTP resources with better cache lifetimes?
* feeling completely overrun with sensationalized politics;
* the new design feeling sluggish and painful even on my maxed out late-2016 MBP;
* the general community feeling more hostile and downvote-heavy than ever before;
* and the content being increasingly image-, video-, and meme-focused...
reddit has really lost a lot of its magic and appeal to me. I do still use it, but I find it almost intolerable if I'm not logged in with my very carefully curated set of subreddit subscriptions.
I don't really know what the solution is. I don't think reddit is dying, but I do think it's becoming something different, and there increasingly feels like there's space for something more like the old reddit to coexist. HN is a considerably higher quality site IMHO, but also considerably more focused and with much stronger moderation.
Even then, though, subreddits that used to be great have often degraded significantly -- in many cases simply by getting too big. Perhaps that's the primary difficulty. Even some "niche" subreddits often now have 100k+ users. The site is just so much bigger and more active than it was when I first started using it that it's very difficult to capture what it used to feel like, even with extensive subreddit curation and filtering.
The content moves so quick, and the user base switches so much, many subs wind up with the same post/style of posts over and over.
The search has at least gotten better and sidebars help somewhat, though the new redesign kills both of those items.
"HN is a considerably higher quality site IMHO, but also considerably more focused and with much stronger moderation."
I think that's the key, making a site specifically not for everyone. Community sites, built around something tangible that a semi-large group of people have an affinity for, is what I'd like to see more of. I've spent more time on atariage.com than /r/atari this month because the redesign pushed me away. I took me almost 2 weeks to get my account approved on AtariAge but I didn't mind because a) I know they're busying doing other things than worrying about how to squeeze every last dime out of my page views and b) there was plenty of quality content for me to consume in the mean time. I will eventually be buying at least $100 worth of Homebrew carts through them and, even though I don't know how much they make off that, it will likely be infinitely more than Reddit ever made off me.
WHY does it NEED to be so SLOW?
For this degree of sluggishness, it feels like you could build a site that fulfills all of reddit's functionality—and have a crypto miner running in the background.
Performance is readily acknowledged as a feature.[0]
There are gradations of intentionality and prioritization.
I don't think anyone said, "Let's make the thing slow." That being said, there was definitely someone(s) out there intentionally prioritizing something(s) other than performance.
I believe it's possible to set that as a default regardless of account age. But it's a PITA.
https://addons.mozilla.org/en-US/firefox/addon/old-reddit-re...
https://chrome.google.com/webstore/detail/old-reddit-redirec...
Seems every thread about something built in javascript is full of people bashing it.
I don't think parent will find any high traffic developer discussion forum where people don't discuss JavaScript.
I admit I don't like the language, but there's definitely both camps on this site, seemingly in similar proportions.
Also, if you find The Next Reddit, let me know so I can build a new AskOuija there. :P
Particularly when other topic-focused communities already exist i.e. what problem are subreddits solving?
And to invert that to the whole set, what problem is Reddit solving? I think they've asked themselves that and the response is this new UX which has the non-answer 'don't know, but let's keep eyeballs on our site and away from Facebook'.
Subreddits don’t necessarily solve a problem... they’re just a well-made framework for content sharing and conversation, combining ideas from previous message board systems to provide a good user experience. But it’s the way Reddit combines them that makes them useful, which means I can’t answer this question without answering the following one:
> And to invert that to the whole set, what problem is Reddit solving?
Maybe I’m misunderstanding you, but the answer seems blatantly obvious to me: it allows you to have all of your communities on a single platform. It creates a kind of meta-community... a user you interact with in one subreddit may show up later in another. Why would you create multiple independent accounts at multiple message boards across the web when you can have one account and one simple feed of relevant posts from all of your communities?
> I recoil at the suggestion of signing-up and slogging through curating and filtering until I achieve Reddit Nirvana. Life is too short.
I’m honestly perplexed as to why you think setting up a Reddit account is this gargantuan task. You find a few communities based on your interests and you subscribe to them. That’s it. And you don’t have to do it all at once. You can join as many or as few subreddits as you like, whenever you feel like it.
I must be missing something here. What topic-focused communities do you prefer? Are you talking about Facebook Groups?
A couple examples of good ones:
/r/homelab /r/homeserver /r/selfhosted
But Xenforo is a really polished CMS with some good skins beside the god-awful default one. It's no vBulletin.
One of those isn't necessarily heavier-weight than the other, but it does shift the energy usage from the company's data-center to the user's computer or mobile device. Server-side rendering also opens up more opportunities for cross-user caching, which AIUI Reddit used extensively.
> (In the headline I used GW because people are more familiar with that, and it's kind of the same.)
Saying "kind of the same" won't please engineers who know what they're talking about and are used to correct units, but for the general public who won't read beyond the headline and (if I'm lucky) the conclusion, I think it's close enough. I am just hoping to get people's attention to the fact that an inefficiently coded redesign of the 6th largest website on the planet has impact.
The joule is a unit of ENERGY.
The watt is a unit of {WORK,POWER}. Confusingly, the germanic languages use "Work" for the concept ("Arbeit" in DE or "Arbeid" in NL), but in English it is "Power". Power means transfer of ENERGY over TIME. Specifically, the Watt it is defined as one Joule per second.
So Watts are a unit of POWER. And POWER=ENERGY/TIME. Note that this is a divison, not a multiplication!
So what do you get by multiplying a Watt by a unit of time (in this case hours)?
> We're multiplying: WORK * TIME [Watt * Hour]
> Which is: (ENERGY/TIME) * TIME [(Joule/Second) * Hour]
> And the result is.....: just ENERGY
As you can see, the Watt-Hour is a unit of energy, just like the Joule. There is nothing weird about it.Hope that could clear things up -- best greetings from the Netherlands!
It's not that hard to specify kW.h, which is what people are used to paying for in their utility bills.
18888.9 kW.h are worth about 3k USD, depending on your local rates.
EDIT: But of course, 18GWh/68GJ "per month" also gives us an average continuous power consumption of 26KW, as you have said.
I think it's time we move beyond reddit and build something bigger and better. It was nice while it lasted.
Here's a minimal UI for browsing r/politics/rising specifically:
* https://www.f6oclock.com/#ninja if you want something more discrete
It updates live and throttles way back when the page doesn't have focus.) The default links go through https://outline.com which is a reader-mode like service (sadly it requires JS - I've got a prototype of a non-JS/server-side rendered version here: https://www.f6oclock.com/readability-demo/test.out.html )
(viewing the stories from r/politics is a guilty pleasure of mine that I'm a little bit ashamed of.)
---
The reddit feed-reading APIs are very easy to use. Just add .json in front of a URL and make sure to send a User-Agent. You can whip up bespoke UIs to suit your particular needs--e.g. I have some things that I send through IRC.
Edit: Nevermind, found it - seems like I wasn't looking very hard! https://github.com/j3parker/f6oclock
But if the new website takes more power, and we know that there are roughly X million pageloads a month, then we know it will use a lot more, right?
> watts aren’t joules
The very definition of a Watt is one joule per second. Not the same, definitely, but it's close and in specific cases 1:1 convertible.
I've gone back to using the old.reddit.com for now, but who knows how long that will remain
And I also hate to say that a little bit of spit and polish on old-school Reddit, probably would have done a lot more good, been a lot more lean, and more useful.
I would trade all this crap for a little bit better markup language for a few more options in posts and comments.