In a large pot or dutch oven, heat the oil over medium-high heat.
Add the ground beef, sausage, and garlic. Cook until browned, breaking up meat with a wooden spoon as needed. Drain fat if desired.
Stir in the diced tomatoes, tomato paste, oregano, basil, parsley, salt, pepper, and chicken broth. Bring to a boil.
While the soup is heating up, chop the ends off of the zucchini, then cut it length-wise. After that, chop into thin slices.
Once the soup is boiling, add the zucchini. Boil 3-5 minutes, or until zucchini is tender.
Stir in the balsamic vinegar. Taste and adjust seasonings as needed and serve topped with dairy-free ricotta. If the soup tastes "flat", it needs more salt!
For lower carb count, reduce the tomato paste to 3 oz. and reduce or omit the zucchini. This makes each serving have 5 net carbs. Nutritional Info does not include Ricotta.
Leftovers can be stored in the fridge for 3 to 5 days or can be frozen up to 2 months.
I highly recommend using half beef and half breakfast sausage because the sausage adds tons of flavor. However, you can use all beef if you prefer.
If you are not grain-free, keto, or doing a Whole30, you can substitute the zucchini for gluten-free noodles. I recommend using GF lasagna noodles broken into small pieces. Simply add the noodles to the boiling soup instead of the zucchini and boil as directed on the package.
Please don't skip the balsamic vinegar! It adds a sweet tartness and depth of flavor and takes the soup to the next level.