Mix the meatballs: In a bowl, combine ground meat, breadcrumbs, egg, 1/4 cup grated Parmesan, half the minced garlic, 2 tablespoons chopped parsley, 1/2 teaspoon salt, and a few grinds of black pepper. Mix gently with a fork until just combined.
Form the meatballs: Roll into small balls, about 3/4 to 1 inch wide. You should get 28–32 meatballs.
Chill in the fridge while you start the soup to help them hold their shape.
Sauté the aromatics: Heat olive oil in a large pot over medium heat. Add onion, carrots, and celery with a pinch of salt. Cook 6–8 minutes, stirring, until softened.
Add remaining garlic and cook 30 seconds until fragrant.
Build the broth: Stir in Italian seasoning and red pepper flakes. Pour in chicken broth and bring to a gentle boil. If you have a Parmesan rind, add it now for extra depth.
Add meatballs: Carefully drop the meatballs into the simmering broth.
Reduce heat to a steady simmer and cook 10 minutes, uncovered.
Cook the pasta: Stir in the small pasta. Simmer another 6–8 minutes, or until the pasta is just tender and meatballs are cooked through.
Add greens: Stir in spinach or other greens. Cook 1–2 minutes until wilted and vibrant.
Finish and adjust: Remove the Parmesan rind if used.
Add the zest of half a lemon and a squeeze of lemon juice. Taste and season with salt and pepper. Stir in remaining parsley and 1/4 cup grated Parmesan for richness.
Serve: Ladle into warm bowls.
Top with extra Parmesan, black pepper, and a drizzle of olive oil if you like.