Tentando simplificar ao máximo, ja que disse não ter muito conhecimento com esse tipo de projeto...
Salva em um banco de dados (Postgres), em uma tabela content
. Tanto a publicação quanto o comentario, em registros separados.
Podemos então chamar os dois de content
.
Quando você faz um post novo voce cria um content
e cada content
tem um id
.
Quando voce comenta em alguma postagem, voce também está criando um content
, porém esse tem uma informação a mais, o parent_id
, que se refere a outro content
.
Então na pagina inicial é listada todos os content
que não tem um parent_id
, ja que contents sem um "pai" são independentes, então a lógica considera que é conteudo principal de uma árvore de conteúdos. E pra trazer o resto da árvore, dentro da pagina do post é listado todos os content
em que o parent_id
seja igual ao id
da postagem que voce entrou.
O JSON
é gerado apartir do resultado dessa consulta do banco.
Curiosidade:
Voce pode acessar o JSON
colocando /api/v1/contents/
na frente da url do site.
Ex.
Seu post: https://www.tabnews.com.br/api/v1/contents/gr4y/como-o-tabnews-armazena-as-postagens
Os comentários do seu post: https://www.tabnews.com.br/api/v1/contents/gr4y/como-o-tabnews-armazena-as-postagens/children