TripleU introduces Dumbcourse, a lightweight, old-browser-friendly Discourse plugin providing a minimal SPA at /dumb. Designed for D-pad navigation, small screens, and older Android WebViews, it uses ES5 with no build step and integrates directly with Discourse JSON endpoints. Key features include topic lists, category views, posting, search, and real-time updates. The project includes a companion Android APK and credits @ars18 for initial contributions.
Discussion highlights include:
Naming and Configuration: Ed_S and elmuerte suggest renaming the path and plugin to avoid the term “dumb,” citing potential offensiveness to non-technical users. TripleU agrees to add a configurable path setting, which is implemented in post 7. merefield defends the name based on engineering history.
Features and UX: Ed_S asks about media handling; ars18 confirms inline rendering. Ed_S requests automatic redirection for users preferring the old UI, which ars18 considers. agemo asks about post pagination, and ばこん asks about custom CSS.
Updates: ars18 details updates including real-time topic refreshing, unread indicators, upload fixes, and bug fixes. TripleU adds LanguageTool integration for text correction.
Repository Structure: merefield questions why Dumbcourse was merged into the larger JTech Tools plugin. TripleU explains that JTech merged nine distinct modules (including Dumbcourse, Mini-mod, Disteleplus, etc.) into one bundle for easier management, though each has independent toggles. The standalone Dumbcourse repo remains available. The thread is closed by staff in post 39.
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.
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.