Ir de uma estrutura Wordpress + Discourse para apenas um site Discourse?

Olá!

Antes de ler o que se segue, pode dar uma vista de olhos a Moved from PluXml and phpBB to Wordpress and Discourse, my all-new experience 🎉, mas não é obrigatório, farei um resumo.

O que temos agora.

O WP está ligado ao Discourse através do WP Discourse. O WP é também o Cliente DiscourseConnect, e as notícias do WP são publicadas automaticamente no Discourse numa categoria dedicada. É tudo o que o plugin faz por nós.

  • O site WP está focado principalmente nas notícias e páginas de informação estática.

  • O fórum Discourse é… Um fórum. Onde a comunidade se reúne, fala e organiza coisas por vezes.


A Questão

Perguntei-me: “Qual é realmente o propósito do site? O valor acrescentado é baixo, e muitas das funcionalidades do site poderiam ser feitas no Discourse. Então, para que se preocupar com duas plataformas?”

Note que estou apenas no início do meu raciocínio. Mas estou a começar a pensar que poderia ser uma boa ideia livrar-se do WordPress no nosso caso.

Então, quais são os benefícios do site? Tem um layout limpo e focado em notícias. Tem pequenas funcionalidades que parecem agradáveis, mas que talvez sejam inúteis. O iframe do Facebook da federação desportiva. Um botão de revista. A atividade recente do fórum. O calendário de eventos (uma solução personalizada). E muitas páginas estáticas de informação sobre coisas de monociclo.

O que disso não pode ser feito no Discourse? Praticamente nada.

A principal preocupação seria como tornar as notícias mais visíveis no nosso fórum. Não há novas informações todas as semanas, mas são importantes na comunidade francesa de monociclo e devem ser visíveis.

Discuti isto com duas pessoas envolvidas neste fórum/site. Eles acham que livrar-se do WP poderia ser uma boa ideia se não perdermos nada importante que o site nos dá.

As coisas técnicas.

  • O cabeçalho personalizado do Discourse permaneceria como está.

  • As notícias poderiam usar News Plugin 📰. Não como página principal, porque o conteúdo do fórum não estaria disponível até clicarmos em algum botão “fórum” (como Elektronauts) e queremos enfatizar a atividade da comunidade online também. Ainda não experimentei o plugin de notícias.

  • No entanto, gostaríamos de ter algumas notícias na página inicial do fórum. Lembro-me de ter visto um plugin ou um componente de tema que mostrava algumas publicações num banner no topo dos tópicos, mas posso estar enganado. Existe alguma solução existente para isto? O melhor uso para nós, penso eu, seria ter algo como as 3 últimas notícias com uma miniatura e um excerto no topo da página inicial, abaixo do cabeçalho, e que pudéssemos alternar este banner para que não nos incomodasse se já tivéssemos lido esses tópicos.

  • As páginas estáticas do site poderiam ser tópicos ou páginas publicadas.

  • O wiki poderia usar a funcionalidade de wiki do Discourse.

  • Não precisamos da newsletter (o resumo do Discourse substituiria isto), e o meu co-administrador não vê qualquer propósito real no fluxo de posts incorporados do Facebook da federação desportiva, bem como noutras coisas.

  • Temos uma categoria de eventos (solução personalizada), que está um pouco vazia nos dias de hoje, mas tem a sua utilidade, e gostaríamos de manter o tipo de categoria de eventos com funcionalidades específicas.

Vi e experimentei vários plugins de eventos/calendário no passado:

Alguns eram um pouco estranhos de entender ou configurar, e as minhas necessidades eram um pouco diferentes quando os experimentei, então devo tentar novamente.

Prós e contras de manter apenas o Discourse

Prós

  • Chega de potenciais problemas com o WP, as suas muitas extensões/temas/código personalizado desajeitado [1] e a compatibilidade WP/Discourse ao publicar posts.
  • Apenas uma plataforma a considerar e focar

  • Todos os dados serão organizados numa única base de dados, tornando as coisas mais simples se precisarmos de mover todas as nossas coisas um dia (mesmo o Discourse não é eterno… Ou é? :face_savoring_food:)

Contras

  • Um pouco de trabalho para “mover” algumas coisas do WP para o Discourse

  • Necessidade de encontrar soluções adequadas para algumas funcionalidades

  • Necessidade de configurar redirecionamentos 301

A sua opinião, pensamentos, conselhos

Penso que expliquei bem o que pretendo. Ficaria feliz em ouvir quaisquer sugestões, conselhos, etc., sobre esta possível transição de WP+D para D.


  1. você não quer olhar para isso; nem sequer tente pensar nisso, já estou envergonhado ↩︎

6 curtidas

Acho que isso provavelmente se resumiria à quantidade de tráfego que cada site gera e ao seu orçamento.

O Discourse pode fazer absolutamente tudo o que foi mencionado acima, mas se você estiver servindo uma tonelada de conteúdo para usuários anônimos no site WordPress, seu custo por visualização de página é significativamente menor.

Um VPS de US$ 5 configurado corretamente pode servir milhões de visualizações de página somente leitura sem esforço, é aí que o WordPress se destaca. O mesmo tráfego exigiria recursos consideravelmente maiores se fosse servido via Discourse. O WordPress ainda é uma ferramenta incrivelmente eficaz se você se importa com essas coisas. Configurado corretamente, também é muito excelente para curar o conteúdo que você serve aos motores de busca.

Tenho um cliente que atualmente paga à DO cerca de US$ 100 por mês pelos dois. Quando investigamos a migração de tudo para o Discourse, os custos operacionais teriam sido uma ordem de magnitude maior, é seguro dizer que esse trabalho não foi adiante.

3 curtidas

Grandes preocupações. Eu deveria ter mencionado informações sobre isso.

Este é um site muito específico. O tráfego é baixo por essência. Não custa nada em largura de banda, espaço em disco ou qualquer outra coisa. Ambos os sites funcionam perfeitamente no meu VPS junto com outras coisas da web e estou fazendo tudo isso como trabalho voluntário. :slight_smile:

O aspecto de SEO seria interessante de estudar. Eu não pensei sobre isso. :thinking:

2 curtidas

atualmente usa um backend CMS headless Strapi + frontend Next.js hospedado no Vercel.

Ele também tem um fórum Discourse anexado a ele:
https://forum.monerochan.news/
Também estou pensando em abandonar completamente o backend Strapi e usar apenas o Discourse como um CMS headless.

então este problema poderia ser resolvido hospedando a “landing page” / páginas mais visitadas de forma headless em algo como o Vercel.
Mesmo em sua forma atual, o Discourse quase poderia funcionar como um CMS headless: podemos simplesmente anexar .json à URL do tópico e obter os dados brutos / markdown da postagem.

O único problema seriam os links permanentes, listas de tópicos curadas e um sistema de publicação + permissão para autores e editores. Parte disso poderia ser feito com grupos e categorias, mas seria bom se houvesse apenas uma categoria de artigo / artigo de pré-visualização.

Talvez devêssemos criar um plugin para isso :thinking:

@Canapin obrigado pelo tópico! Ótima leitura :grinning: :+1:

4 curtidas

Isso assume que é apenas a página inicial que está servindo conteúdo semi-estático. No meu exemplo acima, o site tem mais de 10 mil posts e páginas.

1 curtida
export const getStaticProps: GetStaticProps = async ({params}) => {
  // Executa chamadas de API em paralelo
  const id = params?.id

  if (!id) {
    return {
      redirect: {
        destination: '/',
        permanent: false,
        // statusCode: 301
      },
    }
  }
  const qs = require('qs');
  const query = qs.stringify({
    populate: '*',
  }, {
    encodeValuesOnly: true, // formata a URL
  });
  const article = await fetchAPI("/api/articles/" + params.id + "?" + query)
  if (!article.data) {
    return {
      redirect: {
        destination: '/',
        permanent: false,
        // statusCode: 301
      },
    }
  }

  return {
    props: { article },
    revalidate: 1,
  }
}

Eu uso este código no frontend Next.js para buscar os artigos. Assim, ele armazenará o artigo em cache por 1 segundo e depois o revalidará. Portanto, a instância do Discourse receberia apenas 1 solicitação por segundo se usássemos este método.

É imaginável fazer isso não apenas para uma categoria especial que é gerenciada por um grupo especial de usuários autores e editores.
Poderia ser feito para todo o conteúdo. O backend Strapi do monerochan.news também fornece markdown (assim como o Discourse). Portanto, poderíamos usar exatamente o mesmo código para buscar os dados da postagem (apenas anexar .json à URL normal do tópico) e exibi-la.
Obviamente, os recursos interativos do Discourse estariam faltando neste caso. Mas poderíamos simplesmente colocar um botão que diz algo como: comentar! e isso redirecionará para a página do Discourse. As páginas Next.js também carregam super rápido e são amigáveis para SEO.

então, acho que existem duas situações: 1. Um site de notícias com uma categoria especial que é curada por autores e editores. 2. Um fórum Discourse normal com conteúdo gerado pelo usuário.
Também poderia haver uma mistura dos dois casos.

Em ambos os casos, construir um frontend headless poderia trazer muitos benefícios.

1 curtida

Se você tiver problemas para fazer qualquer uma das opções acima usando o Plugin de Notícias, o Plugin de Landing Pages ou o Plugin de Eventos, pode sempre me avisar. Terei prazer em ajudá-lo.

Em relação ao plugin de eventos, você deve entrar em contato porque estamos atualmente procurando mais casos de uso para implementar em nossa v2, que será lançada em breve. Preencha este assistente:

2 curtidas

Essa é uma ideia interessante, se eu entendi bem. Basicamente, você manteria seu fórum como está e, adicionalmente, teria um site caseiro em que o conteúdo viria dos dados do fórum através da API do Discourse. É isso mesmo?

@Stephen, o WordPress tem bons pontos, de fato.

O WP carrega muito rápido, especialmente se você usar um sistema de cache, enquanto o Discourse precisa carregar todo o aplicativo, o que sempre leva um tempo quando você o abre.

Meu site https://monocycle.info carrega rápido e a navegação de página para página é quase instantânea.

A ideia de remover o WordPress é por vários motivos que listei, mas esqueci de adicionar que gostaria de tornar o fórum mais visível e óbvio. Quero que as pessoas vejam que há uma comunidade ativa assim que acessam o site.
Registrar e postar no Discourse é uma experiência agradável e indolor, tanto no desktop quanto no mobile.

Eu poderia manter o WP apenas para a página inicial (ou não muito mais), e mover a maior parte do conteúdo para os tópicos/páginas publicadas do Discourse.

Legal! Preciso dar outra olhada no seu plugin antes de preencher seu assistente, para saber exatamente quais recursos ele oferece e como ele funciona no geral. :+1:

1 curtida

E quanto a trazer mais conteúdo da comunidade para o site do WordPress? Aumente a visibilidade dessa forma.

Alguma ideia mais específica? Quando acessamos a página inicial, temos um link “Discussões” e uma lista dos tópicos criados mais recentemente.

Sim! É exatamente isso que eu quero dizer! Também não há muito o que fazer no lado do Discourse! Se você adicionar .json a qualquer link de tópico, você já terá a API!
Dê uma olhada neste tópico em que estamos conversando agora, por exemplo:
https://meta.discourse.org/t/go-from-a-wordpress-discourse-structure-to-a-discourse-site-only/247273/8.json?include_raw=true

Observe o .json e o include_raw=true no final. É assim que você pode obter até mesmo o markdown da postagem, além do HTML “cozido”.

O Strapi também usa um editor de markdown, então posso usar literalmente o mesmo código de antes.

2 curtidas

Isso me fez literalmente pular da cadeira. Pelo que entendi usando: .json e include_raw=true com uma espécie de automação (n8n) poderíamos tecnicamente redirecionar todo o discourse para um Hugo, enviando a meta tag e o markdown diretamente para um repositório git??

1 curtida