Ribollita
Ribollita taught me how comforting simple food can be, the kind of dish that arrives at the table smelling of warm olive oil and garlic, and instantly slows the conversation to savor every spoonful.
Years ago I found a battered pot in my grandmother’s kitchen and a vellum index card with a scribbled version of this soup, and from that instant I started making Ribollita whenever the weather turned damp and gray. I remember stirring the pot while rain tapped the window, the steam fogging my glasses as the aroma of olive oil and garlic rose, and how the toasted bread turned the broth into something almost like a thick, soulful hug.
My approach is forgiving, so if you have a pantry stash you can make this easily, yet it still feels special enough for guests. I like to let it rest, because the flavors marry and deepen, and reheated the next day it somehow tastes even better. When I serve Ribollita I always offer extra olive oil and a grating of Parmesan-Reggiano, and watching people spoon it up, eyes closing at that first warm bite, is one of my favorite parts of feeding folks.
Recipe Snapshot
30 mins
15 mins
15 mins
Easy
350 kcal
Italian
Vegan, Gluten-Free
Soups
Food processor, Medium pot
The Beauty of This Ribollita
Hearty, honest flavor
I love how Ribollita delivers deep, layered taste from simple pantry staples. The creamy texture from the pureed beans blends with the acidity of tomato paste and the savory backbone of Parmesan-Reggiano rind to create complexity without fuss. I often tell friends this is comfort food that respects ingredients, not hides them.
Flexible and forgiving
This recipe tolerates swaps and imperfect timing. You can use vegetable stock instead of chicken stock for a vegetarian option, and day old bread works beautifully because it soaks and softens without turning into mush. I appreciate a recipe that forgives, because real life rarely aligns with recipe timing.
Texture contrast
Crisp torn baguette pieces and shredded lucinato kale provide structure against the silky bean base. That contrast is what keeps each spoonful interesting, it keeps the soup from feeling monotonous and gives every bite a little surprise.
Make ahead magic
I always recommend making a pot the day before a big meal, because the flavors truly deepen overnight. Reheating Ribollita is easy and the results are reliably better the next day, which is a rarity in soups. For busy weeks, this is one of my go to meals that feels like effort well spent.
Seasonal and cozy
Because the recipe centers on pantry items and hardy greens, it’s perfect for chillier months when you want a bowl that warms from the inside out. I love serving it on quiet weeknights or as a starter at casual dinner parties, it always draws compliments and second helpings.
Ingredients for Ribollita

These ingredients reflect a rustic Tuscan philosophy, where a few good components combine to deliver a bold, soulful soup. The key players are the creamy cannellini beans, which form the thick body, the aromatic mirepoix of onion, celery and carrots that builds flavor, and the baguette and Parmesan-Reggiano that add texture and umami. Together they transform humble pantry staples into a comforting, balanced bowl.
- 2 (15-ounce) cans of cannellini beans or great white northern bean, drained, washed and divided: Provide creamy texture and protein while adding earthy, nutty flavor; drain and rinse to reduce sodium and use one can blended for body and the other left whole for bite, enhancing soup heartiness and mouthfeel.
- 1/4 cup olive oil, (plus more for topping): Coat the pan and carry flavors while imparting fruity, peppery notes; start sautéing aromatics in it and reserve a drizzle for finishing to add sheen and richness to each bowl.
- 1/2 yellow onion, (peeled and minced): Offer a sweet, aromatic base when minced finely; cook until translucent to build depth in the stew and meld with other vegetables for a balanced savory backbone.
- 2 ribs of celery, (finely diced): Contribute subtle vegetal crunch and a mild aromatic celery flavor when diced; sweat gently with onions to release aromatic compounds and support the soup's savory profile.
- 3 small carrots, (peeled, ends trimmed and diced): Add natural sweetness and a tender texture once diced and cooked; soften into the base to complement other vegetables and enhance the overall complexity of the broth.
- 3 garlic cloves, (minced): Provide pungent, savory lift and depth when minced; lightly sauté to tame sharpness and allow its flavor to permeate the soup for a rounded savory character.
- 1/2 teaspoon kosher salt, plus more to taste: Season the dish with savory balance and help draw out vegetable flavors; add during cooking and adjust to taste at the end to avoid over-salting.
- Freshly black pepper: Season with freshly ground sharpness to brighten flavors and balance richness; grind to taste near the end to preserve its aromatic volatile oils.
- 1 teaspoon crushed red pepper, (if you don’t like heat, decrease to 1/2 teaspoon): Introduce warming heat and a touch of spice when crushed; add gradually to control the level of heat so it complements rather than overwhelms the ribollita.
- 3 tablespoons tomato paste: Intensify tomato flavor with concentrated umami and acidity; stir into the sauté to caramelize slightly and anchor the soup with a rich, savory tomato base.
- 2 sprigs fresh thyme: Infuse subtle herbal aroma and slight earthiness; bruise the sprigs in the pot to release oils and remove stems before serving for gentle thyme notes throughout the soup.
- 3 1/2 cups slow-sodium chicken stock or vegetable stock: Provide savory liquid and dilute while adding body; use slow–sodium chicken or vegetable stock to control salt and let the broth simmer to deepen flavors.
- 1 bunch of lucinato kale, (removed from the rib and roughly chopped): Add robust, slightly bitter leafy texture and deep green color; remove tough ribs, chop roughly, and simmer into the soup until tender but still vibrant for structure.
- 1 baguette, cut into slices: Supply crusty texture and absorbent starch when sliced; toast or dry lightly before adding so the bread soaks up broth and thickens the soup for traditional ribollita.
- 3 ounces finely grated Parmesan-Reggiano: Finish with umami, salty nuttiness and a silky finish when finely grated; sprinkle over servings to add savory complexity and a pleasant salty counterpoint.
How to Make Ribollita

Making this soup is an exercise in layering flavor and patience, and it rewards you with a deep, cozy bowl. The directions below expand each original instruction into thoughtful, sensory rich steps that explain what to watch for and why each moment matters.
- Add half of the beans to the food processor and pulse until smooth. If you need to, you can use some of the broth from the recipe to make it a smoother texture. Set aside.: You will smell the earthy, delicate aroma of the cannellini beans as they break down, and the texture should shift from whole beans to a creamy, slightly coarse puree that will thicken the broth. Use a spatula to scrape the bowl so everything is evenly processed, and if the puree seems too stiff add a splash of the stock to loosen it. This technique matters because the puree creates a silky body that binds the soup, and a common mistake is overprocessing until it becomes gluey, so pulse in short bursts to control the texture. If your food processor struggles, swap to an immersion blender in a tall jar to maintain control.
- In a medium pot, set over medium heat, add the olive oil. When the oil is warm, add the onion, celery and carrots. Cook for 5 to 7 minutes, until very softened. Mix in the garlic, along with the crushed salt, a few rounds of black pepper, red pepper, salt and thyme; cook until fragrant, about 1 to 2 minutes.: As the olive oil warms you will see a slight shimmer and you may detect its fruity scent. Keep the heat steady, because too low will not coax flavors, and too high can burn the next ingredients. A good rule is to wait until the oil moves easily across the bottom of the pot before adding aromatics, otherwise they will soak and not sizzle properly.
- Add in the tomato paste and mix until the paste turns a deep brick red color, about 2 minutes. Mix in the reserved Parmesan-Reggiano rind, bean puree, beans, stock and kale. Reduce the heat to low, cover the pot and cook for 15 to 20 minutes, until the soup’s flavors merry.: You should hear a gentle sizzle as these vegetables hit the pan, and within a few minutes their edges will become translucent and the pot will begin to smell sweet and savory. Stir occasionally, ensuring even contact with the warm oil, and cook until very softened which usually takes about 5 to 7 minutes. This slow softening is crucial, because it releases sugars and builds the soup base; rushing with high heat will brown them unevenly and can introduce bitter notes. If pieces start to crisp or brown too quickly, lower the heat and add a splash of stock to regulate temperature.
- Meanwhile, tear up half of the baguette and place on top of the soup in the pot. Top with a grating of parmesan and divide the soup amongst bowls. Garnish with a drizzle of olive oil and more parmesan, if you like.: At this stage the mixture should look glossy and the vegetables should give under the edge of a spoon, releasing an aromatic sweetness. The sound will shift from a sharp sizzle to a subtler, contented simmer, and the color should be warm and inviting. This step matters because properly softened vegetables integrate into the final texture, and undercooking leaves crunchy bits that confuse the rustic smoothness of the soup. If you find uneven cooking, stir more frequently and tilt the pot to redistribute heat.
- This soup is great heating up. Store in an airtight container and will last up to 3 to 4 days in the fridge.: When the garlic hits the warm vegetables the aroma will bloom immediately, sharp and bright, and the thyme will release tiny floral notes. Cook just until fragrant, about 1 to 2 minutes, because garlic goes from fragrant to burnt very quickly; burnt garlic tastes bitter and will taint the whole pot. Keep the heat moderate and stir constantly to keep the garlic moving and prevent sticking.
- Cook until fragrant, about 1 to 2 minutes: You'll notice the scent shift from raw garlic to a softer, roasted garlic perfume that hints of caramel and warmth. The tiny bubbles at the edge of the pot will slow and the mixture will smell decidedly rounded. This burst of aromatics is essential as it layers complexity, and a common error is letting it brown, so watch closely and have the next ingredient ready to go.
- Add in the tomato paste and mix until the paste turns a deep brick red color, about 2 minutes: As you stir the tomato paste into the vegetables it will darken and concentrate, shedding any canned tinny notes and developing a deep, umami richness. You should see the paste cling to the vegetables and the pot will smell fuller and slightly sweeter. This browning step amplifies complexity, and skipping it leaves the soup flatter; avoid stirring too briefly or the paste will not develop its full flavor.
- Mix in the reserved Parmesan-Reggiano rind, bean puree, beans, stock and kale: When you add the Parmesan–Reggiano rind and both the pureed and whole beans , along with the stock and chopped lucinato kale , the pot will go from thick sauté to a bubbling, aromatic stew. The rind melts slowly, releasing savory depth, while the kale wilts and the beans soften into the mix. This combination creates contrast between creamy and toothsome textures, and it is important because each component contributes a different sensation on the palate. A common pitfall is adding cold stock straight from the fridge which can temporarily lower the pot temperature and stall melding; keep stock near room temperature if possible.
- Reduce the heat to low, cover the pot and cook for 15 to 20 minutes, until the soup’s flavors merry: As it simmers quietly the aroma will become cohesive, and you will notice the broth thickening as starch from the beans integrates. Cooking low and slow allows flavors to marry without breaking down delicate textures; if you simmer too hard the kale can become overly soft and the liquid may evaporate too quickly. Stir occasionally from the bottom to prevent sticking, and taste near the end to adjust salt and pepper as needed.
- Meanwhile, tear up half of the baguette and place on top of the soup in the pot: Tearing the baguette into rustic pieces ensures irregular edges that soak up brothy goodness while maintaining some chew. As the bread rests on top it will begin to absorb steam and soften, creating layers of soaked bread pockets when combined into bowls. If the bread gets soggy too quickly it can dissolve, so prefer slightly stale slices that hold structure while still yielding when spooned.
- Top with a grating of parmesan and divide the soup amongst bowls: Freshly grating Parmesan–Reggiano over the top releases a nutty, salty aroma and creates an inviting finish. Each bowl should be garnished right before serving so the cheese melts slightly into the surface and adds savory lift. A common mistake is pre-grating too far in advance, which can dry the cheese and reduce its aromatic impact.
- Garnish with a drizzle of olive oil and more parmesan, if you like: A final drizzle of good olive oil brightens and rounds the bowl, adding a silky sheen and aromatic top note, while an extra grating of cheese amplifies umami. This finishing move transforms a good bowl into a memorable one, and resist the urge to skip it because it truly elevates the final mouthfeel. Avoid using too much oil, which can make the soup greasy rather than glossy.
- This soup is great heating up: Once cooled, storing the soup in an airtight container concentrates the flavors overnight and reheating brings it back to life, often tasting even better the next day. Heat gently over low to medium heat to keep the texture balanced, stirring occasionally to reincorporate any settled solids. A frequent misstep is boiling it vigorously on reheat, which can break down beans and turn the texture grainy, so warm slowly and taste as you go.
- Store in an airtight container and will last up to 3 to 4 days in the fridge: Proper storage helps maintain texture and safety, and keeping it sealed prevents the broth from oxidizing or absorbing other fridge odors. For longer keeping, freeze portions in well sealed containers and label with the date. When defrosting, do so in the refrigerator overnight and reheat gently to protect texture and flavor.
Tips and Tricks about Ribollita

I like to think of tips as little course corrections that keep the pot singing. Below are practical pointers that I use every time I make Ribollita, from ingredient handling to finishing touches.
- Choose day old bread, slightly stale baguette soaks and holds texture instead of dissolving into an undifferentiated mush, giving pleasant chew in every spoonful.
- Control your garlic, add minced garlic toward the end of the sauté and cook only until fragrant to avoid bitterness that can overwhelm the soup.
- Brown the tomato paste, cooking it until it deepens in color removes raw acidity and unlocks umami, which lifts the whole pot significantly.
- Reserve some beans, pureeing half and leaving half whole preserves creamy body and pleasing bean texture for contrast in each bite.
- Use low sodium stock, it gives you control over final seasoning and prevents the soup from becoming overly salty as it reduces.
How to Enjoy Ribollita
This soup is versatile and warming, ideal for simple dinners and casual gatherings. When serving, think about texture, temperature and small finishing details that make bowls feel intentional and comforting.
- Serve warm in deep bowls, ladle the soup so each portion has a balance of broth, beans and kale, and top with a drizzle of olive oil and extra grated Parmesan-Reggiano.
- Lunch or dinner friendly, this is substantial enough for a weeknight dinner and forgiving enough for a relaxed lunch, making it a dependable meal any time you want comfort without fuss.
- Occasions, enjoy it during colder months like winter or serve as a starter at a rustic dinner party; its heartiness makes it suitable for family style serving.
- Storage tips, refrigerate in airtight containers for up to 3 to 4 days, and reheat gently on the stove so the texture remains creamy rather than grainy.
- Seasonal pairings, pair with a simple green salad and a light white bean vinaigrette if you want contrast, or keep it alone as a comforting, stand alone bowl.
FAQ
Conclusion
What makes this recipe special is how simple pantry ingredients come together to create a rich, comforting bowl that tastes layered and intentional. I encourage you to give this version of Ribollita a try because it is forgiving, makes excellent leftovers, and rewards a little patience with deep savory flavor. Serve it on a chilly evening, drizzle a little extra olive oil on top, and notice how a humble meal can feel like a warm, complete moment with loved ones.

Ribollita
Ingredients
Equipment
Method
- Add half of the beans to the food processor and pulse until smooth. If you need to, you can use some of the broth from the recipe to make it a smoother texture. Set aside.: You will smell the earthy, delicate aroma of the cannellini beans as they break down, and the texture should shift from whole beans to a creamy, slightly coarse puree that will thicken the broth. Use a spatula to scrape the bowl so everything is evenly processed, and if the puree seems too stiff add a splash of the stock to loosen it. This technique matters because the puree creates a silky body that binds the soup, and a common mistake is overprocessing until it becomes gluey, so pulse in short bursts to control the texture. If your food processor struggles, swap to an immersion blender in a tall jar to maintain control.
- In a medium pot, set over medium heat, add the olive oil. When the oil is warm, add the onion, celery and carrots. Cook for 5 to 7 minutes, until very softened. Mix in the garlic, along with the crushed salt, a few rounds of black pepper, red pepper, salt and thyme; cook until fragrant, about 1 to 2 minutes.: As the olive oil warms you will see a slight shimmer and you may detect its fruity scent. Keep the heat steady, because too low will not coax flavors, and too high can burn the next ingredients. A good rule is to wait until the oil moves easily across the bottom of the pot before adding aromatics, otherwise they will soak and not sizzle properly.
- Add in the tomato paste and mix until the paste turns a deep brick red color, about 2 minutes. Mix in the reserved Parmesan-Reggiano rind, bean puree, beans, stock and kale. Reduce the heat to low, cover the pot and cook for 15 to 20 minutes, until the soup’s flavors merry.: You should hear a gentle sizzle as these vegetables hit the pan, and within a few minutes their edges will become translucent and the pot will begin to smell sweet and savory. Stir occasionally, ensuring even contact with the warm oil, and cook until very softened which usually takes about 5 to 7 minutes. This slow softening is crucial, because it releases sugars and builds the soup base; rushing with high heat will brown them unevenly and can introduce bitter notes. If pieces start to crisp or brown too quickly, lower the heat and add a splash of stock to regulate temperature.
- Meanwhile, tear up half of the baguette and place on top of the soup in the pot. Top with a grating of parmesan and divide the soup amongst bowls. Garnish with a drizzle of olive oil and more parmesan, if you like.: At this stage the mixture should look glossy and the vegetables should give under the edge of a spoon, releasing an aromatic sweetness. The sound will shift from a sharp sizzle to a subtler, contented simmer, and the color should be warm and inviting. This step matters because properly softened vegetables integrate into the final texture, and undercooking leaves crunchy bits that confuse the rustic smoothness of the soup. If you find uneven cooking, stir more frequently and tilt the pot to redistribute heat.
- This soup is great heating up. Store in an airtight container and will last up to 3 to 4 days in the fridge.: When the garlic hits the warm vegetables the aroma will bloom immediately, sharp and bright, and the thyme will release tiny floral notes. Cook just until fragrant, about 1 to 2 minutes, because garlic goes from fragrant to burnt very quickly; burnt garlic tastes bitter and will taint the whole pot. Keep the heat moderate and stir constantly to keep the garlic moving and prevent sticking.
- Cook until fragrant, about 1 to 2 minutes: You'll notice the scent shift from raw garlic to a softer, roasted garlic perfume that hints of caramel and warmth. The tiny bubbles at the edge of the pot will slow and the mixture will smell decidedly rounded. This burst of aromatics is essential as it layers complexity, and a common error is letting it brown, so watch closely and have the next ingredient ready to go.
- Add in the tomato paste and mix until the paste turns a deep brick red color, about 2 minutes: As you stir the tomato paste into the vegetables it will darken and concentrate, shedding any canned tinny notes and developing a deep, umami richness. You should see the paste cling to the vegetables and the pot will smell fuller and slightly sweeter. This browning step amplifies complexity, and skipping it leaves the soup flatter; avoid stirring too briefly or the paste will not develop its full flavor.
- Mix in the reserved Parmesan-Reggiano rind, bean puree, beans, stock and kale: When you add the Parmesan-Reggiano rind and both the pureed and whole beans , along with the stock and chopped lucinato kale , the pot will go from thick sauté to a bubbling, aromatic stew. The rind melts slowly, releasing savory depth, while the kale wilts and the beans soften into the mix. This combination creates contrast between creamy and toothsome textures, and it is important because each component contributes a different sensation on the palate. A common pitfall is adding cold stock straight from the fridge which can temporarily lower the pot temperature and stall melding; keep stock near room temperature if possible.
- Reduce the heat to low, cover the pot and cook for 15 to 20 minutes, until the soup’s flavors merry: As it simmers quietly the aroma will become cohesive, and you will notice the broth thickening as starch from the beans integrates. Cooking low and slow allows flavors to marry without breaking down delicate textures; if you simmer too hard the kale can become overly soft and the liquid may evaporate too quickly. Stir occasionally from the bottom to prevent sticking, and taste near the end to adjust salt and pepper as needed.
- Meanwhile, tear up half of the baguette and place on top of the soup in the pot: Tearing the baguette into rustic pieces ensures irregular edges that soak up brothy goodness while maintaining some chew. As the bread rests on top it will begin to absorb steam and soften, creating layers of soaked bread pockets when combined into bowls. If the bread gets soggy too quickly it can dissolve, so prefer slightly stale slices that hold structure while still yielding when spooned.
- Top with a grating of parmesan and divide the soup amongst bowls: Freshly grating Parmesan-Reggiano over the top releases a nutty, salty aroma and creates an inviting finish. Each bowl should be garnished right before serving so the cheese melts slightly into the surface and adds savory lift. A common mistake is pre-grating too far in advance, which can dry the cheese and reduce its aromatic impact.
- Garnish with a drizzle of olive oil and more parmesan, if you like: A final drizzle of good olive oil brightens and rounds the bowl, adding a silky sheen and aromatic top note, while an extra grating of cheese amplifies umami. This finishing move transforms a good bowl into a memorable one, and resist the urge to skip it because it truly elevates the final mouthfeel. Avoid using too much oil, which can make the soup greasy rather than glossy.
- This soup is great heating up: Once cooled, storing the soup in an airtight container concentrates the flavors overnight and reheating brings it back to life, often tasting even better the next day. Heat gently over low to medium heat to keep the texture balanced, stirring occasionally to reincorporate any settled solids. A frequent misstep is boiling it vigorously on reheat, which can break down beans and turn the texture grainy, so warm slowly and taste as you go.
- Store in an airtight container and will last up to 3 to 4 days in the fridge: Proper storage helps maintain texture and safety, and keeping it sealed prevents the broth from oxidizing or absorbing other fridge odors. For longer keeping, freeze portions in well sealed containers and label with the date. When defrosting, do so in the refrigerator overnight and reheat gently to protect texture and flavor.
Notes
- Choose day old bread, slightly stale baguette soaks and holds texture instead of dissolving into an undifferentiated mush, giving pleasant chew in every spoonful.
- Control your garlic, add minced garlic toward the end of the sauté and cook only until fragrant to avoid bitterness that can overwhelm the soup.
- Brown the tomato paste, cooking it until it deepens in color removes raw acidity and unlocks umami, which lifts the whole pot significantly.
- Reserve some beans, pureeing half and leaving half whole preserves creamy body and pleasing bean texture for contrast in each bite.
- Use low sodium stock, it gives you control over final seasoning and prevents the soup from becoming overly salty as it reduces.


