Brown the sausage: Heat a large pot or Dutch oven over medium heat.
Add sausage and cook, breaking it into small pieces, until browned and cooked through, about 6–8 minutes. If there’s excess fat, spoon off all but 1–2 tablespoons. If your sausage is very lean, add olive oil.
Sauté the aromatics: Add onion, carrots, and celery to the pot.
Cook, stirring occasionally, until softened and fragrant, about 5–6 minutes. Add garlic and cook 30 seconds more, just until you smell it.
Season the base: Stir in Italian seasoning and crushed red pepper flakes. Let the spices toast for 30 seconds to wake them up.
Add tomatoes and broth: Pour in the diced tomatoes with their juices and the chicken broth.
Scrape up any browned bits from the bottom of the pot with a wooden spoon. That’s pure flavor.
Choose your starch: Add pasta or potatoes. If using pasta, plan on a shorter simmer; if using potatoes, allow more time to become tender.
Simmer: Bring to a boil, then reduce heat to a gentle simmer.
Cook 10–12 minutes for pasta or 15–18 minutes for potatoes, until tender.
Stir in beans and greens: Add cannellini beans and kale or spinach. Simmer 3–5 minutes, just until the greens wilt and the beans are warmed through.
Taste and finish: Season with salt and black pepper. If the soup tastes flat, add a squeeze of lemon juice for brightness.
Stir in parsley if using.
Serve: Ladle into bowls and top with freshly grated Parmesan. Add extra red pepper flakes if you like heat.