Mix the meatballs. In a bowl, combine the ground meat, breadcrumbs, Parmesan, egg, garlic, parsley, salt, pepper, and oregano. Stir gently with a fork or your hands until just combined. Do not overmix or the meatballs can turn dense.
Shape the meatballs. Roll into small balls, about 1 inch in diameter.
You should get 30–35 meatballs. Place them on a plate while you start the soup.
Sauté the aromatics. In a large pot, heat olive oil over medium heat. Add onion, carrots, and celery.
Cook, stirring, until softened, about 6–8 minutes. Add the minced garlic and cook 30 seconds, just until fragrant.
Add the broth and bring to a simmer. Pour in the chicken broth and raise the heat to bring it to a gentle boil. Taste and add a pinch of salt if needed.
Cook the meatballs in the broth. Reduce to a steady simmer.
Gently drop the meatballs into the pot, one by one. Simmer uncovered for 8–10 minutes, until the meatballs are nearly cooked through and float.
Add the pasta. Stir in the small pasta and cook until al dente, usually 6–8 minutes. Stir occasionally so it doesn’t stick to the bottom.
Stir in the greens. Add spinach (or your chosen greens) and cook 1–2 minutes, until wilted and bright.
If using heartier greens like kale, give them 3–4 minutes.
Finish and season. Stir in lemon juice. Taste the broth and adjust with salt, pepper, and more lemon as needed. The flavor should be savory with a light, clean brightness.
Serve hot. Ladle into bowls and sprinkle with extra Parmesan.
A drizzle of olive oil is a nice touch.