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

Obrigado! Achei que ficaria melhor por um link direto do que dar exemplos, aí ele já pode ver na prática como é :-)

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