Eu gosto de quem faz um trabalho para apresentar algo que gere valor para as pessoas e tenho que parabenizar quem faz isso. Para ser mais útil vou comentar algo pessoal, sei que muitas pessoas discordam e eu mesmo posso eventualmente fazer diferente quando for necessário.
Lembre-se que sempre pode existir exceções e entender quando uma cabe precisa experiência e não ficar preso a "boas práticas", precisa entender bem com profundidade todo o processo e querer de fato fazer engenharia, e faz parte da engenharia saber quando a solução menos engenhosa é aplicável.
Existem essencialmente dois tipos de solução web que existem e a postagem original já fala delas logo de cara. Websites e Web applications.
Eu sou um questionados das Web apps, quase sempre que se opta por isso é preguiça e seguir a modinha antes de tudo. Aplicações funcionam melhor nativamente. Mas eu entendo porque acontece isso e eu mesmo posso ou ser preguiçoso ou fazer o que alguns fazem, ser político, não engenheiro por completo.
Mas vou considerar aqui que faz sentido fazer uma aplicação web para efeitos de comparação.
Para websites é muito simples, você quer um SEO bom, e não, o Google não indexa bem seus documentos renderizados no cliente, você deve renderizar no cliente. Mais ainda, quase sempre a maioria das páginas deveriam ser renderizadas de forma estática e entregues compactadas, até para ajudar o SEO, além da experiência do usuário. Tem exceções, tem páginas de busca e filtro e outras necessidades específica que provavelmente devem ser renderizadas no servidor sob demanda. Em alguns casos meio que tanto faz o momento da renderização, só o local importa.
Conteúdo mudar pouco muitas vezes é até mesmo várias vezes ao dia, o que quase tudo encaixa. Especialmente essa é uma forma melhor se o acesso simples ao conteúdo ocorre de forma muito pesada. Alterar muito é muitas vezes por minuto.
Para aplicações costuma ser o contrário, primeiro porque não precisa de SEO, segundo n~]ao costuma ter ganhos prerenderizar e finalmente porque diminui a carga no servidor, embora na maioria das vezes isso não é um grande problema, então renderizar no servidor não é um problema, a não ser que se meça que a experiência do usuário esteja boa ou não, e não tenha uma carga muito grande.
Quanto mais essa é opção, mais deveria ser uma aplicação desktop, mesmo que quase todo o mercado ache o contrário, até por questões comerciais/financeiras (fazer um SaaS para faturar e lucrar mais - ainda que dê para fazer SaaS não web). A escolha por web geralmente é formação deficiente.
Existem soluções híbridas, que parte é um website e parte é uma web app, o que não muda o critério, mas cada parte da solução tem uma estratégia diferente. O exemplo mais óbvio é o e-commerce que é website até que você vá finalizar a compra e interagir com seu perfil de comprador, ou o backoffice do vendedor seja usado.
Websites deveriam evitar JavaScript, e o que tem seja só uma melhoria, a página deveria funcionar sem, deveria usar HTML e principalmente CSS muito moderno, especialmente deveria evitar código muito complexos, especialmente de JS. Nem tente usar outra linguagem de programação, mesmo que gere JS depois.
Para web apps, já que a decisão provavelmente está só seguindo a modinha, seja por decisão do engenheiro ou "engenheiro", seja por decisão do product owner ou equivalente, quase sempre vale qualquer coisa, embora uma SPA costume fazer sentido. Mas note que o S não precisa ser realmente Single, pode ter algumas páginas, quando muda bastante o contexto.
Orçamento limitado para algo de grande tráfego tem algum problema.
Um adendo importante é sobre soluções que alguém usará uma vez ou raramente: por alguma razão, até bizarra, as pessoas tendem a fazer um mobile app para resolver essa questão, o que é um absurdo, fazer uma pessoa baixar um aplicativo, quase sempre enorme, porque apps para iOS e Android costuma ser muito grandes, ao contrário do que acontece no desktop, embora muitas pessoas nem saibam disso porque aprenderam só a modinha, e gere um passivo para o usuário. De forma muito mais forte do que optar por uma aplicação (não website) desktop, no mobile a aplicação quase sempre é a escolha errada, e quase todo mundo comete esse erro. Por favor parem de me obrigar instalar um app para fazer um cadastro ou consulta ou algo pontual e nunca mais acessar aquilo. Eu não não vou instalar a porcaria do seu app!
Nada aqui vai contra a postagem original. Lembre-se que React é uma das soluções, existem várias outras que podem ser melhores por diversas razões.
Reforço: tudo tem exceção e eu estou colocando algo que pode não encaixar bem com o que o mercado demanda, mesmo sendo uma demanda errada.
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).