# Dumbcourse – Old-browser friendly UI at /dumb (D-pad + small screens)

**URL:** https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104
**Category:** Plugin
**Created:** [4 februari 2026 om 02:39 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104 "2026-02-04T02:39:08Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![TripleU](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tripleu/32/465842_2.png) [@TripleU](https://meta.discourse.org/u/TripleU)
#### Post date: [4 februari 2026 om 02:39 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/1 "2026-02-04T02:39:09Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **Summary** | 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. |
| 🛠 | **Repository Link** | [GitHub - JTech-Forums/JtechTools: Jtech — combined Discourse plugin bundle: dislike, another-smtp, mini-mod, mod-categories, dumbcourse. One plugin.rb, six admin tabs, no namespace collisions. · GitHub](https://github.com/JTech-Forums/JtechTools) |
| 📖 | **Install Guide** | [How to install plugins in Discourse](https://meta.discourse.org/t/install-plugins-on-a-self-hosted-site/19157) |

  

* * *

This project was made possible with the work of @ars18:

[https://github.com/alltechdev/jtech-web](https://github.com/alltechdev/jtech-web)

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

1. **Install the plugin**

2. **Enable it**

3. **Choose defaults**

4. **Verify**

* * *

## Screenshots

> **Old browser / standard Discourse UI**
>
> ![Screenshot_20260203_211407](https://global.discourse-cdn.com/meta/original/4X/4/5/6/4565011d1adbcb96075b2685be73e96aaca6623b.png)

> **Dumbcourse UI**
>
> ![Screenshot_20260203_211552](https://global.discourse-cdn.com/meta/original/4X/9/a/9/9a991d8e10672e3358bc181f756ef71067fa178f.png)

> **In a thread**
>
> ![Screenshot_20260203_211625](https://global.discourse-cdn.com/meta/original/4X/c/3/0/c30c3afe401a597b59fffaf029c1343167305438.png)

> **Post actions / selection**
>
> ![Screenshot_20260203_211643](https://global.discourse-cdn.com/meta/original/4X/2/b/6/2b665da287d23ac05f9c44e16977ec64fa7f5c0a.png)

> **Basic menu**
>
> ![Screenshot_20260203_211744](https://global.discourse-cdn.com/meta/original/4X/4/6/6/466b7b1d567b9400ce37b9761a32863edf310964.png)

> **Plugin settings**
>
> ![Screenshot from 2026-02-03 21-18-38](https://global.discourse-cdn.com/meta/original/4X/6/6/c/66c9c1d3575198626f764ff17184d5783bc58b52.png)

* * *

### Status / Known limitations

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.

### Credits

Special thanks to @ars18 (GitHub: [https://github.com/alltechdev](https://github.com/alltechdev)) for key contributions and for helping kick off the original idea.

* * *

### Settings

| Name | Description |
| --- | --- |
| `dumbcourse_enabled` | Master on/off toggle for Dumbcourse. |
| `dumbcourse_default_theme` | Default theme for `/dumb` (`dark` / `light`). |
| `dumbcourse_default_view` | Default landing view (`latest` / `new` / `top` / `unseen` / `hot` / `my` / `categories`). |
| `dumbcourse_sidebar_link_enabled` | Adds a sidebar link to `/dumb`. |

* * *

---

<div class="post-metadata">

### Author: ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)
#### Post date: [4 februari 2026 om 08:18 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/2 "2026-02-04T08:18:23Z")

</div>

This sounds like an excellent idea!

I don’t like the surfacing of the name in the URLs though - can it be configurable, so for example /simple/ instead of /dumb/?

(In truth I’m not that happy with the name, but if it can be configured that helps. It’s a slur, and it’s rather idiomatic.)

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [4 februari 2026 om 08:32 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/3 "2026-02-04T08:32:03Z")

</div>

Wow, this looks really good! Looks like there’s a solution to the frustrations of some users due to old browsers being unsupported in [Dropping iOS 15 & other old browsers in July 2025](https://meta.discourse.org/t/dropping-ios-15-other-old-browsers-in-july-2025/358131).

---

<div class="post-metadata">

### Author: ![TripleU](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tripleu/32/465842_2.png) [@TripleU](https://meta.discourse.org/u/TripleU)
#### Post date: [4 februari 2026 om 17:13 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/4 "2026-02-04T17:13:13Z")

</div>

In the dumbphone world it’s accepted, but yeah will add a setting for that.

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [4 februari 2026 om 17:45 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/5 "2026-02-04T17:45:42Z")

</div>

I recently implemented admin/mod settings addition. Review Queue still needs some work.

> **Screenshots**
>
> ![image](https://global.discourse-cdn.com/meta/original/4X/1/3/5/135d8fb286007c2a3e906dd29fa4abfeaffc3b03.jpeg)

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [4 februari 2026 om 18:21 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/6 "2026-02-04T18:21:20Z")

</div>

Forgot to mention, here is the companion Android APK.

Supports Android 6+ and Chrome WebView 44+.

[https://github.com/alltechdev/dumbcourse-apk](https://github.com/alltechdev/dumbcourse-apk)

**Sample (our forums apk)**

> **[Release v2.2-beta: Fix JSON parsing bug causing wrong notification content ·...](https://github.com/alltechdev/jtech-dpad-apk/releases/tag/v2.2-beta)**
>
> The string-based extractJsonField() method searched for "message" as a
> substring and found it first in "event":"message" (as a value, not key),
> causing it to extract the topic name instead of actua...

---

<div class="post-metadata">

### Author: ![TripleU](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tripleu/32/465842_2.png) [@TripleU](https://meta.discourse.org/u/TripleU)
#### Post date: [4 februari 2026 om 18:56 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/7 "2026-02-04T18:56:18Z")

</div>

> [@Ed\_S](#):
>
> (In truth I’m not that happy with the name, but if it can be configured that helps. It’s a slur, and it’s rather idiomatic.)

 ![Screenshot from 2026-02-04 13-55-52](https://global.discourse-cdn.com/meta/original/4X/e/c/d/ecd6261b0975a36c06e4f8c423a1b250e6a0c24a.png)

There ya go.

---

<div class="post-metadata">

### Author: ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)
#### Post date: [4 februari 2026 om 21:22 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/8 "2026-02-04T21:22:43Z")

</div>

Quick work… many thanks!

---

<div class="post-metadata">

### Author: ![mcmcclur](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcmcclur/32/115456_2.png) [@mcmcclur](https://meta.discourse.org/u/mcmcclur)
#### Post date: [4 februari 2026 om 21:55 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/9 "2026-02-04T21:55:02Z")

</div>

@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?

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [5 februari 2026 om 00:05 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/10 "2026-02-05T00:05:26Z")

</div>

Dumbcourse does not have that option (yet, if people really want it….).

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [5 februari 2026 om 04:35 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/11 "2026-02-05T04:35:13Z")

</div>

Pushed!

 ![Screenshot_20260204-233425_org.chromium.webapk.a04eaf838e5efa142_v2](https://global.discourse-cdn.com/meta/original/4X/9/6/2/962f91ef39326045a27a1d3277edd0b2b9d3ac2b.png)

 ![Screenshot_20260204-233322_com.android.cts.jtech](https://global.discourse-cdn.com/meta/original/4X/0/0/0/000db2f78dbc6025a5df98780289c1df2c7b563f.png)

---

<div class="post-metadata">

### Author: ![elmuerte](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elmuerte/32/456517_2.png) [@elmuerte](https://meta.discourse.org/u/elmuerte)
#### Post date: [5 februari 2026 om 06:35 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/12 "2026-02-05T06:35:41Z")

</div>

Might I suggest to change the path (maybe even the plugin name) to something less insulting. Like _simple_, _basic_.

Because this isn’t a dumb feature, it’s actually quite smart to a have a low fidelity interface

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [5 februari 2026 om 07:48 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/13 "2026-02-05T07:48:23Z")

</div>

You are a bit late 😁

> [@Dumbcourse – Old-browser friendly UI at /dumb (D-pad + small screens)](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/7):
>
> There ya go.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [5 februari 2026 om 13:55 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/14 "2026-02-05T13:55:16Z")

</div>

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.

Anyway, talking of dumb, I’ll raise you:

> [@\> termcourse: read & post on Discourse instances from the terminal](https://meta.discourse.org/t/termcourse-read-n-post-on-discourse-instances-from-the-terminal/395285):
>
> This is a Terminal App (TUI), just a bit of fun … and a bit experimental at this stage! information_sourceSummary A terminal UI for browsing and posting to Discourse forums with topic lists, full topic views, replies, likes, search, and a built‑in composer.hammer_and_wrenchRepository Link [GitHub - merefield/termcourse: A terminal based client to access Discourse instances, supporting API keys, username/password (and with MFA token)](https://github.com/merefield/termcourse)open_bookInstall Guide README.md in th…

---

<div class="post-metadata">

### Author: ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)
#### Post date: [5 februari 2026 om 16:04 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/15 "2026-02-05T16:04:05Z")

</div>

Oh, that raises a question: what’s the treatment of images and embedded media? Are they linkified, or suppressed, or rendered,… ?

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [5 februari 2026 om 17:22 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/16 "2026-02-05T17:22:49Z")

</div>

Images, videos, audio, and iframes are all rendered inline in the post body with their URLs rewritten to the correct asset base.

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [5 februari 2026 om 17:41 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/17 "2026-02-05T17:41:29Z")

</div>

In testing

 ![Screenshot_20260205-131008_com.android.cts.jtech](https://global.discourse-cdn.com/meta/original/4X/2/5/5/2553da8548d0570d072181527e5a21a30c845b71.png)

---

<div class="post-metadata">

### Author: ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)
#### Post date: [5 februari 2026 om 17:44 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/18 "2026-02-05T17:44:59Z")

</div>

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”.)

> [@merefield](#):
>
> I love the name … and don’t find it insulting at all

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.

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [5 februari 2026 om 17:48 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/19 "2026-02-05T17:48:45Z")

</div>

> [@Ed\_S](#):
>
> Is there a way for a user to set a preference so they automatically enrol in this presentation?

I’m confused. They can just visit the chosen path url. Do you mean something else?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [5 februari 2026 om 18:00 UTC](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104/20 "2026-02-05T18:00:48Z")

</div>

Ed, please don’t take me for a fool, of course I understand that. I’ll stop now because this is an irritating can of worms …

[Next page](https://meta.discourse.org/t/dumbcourse-old-browser-friendly-ui-at-dumb-d-pad-small-screens/395104.md?page=2)
