Opa parabéns em seu lançamento, sei que deve estar muito ansioso, continue assim.
Só queria dar umas dicas, isso mais de segurança, não estou aqui para criticar, já passei por isso e sei como é difícil.
Não sei se você está usando a .env, mas na conexão da sua DB da pra ver a uri inteiro lá, e isso não é nada bom kkk, caso o banco esteja configurado para qlq IP, qualquer pessoa pode ir lá e apagar tudo, então dá uma mudança aí, aproveitando para falar do IP , certifique que no dashboard do provider , geralmente tem uma aba de adicionar somente os ips autorizados , mas mesmo assim coloca tudo na .env e adiciona ela no gitignore.
Seguindo isso do banco de dados , aconselho fortemente na criação do usuário que antes de criá-lo você faça o hash do password da pessoa , aconselho usar o bcrypt, ele é altamente conhecido, isso pq segue novamente na questão de segurança, imagine que por algum motivo alguém de fora consiga acessar a dashboard, imagina o estrago que a pessoa pode fazer ao se deparar com email e password das pessoas, sendo que muitas vezes essas pessoas usam o mesmo password sempre. A ideia do hash é justamente fazer esse papel de esconder o password para um bando de string codificadas...
Na parte de entrar nas páginas vi que você usa o IP para ver se existe, entendi o que você quis fazer , acho interessante, mas acredito que você pode fazer outras coisas mais seguras, poderia usar um token jwt e setá-lo no cookie com um tempo máximo de sla 1 dia, isso garante muita coisa, uma que caso usuário tente editar esse token você consegue deslogá-lo e outros parâmetros. O que você consegue fazer com o IP é fazer uma verificação, de por exemplo enviar uma mensagem no e-mail falando que a conta foi acessada, talvez algo de aceitar ou bloquear aquele IP...
Outro toque vou te dar, essas bibliotecas que você consegue usar em SSR são legais para aplicações que possuem um servidor a parte e você utiliza esse servidor para renderizar um componente em algum cliente, tipo aqueles sites que você consegue criar um pop-up de ajuda no seu site. Para a criação de uma plataforma tem que ser algo mais "parrudo", claro que dá para fazer tudo usando handlebars, ejs e etc, mas a manutenção disso torna muito chata, então aconselho a dar uma olhada em frameworks, angular , next , nuxt enfim...
E por fim , isso é mais questão de organização, tenre criar um modelo de CRUDE por exemplo crude.service.js e la dentro você coloca as funções de criação, edição, update, remoção e etc, isso pq vc está basicamente em toda página criando sempre a mesma função, ela poderia ser simplesmente copiada para um arquivo separado e usada de uma maneira "menor" , mas isso é mais organização mesmo.
Espero tê-lo ajudado, continue com essa animação e termina esse projeto, caso não consiga muita gente utilizando , não fique triste , vai ser uma baita experiência.