como funciona esse efeito de cascata dos comentários
O que exatamente vc quer saber? A resposta mais rápida - e preguiçosa - que posso dar é: veja no código fonte :-)
Se for só para imaginar, nem precisaria consultar o código, pois não tem muito o que reinventar nesse caso. Mas enfim, cada post pode ter um "pai" (por exemplo, o comentário 1.1.1 é uma resposta ao comentário 1.1, então o primeiro é "filho" do "segundo"). Se não tiver um pai, então é o que vc chamou de "tópico".
Depois, uma forma de trazer o post e todos os seus descendentes é usando uma query recursiva. Com isso temos uma árvore contendo toda a hierarquia.
Por fim, basta estilizar isso na página da maneira que achar melhor. Uma forma bem comum é colocar as respostas em um nível de alinhamento diferente, como é feito aqui:
+----------------------------+
| tópico |
+----------------------------+
| | comentário 1 |
| | | comentário 1.1 |
| | | | comentário 1.1.1 |
| | | comentário 1.2 |
| | comentário 2 |
| | | comentário 2.1 |
...
E aí também tem várias formas de fazer (exemplo).
Estou tentando criar esse efeito em um projeto. Só que no caso dele, ele usa mongodb, e não sei como fazer essa query recursiva
em mongoose.
kht, com uma resposta apontando exatamente pro código da plataforma e com tudo explicadinho, vc não merece só Palmas, mas o Tocantins inteiro!
Numa humilde tentativa de colaborar com a resposta, aqui vai uma explicação do próprio Deschamps de como isso é implementado: https://www.youtube.com/shorts/DT-C5SCwqEg
Não sei como a base deve tá organizada pra eu conseguir fazer isso, e nem quais campos eu devo incluir, nem a lógica por trás