Preheat the oven to 400 degrees(F).
Heat the olive oil on medium in a medium sized pot.
Add the garlic and shallot, sauté, reducing heat as needed until the shallot is translucent. About 2-3 minutes.
Then add the tomato paste and red pepper(if you don't want your sauce to be spicy add 1/4-1/2 tsp. of red pepper instead) to the pot and stir into the garlic and shallots as much as you can.
Now add the crushed tomatoes and balsamic vinegar. Stir to combine everything. Bring to a simmer, then reduce heat to low.
Next, add the salt and non-dairy milk, stir to combine. Let simmer for 1-2 minutes. Then taste and adjust seasonings. You want to make sure it is salted properly since you won't be able to adjust it later.
Pour the water into the sauce and stir. Make sure it is fully combined. I know it looks like soup now, but you will be cooking the pasta in the sauce so you need it to be thin. It will thicken in the oven! Turn the heat off.
Now, stir the uncooked pasta into the sauce, and pour it into a 11x7 inch baking dish.
Bake for 25-30 minutes or until the pasta is al dente.
Top with the vegan cheese and broil on high for 2-3 minutes or until the vegan cheese melts(as much as it can). Serve with fresh herbs and vegan parm if desired.