This is a very broad question, but the most straightforward answer is to use a popular full stack framework like Ruby on Rails. It'll give you most of what you need out of the box, and there's 3rd party packages for the rest.
await slowThingOne();
await slowThingTwo();
but these execute in parallel, awaiting until both are finished (the "good way"): await Promise.all([slowThingOne(), slowThingTwo()]);