Try my new budgeting app Cheddar 🧀
Better than YNAB, Mint (RIP), or EveryDollar.
Export 24 ingredients for grocery delivery
Step 1
Begin by preparing your meatballs: add the ground beef to a large bowl, along with the remainder of the meatball ingredients, and using your hands, mix the mixture until well combined.
Step 2
Portion out about 1/2 ounce meatballs, and roll; chill meatballs for about 15 minutes.
Step 3
Once the meatballs have chilled, place a large soup pot over medium-high heat, and drizzle in about 3-4 tablespoons of olive oil; once the oil is hot, add in about half of the meatballs, and brown them on all sides for about 3-4 minutes.
Step 4
Using a slotted spoon, remove the browned meatballs and then repeat with the remaining meatballs; set all of the browned meatballs aside for a moment.
Step 5
Into that same pot drizzle in a bit more oil if needed, and add in the onion, carrots, and celery, and saute those for about 3-4 minutes, or until they start to become slightly tender.
Step 6
Add in the zucchini, along with the Italian seasoning, dry oregano, black pepper, pinch of salt, red pepper flakes, and garlic, and stir to combine.
Step 7
Once the garlic becomes aromatic, add in the tomato paste, and cook that for about 30 seconds, just to cook out the raw flavor.
Step 8
Next, add back into the pot the browned meatballs, along with the white beans and the beef broth/stock, and gently stir to combine; add in the parmesan rind chunk (if using), and cover the soup partially with a lid; bring the soup up to a rolling simmer, then reduce the heat to low and gently simmer the soup for 25 minutes, stirring occasionally.
Step 9
After 25 minutes, turn off the heat and remove the parmesan rind, if using; add in the spinach leaves, parsley, and basil, and stir; check the seasoning to see if any additional salt/pepper if needed.
Step 10
To serve, add some of the cooked pasta to a bowl, and ladle the soup over top; garnish with grated parmesan, if desired.