Dumbcourse adds a lightweight, old-browser friendly Discourse UI under /dumb, designed for D-pad navigation, small screens, and older Android WebViews where the standard Discourse UI can be too heavy.
This project was made possible with the work of @ars18:
The original project uses a Cloudflare worker proxy to serve the forums, and the dumbcourse plugin fully integrates it into your discourse instance. Dumbcourse does not use a proxy but serves it directly.
Features
Serves a minimal SPA at /dumb on the same Discourse domain
ES5 / no build step; intentionally minimal DOM/JS/CSS for older browsers and WebViews
Uses same-origin Discourse JSON endpoints and standard Discourse session cookies
Topic lists: latest, new, top, unseen, hot, my, plus categories
Category view: /dumb/c/:slug/:id
Topic reading and posting (reply/quote/reactions)
Search and basic profile views
D-pad-friendly navigation with focusable UI elements
Configuration
Install the plugin
Add the repo to containers/app.yml under hooks -> after_code, then rebuild the container.
Enable it
Go to Admin → Plugins → Dumbcourse
Enable dumbcourse_enabled
Choose defaults
Set the default theme and default landing view (see Settings below).
Verify
Visit: https://YOUR_FORUM_DOMAIN/dumb
Anonymous users should land on /dumb/login
Logged-in users should see the configured default view
This project is currently beta (initial implementation was done quickly), so expect rough edges. Contributions and code review are welcome.
Current known gaps / open questions:
Signup + CAPTCHA: account creation relies on Discourse’s standard signup flow, but CAPTCHA behavior may vary by site configuration.
Security review: the simplified UI should not bypass Discourse permissions, but it has not yet had a thorough security review. Please report any concerns or suspicious behavior.
Moderation/admin UX: moderation and admin tooling are minimal today; expanding this safely is on the roadmap.
Touch + D-pad interactions: touch input can conflict with focus navigation on some devices; improvements are planned.
Link sharing:/dumb provides an alternate UI, which raises questions about sharing canonical links between “dumb” and standard users. A consistent approach is still being refined.
@TripleU There have been a number of requests here on Meta that have asked for an option to disable infinite scroll in favor of pagination. Does this plugin accomplish that?
This is great fun, and I love the name, because there is engineering history around it and don’t find it insulting at all - but the provision of the route setting is a fab addition.
Splendid! So this seems like a good way to make our forums available on old browsers (old computers, old phones, old tables) as noted in Nate’s post above.
Is there a way for a user to set a preference so they automatically enrol in this presentation? (Preferably called by the chosen name, not necessarily “dumb”.)
That’s fine, but if you think about it, not important. If one wanted to roll this out in an old people’s home, or an adult training centre, or any number of contexts where people are disadvantaged or not technically literate or just not young, or not native speakers of English, then having it labelled ‘dumb’ is going to be really bad optics. It’s not your being insulted or not insulted that matters, nor is it the site admin’s concern, it’s the would-be end-user.