um nestJS ou somente express com ts, mas tb tenho a dúvida de quando for hospedar vou colocar só a pasta dos arquivos js ou todo projeto?
Geralmente, o servidor "observa" o seu projeto que está no github. Quando há um push, ele builda o projeto, pega a pasta "dist" que é o resultado dessa build, e confihura um ngix pra ela, apontando somente para o "dist". Todo esse processo é automático.
Essa é a melhor forma de começar a entender como um servidor de produção funciona. Depois de conseguir fazer o básico, aí pode partir para coisas mais complexas, se esse for seu interesse