Warm the pot: Heat olive oil in a large soup pot over medium heat.
If using sausage or pancetta, brown it first until crisp around the edges. Remove to a plate, leaving the drippings in the pot.
Sauté the base: Add onion, carrots, and celery with a pinch of salt. Cook 6–8 minutes, stirring, until the vegetables soften and the edges begin to caramelize.
Boost the flavor: Stir in garlic and cook 30 seconds.
Add tomato paste and cook 1–2 minutes until it darkens slightly—this deepens the tomato flavor.
Build the broth: Pour in crushed tomatoes and broth. Add Italian seasoning, bay leaf, red pepper flakes, and the Parmesan rind if using. Return the browned meat to the pot.
Simmer: Bring to a gentle boil, then lower the heat and simmer for 15 minutes to meld flavors.
Add beans and pasta: Stir in the beans and pasta.
Simmer, stirring occasionally, until the pasta is al dente, about 8–10 minutes depending on shape. Taste and adjust salt and pepper.
Greens and finish: Stir in kale or spinach. Cook 2–3 minutes until wilted.
Remove the bay leaf and Parmesan rind. Add balsamic vinegar for brightness if you like.
Serve: Ladle into bowls and top with grated Parmesan and chopped parsley or basil. A drizzle of olive oil or a squeeze of lemon is a nice touch.