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

:information_source: Resumo Dumbcourse adiciona uma interface do Discourse leve e compatível com navegadores antigos em /dumb, projetada para navegação por D-pad, telas pequenas e WebViews do Android mais antigos, onde a interface padrão do Discourse pode ser muito pesada.
:hammer_and_wrench: Link do Repositório 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
:open_book: Guia de Instalação Como instalar plugins no Discourse


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

https://github.com/alltechdev/jtech-web

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


Recursos

  • Serve um SPA minimalista em /dumb no mesmo domínio do Discourse
  • ES5 / sem etapa de build; DOM/JS/CSS intencionalmente minimalistas para navegadores e WebViews mais antigos
  • Usa endpoints JSON do Discourse na mesma origem e cookies de sessão padrão do Discourse
  • Listas de tópicos: latest, new, top, unseen, hot, my, além de categorias
  • Visualização de categoria: /dumb/c/:slug/:id
  • Leitura de tópicos e publicação (responder/citar/reagir)
  • Busca e visualizações básicas de perfil
  • Navegação amigável ao D-pad com elementos de interface focáveis

Configuração

  1. Instalar o plugin

    • Adicione o repositório em containers/app.yml sob hooks -> after_code e, em seguida, reconstrua o contêiner.
  2. Ativá-lo

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

    • Defina o tema padrão e a visualização inicial padrão (veja Configurações abaixo).
  4. Verificar

    • Acesse: https://SEU_DOMINIO_DO_FORUM/dumb
    • Usuários anônimos devem cair em /dumb/login
    • Usuários conectados devem ver a visualização padrão configurada

Capturas de tela

Navegador antigo / interface padrão do Discourse

Interface do Dumbcourse

Em um tópico

Ações de postagem / seleção

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 vivas. Contribuições e revisão de código são bem-vindas.

Lacunas atuais conhecidas / questões em aberto:

  • Cadastro + CAPTCHA: a criação de conta depende do fluxo de cadastro padrão do Discourse, mas o comportamento do CAPTCHA pode variar conforme a configuração do site.
  • Revisão de segurança: a interface simplificada não deve contornar as permissões do Discourse, mas ainda não passou por uma revisão de segurança minuciosa. Por favor, relate quaisquer preocupações ou comportamentos suspeitos.
  • UX de moderação/administração: 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 conflitar com a navegação por foco em alguns dispositivos; melhorias estão planejadas.
  • Compartilhamento de links: /dumb fornece uma interface 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) pelas contribuições-chave e por ajudar a iniciar a ideia original.


Configurações

Nome Descrição
dumbcourse_enabled Alternador principal liga/desliga para o Dumbcourse.
dumbcourse_default_theme Tema padrão para /dumb (dark / light).
dumbcourse_default_view Visualização inicial padrão (latest / new / top / unseen / hot / my / categories).
dumbcourse_sidebar_link_enabled Adiciona um link na barra lateral para /dumb.

18 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

4 curtidas

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

Suporta Android 6+ e Chrome WebView 44+.

Exemplo (nosso apk de fóruns)

3 curtidas

Aí está.

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

1 curtida

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

4 curtidas

Enviado!

2 curtidas

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:

4 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:

4 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,…?

3 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.

2 curtidas

Em teste

1 curtida

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.

2 curtidas

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…

4 curtidas