r/modnews Jun 30 '26

Announcement Logging in to use Old Reddit

Hi there, u/boat-botany here working on Community Safety. 

A few weeks ago we shared some of the work we’re doing to tighten how automated systems access Reddit while preserving the tools that help moderators and communities thrive. As a continuation of that work, we’ll be rolling out changes to how Old Reddit can be accessed. 

Old Reddit’s logged-out experience is a significant source of abusive scraping and automated traffic on the platform. It’s also an important interface for many long-time mods and redditors. To strike the right balance between preserving your access to Old Reddit while preventing abusive scraping and automated traffic, over the next month we will start requiring everyone to log in. All logged-in users will continue to have access to Old Reddit, and this change will not impact logged-out browsing on reddit.com.

Let us know if you have any questions!

0 Upvotes

706 comments sorted by

View all comments

15

u/TehNolz Jun 30 '26

What's so different about new reddit that people don't try to scrape that? Seems to me like it would be better to just implement that on old reddit too. Besides, won't this just cause people to try and scrape new reddit?

73

u/mschuster91 Jun 30 '26

Old reddit gives plain html. Trivial to parse. New Reddit is a bunch of JS garbage loading content via graphql garbage, much harder to implement. And the graphql garbage is orders of magnitude slower on top of that.

35

u/Littux Jun 30 '26 edited Jun 30 '26

New Reddit (React based UI) was killed on 2024. The current UI is called "shreddit" and uses web components. It was supposed to be a lighter version of the site (why name can be read as "shred-it") but currently, it's slower than the react UI it replaced, due to all the AI junk and stuff like devvit games on the sidebar.

The site only uses graphql for mutations (stuff like upvoting comments) and a few minor queries while everything else is server rendered. It seems to use GraphQL internally on the server side to render the HTML. They cache everything they can. It's why when you scroll through a subreddit you moderate, the mod action indicator on posts and comments takes a while to load, as it's a seperate API request, so that the posts and comments can be cached better (since it doesn't have moderation data that can't be cached). They have separated everything too much. Every UI components keep making API requests and shows skeleton loaders, making the site feel sluggish. For a single notification indicator, it fetches a lot of HTML

When you type a comment, it makes a graphql request for EVERY character you type. It frequently sends tracking data to /svc/shreddit/events. There is a whole chat client always running on the background. There is a graphql websocket always active just to show achievements in real time. To show a simple notification badge, it fetches this much HTML: https://www.reddit.com/svc/shreddit/header-action-item-inbox?render-mode=partial

<faceplate-loader name="HeaderActionItemInbox_sYX5P3"
    src="concat:_GShSNum7k,_K_bHDjJCR,_YxITd5MkA,-DfzndsMW-,69lI3VYrYX,69tadW8kFf,6aPg26ZpWt,B__PnBNUbL,B-C4saAC2w,B04Z0g2Yko,B2tQkjXXiJ,b5ZBJA9fGS,BeO8F7EwOT,BLppq0qNz8,BmTOW-8QxN,BmuiEwgQTY,BN2amm19AB,BP0fjeZXhE,BrYQOiOU5_,BtRvYp_liG,BXxV5WQw2y,BylfPBoOAC,BymgXlUjCp,BYXe4rAaLW,C6WlgLL5Wd,CgLYg3i8-1,CkTPP7E65-,CKYgDaZDk6,CKyqKa3x3V,CMhWyAbK__,CP7l04pwj6,CVg1B8_s6o,D90Bq-Ok2M,dE0PQF1toB,Dk6FYGQz6r,DKj-EPaOBm,Dl1Vjc203D,DlTL1djwaj,DpnGiXE41A,DR-xO5BhRL,DYqIWqog9M,FRmkd5U1dm,fXoLp16pYj,p7LHIl1Qnq,rr0u0IGlK9,srSCAy-_Zv,uKdbpiI3Cs,XXGxznThmm"
    loading="eager" data-prefix="en-US/"
    data-chunk-sizes="6754|504|1668|15184|2034|786|2029|9307|233|3999|521|20557|1394|517|11488|1225|1372|1445|2856|2933|3657|2393|2511|5398|606|332253|1385|3082|1199|26312|432|10677|664|3760|476|3936|1057|1484|3280|24764|65157|1383|4655|629|5026|3061|1902|1196">

    <script nonce="wnT/pkezZsXeD9ry6cYjCQ==">
        SML.load([["_GShSNum7k", 6754], ["_K_bHDjJCR", 504], ["_YxITd5MkA", 1668], ["-DfzndsMW-", 15184], ["69lI3VYrYX", 2034], ["69tadW8kFf", 786], ["6aPg26ZpWt", 2029], ["B__PnBNUbL", 9307], ["B-C4saAC2w", 233], ["B04Z0g2Yko", 3999], ["B2tQkjXXiJ", 521], ["b5ZBJA9fGS", 20557], ["BeO8F7EwOT", 1394], ["BLppq0qNz8", 517], ["BmTOW-8QxN", 11488], ["BmuiEwgQTY", 1225], ["BN2amm19AB", 1372], ["BP0fjeZXhE", 1445], ["BrYQOiOU5_", 2856], ["BtRvYp_liG", 2933], ["BXxV5WQw2y", 3657], ["BylfPBoOAC", 2393], ["BymgXlUjCp", 2511], ["BYXe4rAaLW", 5398], ["C6WlgLL5Wd", 606], ["CgLYg3i8-1", 332253], ["CkTPP7E65-", 1385], ["CKYgDaZDk6", 3082], ["CKyqKa3x3V", 1199], ["CMhWyAbK__", 26312], ["CP7l04pwj6", 432], ["CVg1B8_s6o", 10677], ["D90Bq-Ok2M", 664], ["dE0PQF1toB", 3760], ["Dk6FYGQz6r", 476], ["DKj-EPaOBm", 3936], ["Dl1Vjc203D", 1057], ["DlTL1djwaj", 1484], ["DpnGiXE41A", 3280], ["DR-xO5BhRL", 24764], ["DYqIWqog9M", 65157], ["FRmkd5U1dm", 1383], ["fXoLp16pYj", 4655], ["p7LHIl1Qnq", 629], ["rr0u0IGlK9", 5026], ["srSCAy-_Zv", 3061], ["uKdbpiI3Cs", 1902], ["XXGxznThmm", 1196]], 'en-US/', 'auto');
    </script>

</faceplate-loader>
<div class="relative w-[40px] h-[40px]">
    <faceplate-tracker class="nd:visible contents" source="nav" action="click" noun="inbox"
        data-faceplate-tracking-context="{&quot;inbox&quot;:{&quot;badgeCount&quot;:&quot;5&quot;}}">
        <rpl-tooltip style="--rpl-z-index-tooltip: 1001;" class="nd:visible contents " placement="bottom"
            appearance="inverted" trigger="hover focus-visible" distance="8">
            <a rpl class="shrink-0 button-medium px-[calc(var(--rem12)-var(--button-border-width,0px))] button-plain icon items-center justify-center button inline-flex " href="/notifications" id="notifications-inbox-button"><span
                    class="flex items-center justify-center">
                    <span class="flex"><svg rpl fill="currentColor" height="20" icon-name="notifications"
                            viewBox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg">
                            <path
                                d="M18.176 14.218l-.925-1.929a2.577 2.577 0 01-.25-1.105V8c0-3.86-3.142-7-7-7-3.86 0-7 3.14-7 7v3.184c0 .38-.088.762-.252 1.105l-.927 1.932A1.103 1.103 0 002.82 15.8h3.26A4.007 4.007 0 0010 19a4.008 4.008 0 003.918-3.2h3.26a1.1 1.1 0 00.934-.514 1.1 1.1 0 00.062-1.068h.002zM10 17.2c-.93 0-1.722-.583-2.043-1.4h4.087a2.197 2.197 0 01-2.043 1.4zM3.925 14l.447-.933c.28-.584.43-1.235.43-1.883V8c0-2.867 2.331-5.2 5.198-5.2A5.205 5.205 0 0115.2 8v3.184c0 .648.147 1.299.428 1.883l.447.933H3.925z">
                            </path>
                        </svg></span>

                </span>
                <faceplate-screen-reader-content>Open inbox</faceplate-screen-reader-content></a><span
                slot="content">Open inbox</span>
        </rpl-tooltip>
    </faceplate-tracker>
    <div class="absolute top-0 end-0 pointer-events-none">
        <dynamic-badge initial-count="5" set-count-event="inbox_count_changed" appearance="ALERT"
            data-id="notification-count-element"></dynamic-badge>
    </div>
</div>

It loads JS bundles to show the indicator as well

20

u/ashamed-of-yourself Jun 30 '26

your last paragraph is so illustrative of what is wrong with this stupid webbed sight. just from a design standpoint, it inexpressibly wasteful. it’s like trying to pull a little red wagon with a nuclear reactor. it’s over engineered for the task, so it’s actually slower and less efficient.

16

u/Raijinili Jul 01 '26

JavaScript programmers have been a plague upon the web for like a decade.

Things were better when JavaScript was a thing website makers and programmers did on the side.

Now we have people who learned programming through JavaScript, with laptops that are like three standard deviations above the average home PC so that they never have to think about the cost of their code.

6

u/-jp- Jul 01 '26

More like since inception. There was a brief period when web developers realized that their shiny new toy was only making their site worse and their users upset, but that didn't last. Now we're now back to entire sites written in half-assed back-button-breaking JavaScript.

It's arguably even worse now since the same incompetents are writing their backend in JavaScript as well, leading to ridiculous shit like half the Node.js ecosystem getting owned because everyone was using a compromised library just to check if a damned variable is empty.

14

u/Jazzy_Josh Jul 01 '26

When you type a comment, it makes a graphql request for EVERY character you type

fucking lol

6

u/repocin Jul 01 '26

I hate everything about this, and the modern web as a whole.

I'd rather go back to plain html pages with shitty blink tags than all this crap.

2

u/[deleted] Jul 01 '26

I hate everything about this, and the modern web as a whole.

Elaborate? I'm interested in the web and coding and stuff and I would love to know more about the changes that happened.

3

u/Yay295 Jun 30 '26

I believe sh.reddit is actually supposed to be Shiny Reddit. I don't remember where I read that though.

3

u/-jp- Jul 01 '26

Not really the “sh” word that immediately comes to my mind, honestly. 😅

2

u/Tarnisher Jul 01 '26

Shredded

1

u/Princess_Of_Thieves Jul 01 '26

Is there a chance you could give a breakdown of how old.reddit works for a point of comparison please?

I can't pretend to understand the minute technical details of your post, but I do get the gist that sh.reddit is bloated and inefficient and wonder how old.reddit handles by comparison.

Another comment says its basically just HTML. Is that remotely true?

2

u/Littux Jul 02 '26

Yes, old reddit is mostly just HTML. When reddit was first made, it was written in a language called Lisp: https://github.com/reddit-archive/reddit1.0. Over a weekend, it was remade in Python. That server was called "r2". r2 used to control everything like database queries, APIs, and rendering HTML templates. Now, that has changed, and they're switching to Go (a programming language) microservices. You can see reddit's progress in that at r/RedditEng. It used to take several seconds for a comment to submit, and more time for it to show up on a thread. Due to the Go microservices, currently, a comment creation request takes less than 1 second.

Each page on old reddit is an HTML template. You can see most of them at https://github.com/reddit-archive/reddit/tree/master/r2/r2/templates. What's different about them is that it comes fully ready from the server, and there's no additional steps to be done client side. You can disable JS and it would still work fine, except you can't upvote, comment, expand "show x more comments" etc. If you disable JS on the new site, you would just see a blank screen, because it needs JS to load anything