I just got my first project as a freelance developer, and I am unable to choose a tech stack. Some background - I've worked with Enterprise Java and C# for a few years now, so I am fairly comfortable with these two languages. But I have never worked with any of the hottest technologies including languages and frameworks like Python/Django, Node, or RoR. I also will need a deployment solution, and I am unable to choose between IaaS like AWS/Azure/GCP or just to go with PaaS like Heroku, since I have never worked with any of them.
Should I explore new frameworks in something I know (Spring/Play/DropWizard with Java) or choose to go with something that I haven't worked with in order to learn new tech as I am developing?
Your concerns should be the following:
1 - will this stack get the job done, and at a reasonable velocity
2 - will you lose time because you need to ramp up on a technology you're not familiar with
3 - how maintainable will this be for developers who come after you?
Spend time figuring out what you'll need to accomplish for this project, and then decide which framework will work best for it.
If you're still not sure what to go with, it can be really worthwhile to do a quick proof of concept that covers the areas you feel most uncertain about. I did this before choosing Elixir for a recent project, and it helped me feel a lot more confident in that choice.
Outside of your freelancing, I'd encourage you to spend time using new tools are frameworks. That way, you'll know the strengths and weaknesses of each before you need to pick one for a project.