First, prep all the vegetables. Keep in mind that this soup will not be getting pureed, so you want to chop your vegetables into bite-sized pieces.
In a large pot, add the olive oil and onions and cook over medium heat for 2-3 minutes until the onion begins to soften. Then add the carrots and cook for another 2-3 minutes. Next, add the zucchini and garlic, and season everything generously with salt and pepper. Cook another few minutes, until you begin to really smell the garlic. Add the tomato puree and vegetable stock, reduce the heat to low/simmer, and place a lid over the pot. Allow that to cook for 30-40 minutes.
After the soup has been cooking for about 20 minutes, get the gnocchi ready. Follow the directions on the package to boil water and cook the gnocchi in the boiling water until they float. Once they are done cooking, reserve a cup of the pasta water before straining.
Add the gnocchi and 1 cup of pasta water to the pot (this is after the initial 30-40 minutes of cooking, as the carrots should be very tender and soft). Give everything a stir and then taste the soup. Add more salt and pepper as needed, or if you’d like to add some heat, try a little cayenne. Then add the torn spinach and chopped parsley before serving.
If you can, swap out the vegetable stock here to change up the flavor a little as well as the protein content. I recently discovered a creamy, bean-based (high protein) soup stock that I’ve tried in a few soups and really like. If you don’t care about keeping this plant-based, you could also use bone broth for additional protein.