Discourse spams browser history

no offense to Mojeek peeps, but i have really come to hate the bloated Discourse forum software which relies on piles of obtrusive JS - any web software which requires JS to load the page is garbage IMO

most annoying is how some ding-dong developer decided it might be a great idea to spam the living daylights out of a persons browser history as they scroll a page, but such is the state of the “modern web” and “web developers” that couldn’t code their way out of a paper bag without relying on a plethora of 3rd party libraries, frameworks, fonts, CDNs, etc., etc., etc…

i’m still trying to figure out which script is responsible for this nonsense, but this seems to help reduce the history entries to a minimum - one can add this to uBO’s ‘My Filters’…

! community.mojeek.com
||community.mojeek.com/assets/plugins/lazy-yt-*.js$script,domain=community.mojeek.com,important
||community.mojeek.com/service-worker.js$script,domain=community.mojeek.com,important
||community.mojeek.com/assets/browser-update-*.js$script,domain=community.mojeek.com,important
||community.mojeek.com/extra-locales/*$script,domain=community.mojeek.com,important
||community.mojeek.com/assets/plugins/discourse-presence-*.js$script,domain=community.mojeek.com,important
||community.mojeek.com/assets/browser-detect-*.js$script,domain=community.mojeek.com,important

I had not noticed this. Every post has its own URL. And, if you pause while scrolling, Firefox records that URL.

I spent a while looking at event listeners, mutation observers, and developer tools. I found an example where you can poll window.location.pathname for changes. But there does not appear to be a way to capture a call stack or otherwise trace what changes window.location without capturing some random event and then stepping through all the JavaScript that fired. I pretty printed one of the minified scripts and found about 100 references to location. So I’m not sure how to find what code changes the location. Disabling JavaScript does disable the URL changes.

disabling JS leads to a blank page where nothing loads - are you experiencing something different?

ah! never mind - answered my my own question

if you allow the browser to process <noscript> tags then the forum displays - i usually disable that but i might need to re-think that - still Discourse is largely unusable with JS disabled (can’t post, log in, etc.)

1 Like

It’s fair enough and no offence taken, there weren’t a lot of options on the table which passed all the tests; if I remember right we basically ended up with Flarum, Discourse, and phpBB as the things which could do the job, with the former two being more suited than the latter. I do find a lot of BB instances out there though and it’s a perfectly-decent tool.

In terms of other companies/orgs/whatever doing the same thing it seems like it’s either Discourse or Discord. We didn’t really want to make this some kind of real-time chat space as that’s quite involved for all, and obviously it wouldn’t have been Discord for reasons outlined here: What if we create a discord server for Mojeek?

Other suggested tools there are great though :smile:

2 Likes

I’ve used a lot of different forums scripts since 1999 and the one I personally prefer is Simple Machines Forum. For some reason phpBB annoys me. But using a classic forum script kinda depends on your audience niche. Heh, if your forum topic is aimed at old folks like me or retro webmasters it can be a win, but the younger generations tend to be turned off by them. Add to it that classic forums are not optimal on smartphone screens and you are scaring away a big chunk of audience before you even start.

Discord and Mastodon type scripts don’t lend themselves well to long form posts and troubleshooting type of forum posts which is important for a community like Mojeek’s.

Discourse is a forum and it has that all important part of a forum script which is a search function built in so visitors can see if a topic has already been discussed and members with bad memories like me, can find old threads. :slight_smile: It does have a downside, which is a lot of JS, but yeah I think it’s the best of the options available for the intended purpose.

1 Like

It’s certainly possible to do a lot without JavaScript—Sourcehut is a particularly noteworthy example. I quite like GamingOnLinux’s no-js forum solution, although some functionality is broken. Discourse is certainly simple enough to be able to work without JavaScript, although most of it doesn’t. The experience would be worse without it.

But I do like Discourse overall. I’ve been using this forum software for years now. I’m not too bothered by this as someone who doesn’t have browsing history, URL autocomplete, or anything like that. I definitely used to be annoyed by this 5 years ago on my phone.

1 Like

@Brad - SMF has always been my choice as well - i haven’t used it for many years until recently when i set up a forum for a facebook group that was in danger of being banned - only then did i realize how unintuitive SMF is for people who grew up on facebook/twitter/etc.

@gnome - that sourcehut forum is a nice example of a simple, clean forum - i also like some things about Discourse, but the JS bloat is rather horrendous