A soup that actually holds up through the week
Most meal-prep soups are fine on Monday and forgettable by Wednesday. This one gets better. The beans absorb the broth, the kale softens but holds its texture, and the parmesan rind adds a depth that builds overnight. By Thursday it tastes like something that simmered for hours.
The recipe is simple on purpose. Cannellini beans, Tuscan kale, aromatics, broth, a can of tomatoes. That is the whole foundation. The technique that makes it something more than pantry soup is mashing a portion of the beans before adding them back in - this thickens the broth without cream, without a roux, without any added starch.
Serves 4 to 6. Keeps 5 days refrigerated. Freezes well for up to 3 months.
Ingredients
- 2 tablespoons extra virgin olive oil, plus more for serving
- 1 large leek (white and light green parts only), thinly sliced, or 1 medium yellow onion, diced
- 4 garlic cloves, minced
- 1 teaspoon dried thyme
- 1 teaspoon dried oregano
- 1/4 teaspoon red pepper flakes (optional)
- 1 can (14 oz) diced tomatoes, with juices
- 2 cans (15 oz each) cannellini beans, drained and rinsed
- 5 cups vegetable broth or chicken broth
- 1 parmesan rind (roughly 2-3 inches; see note below)
- 1 bunch Tuscan kale (also sold as lacinato or dinosaur kale), stems removed, leaves torn or chopped
- Juice of 1/2 lemon
- Salt and black pepper to taste
- Grated parmesan for serving
Method
Step 1: Build the base.
Heat the olive oil in a large heavy pot or Dutch oven over medium heat. Add the leek (or onion) and a pinch of salt. Cook for 6-8 minutes, stirring occasionally, until softened and beginning to turn golden at the edges. Add the garlic, thyme, oregano, and red pepper flakes. Stir and cook for another 1-2 minutes until fragrant.
Step 2: Add tomatoes and beans.
Pour in the canned tomatoes with their juices. Stir and let it cook for 2 minutes, scraping up any bits from the bottom of the pot. Add the drained beans - but before adding them, set aside about 3/4 cup of beans in a small bowl.
Step 3: Mash the reserved beans.
Use a fork to mash the reserved beans into a rough paste - you do not need them perfectly smooth. Add this paste back into the pot along with the whole beans and stir to combine. This is the move that thickens the soup without adding anything extra.
Step 4: Add broth and parmesan rind.
Pour in the broth. Add the parmesan rind. Bring to a gentle boil, then reduce heat, cover partially, and simmer for 15 minutes.
Step 5: Add kale.
Add the kale in batches - it will wilt down quickly. Stir to submerge and continue simmering, uncovered, for another 8-10 minutes until the kale is tender. Remove and discard the parmesan rind.
Step 6: Finish and season.
Squeeze in the lemon juice. Taste and adjust salt and pepper. The soup should feel rich without being heavy. If it seems too thick, add a splash of broth. If it feels thin, let it simmer uncovered for a few more minutes.
Serve with a drizzle of olive oil and grated parmesan on top. Good bread on the side is not optional.
Why the parmesan rind matters
If you have never cooked with a parmesan rind, this is the recipe to start. The rind does not melt - it holds its shape in the pot - but it slowly releases the concentrated umami from months of aging. The broth turns more complex and savory without tasting cheesy. It is the kind of depth that makes people ask what is in this.
Save your rinds. Every time you finish a wedge of parmesan, drop the rind into a zip-top bag and keep it in the freezer. They hold for months and work in any broth-based soup.
If you do not have one on hand, a tablespoon of white miso stirred in at the end does similar work - not the same, but it adds the savory backbone you lose without the rind.
How to make it vegan
Skip the parmesan rind and use vegetable broth. Stir in a tablespoon of white miso before serving. Skip the parmesan topping and use nutritional yeast, a drizzle of good olive oil, and a squeeze of lemon instead. The soup is fully satisfying without any dairy.
Variations worth trying
Add sausage. Brown 2-3 Italian sausage links (sliced) or 1/2 pound of bulk sausage in the pot before the leeks. Remove, set aside, and add back in with the broth. This turns the soup into a full one-pot dinner without much extra work.
Add pasta. Stir in 1/2 cup of small pasta - ditalini, orzo, or small shells - 10 minutes before the soup is done. Add a cup of extra broth since the pasta absorbs more liquid than expected. Note that the pasta will continue to soak up broth overnight, so if you are meal-prepping, cook the pasta separately and add to each bowl at serving.
Make it creamier. Blend 2 full cups of the soup (beans, broth, and all) in a blender or with an immersion blender, then stir back in. This creates a much thicker, almost bisque-like consistency while keeping texture from the remaining whole beans and kale.
Storage and freezing
Fridge: Cool completely before transferring to an airtight container. Keeps for 5 days. The soup will thicken considerably in the fridge as the beans absorb more liquid - add a splash of broth or water when reheating.
Freezer: Freeze in individual portions for up to 3 months. Thaw overnight in the fridge or directly in a pot over low heat with a little extra broth. Do not freeze if you have added pasta - the texture suffers badly.
Nutrition per serving (based on 6 servings, no sausage or pasta)
- Calories: ~280
- Protein: ~14g
- Carbohydrates: ~38g
- Fiber: ~11g
- Fat: ~8g
- Sodium: varies with broth brand (use low-sodium broth to control this)
Estimates based on standard ingredient measurements. Values will vary by brand and exact quantities used.
Free Newsletter
Enjoyed this? Get more every week.
Practical health, fitness, and beauty tips delivered straight to your inbox. No fluff.





