Why isn't HN infinite scroll?
just curious if the design is intentional Infinite Scroll is often considered a dark design pattern. It makes it easier for users to waste a lot of time idly skimming content without engaging with it while you can occasionally throw ads in to get some money. Hackernews explicitly states they want users to engage meaningfully and critically with the content on the site, and also they don't serve up ads for revenue. Given that, infinite scroll seems likely to run contrary to all of their goals with the message board. As well as dark it’s infuriating if scroll isn’t handled correctly. Reddit does this thing where they with you again then bust your scroll position. I say this as a front-end dev who has worked on, among other things, several SPAs Downsides of infinite scroll: - Requires JavaScript (adds complexity, especially when site doesn't already require dynamic rendering) - Loose/unpredictable UX behavior can be discomforting (loads when you don't want it to load, doesn't load when you want it to, scroll bar suddenly changes size, etc) - Reloading the page/clicking the back button loses your position - Monotonically-growing DOM slows things down eventually, unless you start de-rendering previous "pages", which adds even more complexity and unpredictability (Ctrl+F doesn't behave as expected, for example) I think it can make sense for some things, but not for a simple and stable website like HN. Even for something like Twitter I wish they hadn't added it. > - Monotonically-growing DOM slows things down eventually, unless you start de-rendering previous "pages", which adds even more complexity and unpredictability (Ctrl+F doesn't behave as expected, for example) Is this what Twitter is doing? Is this why Ctrl+F almost never works there? Yeah, I believe so. They pull some additional tricks to keep the scroll bar from going crazy, probably by (I'm guessing) measuring the height of the segments being removed from the DOM and then explicitly padding things to match that size dynamically. There's a more general principle here where, once you start trying to override core browser behaviors, you usually end up with a never-ending rabbit hole of corner cases that you now have to cover yourself that used to be handled for free (and probably with better performance, and stability, and accessibility...), and an ensuing complexity-explosion in your code. I won't say it's never worth it, but it's something you should really really put a lot of thought into before you go down that road. All other options should be exhausted first. +1 for letting the browser do what it's good at. So many people try to re-invent the browser in HTML/the DOM and end up doing it poorly. Sometimes there is no choice. For example, want tooltips for each option in your dropdowns? Well, that's simply impossible in the native HTML version. So if you want them, you're going to have to implement your own dropdown from scratch. Complete with keeping things from going off-screen, overflow behavior, type-in behavior, some sort of mobile-friendly UX for touch devices, etc etc. Oh, and screen readers/accessibility browsers will almost certainly not understand it. So then the question you have to ask yourself (or your PM) is: how badly do we really need those tooltips? Sometimes the answer is, "our product will be a complete failure without those dropdown-tooltips". Oftentimes, it isn't. Perhaps web standards & browsers should support it. Most of the reasons why it can be bad are due to it breaking things in certain ways, but that hasn't stopped it from being used. So, add some proper support for it? Some say it's a dark pattern, but I don't think so. Wouldn't it feel silly if Twitter made you paginate through your feed? It is also pretty easy to make infinite scroll an accessibility disaster. I hate infinite scroll. How do you track where you were with infinite scroll? On mobile when rss is smaller infinite websites tend to reset when the web browser clises down, and I have to re scroll half an hour to get to where I were. I had so much bad experience with infinite scroll that I want to curse that whoever invented inf scroll is a P, M and I. How do you track where you were in paginated HN? Ranking changes between reading a thread and returning to the page and links often swap between pages. Most of those websites I use can sort by timestamp and ranks don't change very often. But if the ranks change then yes there is no way to track, but as long as there is something to rank for (popularity is not a good rank) I hate when websites do that, especially since it is often when I'm trying to get to the footer for a link. Or when a story becomes another as you finish reading, changing the address at the same time. Awful. Or when you click accidentally and going back means you have to scroll for minutes to you get to where you were. Others provide good reasons why it's not in place. But if you want it anyways, here's a snippet you can put in your browser JS console: I read once on the psychological effects of infinite scroll and that it made users somewhat anxious. I can not remember the source however. This resonates with me. I don't like when I can not "feel the size" of a page. This might be ridiculous but I find it helps to materialize web pages when they do have a bottom. Because HN doesn't hate its users? Infinite scroll sucks ass. The iOS app actually does have infinite scroll, but I'm very glad the in-browser GUI does not. Very little about the Internet is more annoying than having your scrollbar position suddenly pulled out from under you and what had been a smooth scroll hijacks where you are on the page and throws you thousands of words lower. To me, this makes Google News and Facebook effectively unusable in a browser (which is maybe the point given how much harder it is to block ads in their native apps). I dislike Infinite Scroll especially on Web Pages. HN as a webpage is about as simple as it gets. For things like Apps, such as Twitter. I am fine. The difference can be reduced to experience. App tends to be so much better with loading / pre-loading all the information. I have never seen any infinite scrolling that works well inside web browser. Even the best of them seems to be janky. I also want to mention Twitter is more like continuous scroll. Since there is a definite bottom of your main feeds. Not having infinite scroll is great when you're on an older device. The user is in much more control of how much resources the website uses up without it. To quote dang (the moderator) "for performance reasons". https://news.ycombinator.com/item?id=26069395 He tends to post the comment like that on all of the most popular posts Apparently they're working on adding infinite scroll back but she also mentioned in thesw threads There's no technical requirement that justifies infinite scroll. HN is purposely bare bones - it does what it's intended to and nothing else. I can't say this is why HN isn't doing this but Infinite Scroll is generally not 'Accessibility' friendly [1]. 1. https://www.digitala11y.com/infinite-scroll-accessibility-is... I hate infinite scrolls. Please, no to infinite scroll. The paged model is much better. I don't want infinite scroll on anything, my internet is rarely as fast as I want it to be and anytime I'm on a website that has it and I go beyond about the 300th thing mark it crawls, if I ever hit the 1000th thing mark it breaks. No thank you, never implement it on anything. On a technical perspective, it's also quite a bit of work. I've spent at least two weeks on it to sort out the kinks, which is a lot of time for a feature that few people appreciate. It's suitable for apps like TikTok, not so much for something like HN. One reason HN shouldn't use infinite scroll that I'm surprised no one has mentioned yet - this site doesn't have a high enough rate of new content for it to be worthwhile. I'm also curious of not updating the UI/UX of the experience here. I feel YC is moving more towards a media company anyways .... Ironically for a SV based forum full of web developers and startup enthusiasts, Hacker News can be deeply contrarian and antimodern as a culture, so not updating the UI (or at best, only updating it very rarely) has become a matter of pride, as well as a lifestyle brand for YCombinator. Personally, I'd like to see them add it just to watch HN lose their collective minds. One of my favorite message boards has pagination and you have to click in to messages to see them and then press the back button on your browser: https://virginia.sportswar.com/message_board/general/. Old, but has stood the test of time. I'm very very glad that it isn't. because they are sane people If you want it, there are plugins for every major browser that will automatically infinite-scroll-itize every site on your behalf. I'm happier without it. Count me also in favor of the paginated model compared to infinite scroll No, don't ruin HN also. Already saw Reddit get rekt I like the way it is. we have jobs. infinite scroll is bad for jobs
You'd have to rerun the snippet for each page load, so not quite effortless. Throw it into a browser extension content script and you'll get it truly infinite. (new IntersectionObserver(v => { if (v[0].isIntersecting) {document.querySelector(".morelink").click()}}, {rootMargin: "0px", threshold: 1})).observe(document.querySelector(".morelink"))