Dumbcourse – Interface amigável para navegadores antigos em /dumb (D-pad + telas pequenas)

| :information_source: | Resumo | O Dumbcourse adiciona uma interface de usuário (UI) Discourse leve e compatível com navegadores antigos em /dumb, projetada para navegação por D-pad, telas pequenas e WebViews Android antigas onde a UI padrão do Discourse pode ser muito pesada. |
| :hammer_and_wrench: | Link do Repositório | https://github.com/TripleU613/dumbcourse |
| :open_book: | Guia de Instalação | Como instalar plugins no Discourse |



Este projeto foi possível graças ao trabalho de @ars18:

O projeto original usa um proxy de worker do Cloudflare para servir os fóruns, e o plugin dumbcourse o integra totalmente à sua instância do Discourse.


Funcionalidades

  • Serve um SPA mínimo em /dumb no mesmo domínio do Discourse
  • ES5 / sem etapa de compilação; DOM/JS/CSS intencionalmente mínimos para navegadores e WebViews mais antigos
  • Usa endpoints JSON do Discourse de mesma origem e cookies de sessão padrão do Discourse
  • Listas de tópicos: latest, new, top, unseen, hot, my, mais categorias
  • Visualização de categoria: /dumb/c/:slug/:id
  • Leitura e postagem de tópicos (resposta/citação/reações)
  • Pesquisa e visualizações básicas de perfil
  • Navegação amigável ao D-pad com elementos de UI focáveis

Configuração

  1. Instale o plugin

    • Adicione o repositório em containers/app.yml sob hooks -> after_code e reconstrua o contêiner.
  2. Ative-o

    • Vá para Admin → Plugins → Dumbcourse
    • Ative dumbcourse_enabled
  3. Escolha os padrões

    • Defina o tema padrão e a visualização de destino padrão (veja as Configurações abaixo).
  4. Verifique

    • Visite: https://SEU_DOMINIO_DO_FORUM/dumb
    • Usuários anônimos devem ser direcionados para /dumb/login
    • Usuários logados devem ver a visualização padrão configurada

Capturas de Tela

Navegador antigo / UI padrão do Discourse

UI do Dumbcourse

Em um tópico

Ações/seleção de postagem

Menu básico

Configurações do plugin


Status / Limitações Conhecidas

Este projeto está atualmente em beta (a implementação inicial foi feita rapidamente), então espere arestas. Contribuições e revisão de código são bem-vindas.

Lacunas conhecidas atuais / perguntas em aberto:

  • Cadastro + CAPTCHA: a criação de contas depende do fluxo de cadastro padrão do Discourse, mas o comportamento do CAPTCHA pode variar dependendo da configuração do site.
  • Revisão de segurança: a UI simplificada não deve contornar as permissões do Discourse, mas ainda não passou por uma revisão de segurança completa. Por favor, relate quaisquer preocupações ou comportamentos suspeitos.
  • UX de moderação/admin: as ferramentas de moderação e administração são mínimas hoje; expandir isso com segurança está no roteiro.
  • Interações de toque + D-pad: a entrada por toque pode entrar em conflito com a navegação por foco em alguns dispositivos; melhorias estão planejadas.
  • Compartilhamento de links: /dumb fornece uma UI alternativa, o que levanta questões sobre o compartilhamento de links canônicos entre usuários “dumb” e padrão. Uma abordagem consistente ainda está sendo refinada.

Créditos

Agradecimentos especiais a @ars18 (GitHub: https://github.com/alltechdev) por contribuições importantes e por ajudar a dar início à ideia original.


Configurações

Nome Descrição
dumbcourse_enabled Alternância mestre de ligar/desligar para o Dumbcourse.
dumbcourse_default_theme Tema padrão para /dumb (dark / light).
dumbcourse_default_view Visualização de destino padrão (latest / new / top / unseen / hot / my / categories).
dumbcourse_sidebar_link_enabled Adiciona um link na barra lateral para /dumb.
13 curtidas

Esta parece ser uma excelente ideia!

No entanto, não gosto que o nome apareça nos URLs - pode ser configurável, para que seja, por exemplo, /simple/ em vez de /dumb/?

(Na verdade, não estou muito satisfeito com o nome, mas se puder ser configurado, isso ajuda. É um termo pejorativo e bastante idiomático.)

3 curtidas

Uau, isso parece muito bom! Parece que há uma solução para as frustrações de alguns usuários devido à falta de suporte a navegadores antigos em Dropping iOS 15 & other old browsers in July 2025.

No mundo dos “dumbphones” isso é aceito, mas sim, adicionarei uma configuração para isso.

2 curtidas

Recentemente implementei a adição de configurações de admin/mod. A Fila de Revisão ainda precisa de alguns ajustes.

Capturas de tela

2 curtidas

Esqueci de mencionar, aqui está o APK complementar para Android.

Suporta Android 6+ e Chrome WebView 44+.

Exemplo (nosso apk de fóruns)

1 curtida

Aí está.

3 curtidas

Trabalho rápido… muito obrigado!

@TripleU Houve várias solicitações aqui no Meta que pediram uma opção para desativar a rolagem infinita em favor da paginação. Este plugin realiza isso?

O Dumbcourse não tem essa opção (ainda, se as pessoas realmente a quiserem……).

1 curtida

Enviado!

Eu poderia sugerir mudar o caminho (talvez até o nome do plugin) para algo menos ofensivo. Como simples, básico.

Porque esta não é uma funcionalidade burra, é na verdade bastante inteligente ter uma interface de baixa fidelidade.

1 curtida

Você está um pouco atrasado :grin:

3 curtidas

Isto é muito divertido, e eu adoro o nome, porque há história de engenharia em torno dele e não o acho insultuoso de forma alguma - mas a provisão da definição de rota é uma adição fabulosa.

Enfim, falando em burro, eu te proponho:

2 curtidas

Ah, isso levanta uma questão: qual é o tratamento de imagens e mídias incorporadas? Elas são transformadas em links, suprimidas ou renderizadas,…?

2 curtidas

Imagens, vídeos, áudio e iframes são todos renderizados em linha no corpo da postagem com suas URLs reescritas para a base de ativos correta.

1 curtida

Em teste

Excelente! Então, esta parece ser uma boa maneira de disponibilizar nossos fóruns em navegadores antigos (computadores antigos, telefones antigos, tablets antigos), conforme observado na postagem de Nate acima.

Existe uma maneira de um usuário definir uma preferência para que ele se inscreva automaticamente nesta apresentação? (De preferência chamada pelo nome escolhido, não necessariamente “burro”.)

Tudo bem, mas se você pensar bem, não é importante. Se alguém quisesse implementar isso em um lar de idosos, ou em um centro de treinamento para adultos, ou em qualquer um dos vários contextos onde as pessoas são desfavorecidas ou não têm letramento técnico ou simplesmente não são jovens, ou não são falantes nativos de inglês, então ter isso rotulado como ‘burro’ terá uma imagem muito ruim. Não é se você se sente ofendido ou não que importa, nem é preocupação do administrador do site, é o potencial usuário final.

Estou confuso. Eles podem simplesmente visitar a URL do caminho escolhido. Você quer dizer outra coisa?

Ed, por favor, não me tome por tolo, é claro que eu entendo isso. Vou parar agora porque isso é um ninho de vespas irritante…

3 curtidas