Para um fórum com 100…500 tags, isso não é nada em termos de tamanho de dados para carregar uma vez e manter na memória enquanto o Discourse está aberto.
Atualmente, toda vez que escolho uma tag, tenho que esperar enquanto ele faz uma requisição http para o servidor para pesquisar entre todas as tags usando os caracteres que inseri até agora. É realmente necessário? Isso piora tanto a UX (experiência do usuário), é irritante, e poderia ser instantâneo se você pré-carregasse todas as tags e as mantivesse disponíveis, e construísse alguma árvore de busca binária no navegador, não?
De qualquer forma, essa é minha sugestão para fazer isso.
O mesmo com as categorias. Sério, você só tem tipo 20-50 categorias na maioria das vezes, mas continua fazendo uma requisição http e mostrando uma linha de progresso azul que faz parecer pesado e lento, enquanto poderia ser instantâneo.
Sugiro recorrer a uma requisição http apenas quando houver muitos itens para pesquisar. Tipo, pelo menos mil ou mais? Caso contrário, tudo poderia ser pré-carregado para o usuário atual, levando em consideração suas permissões, etc.