Ribollita is a rustic Tuscan soup designed for making the most of ordinary ingredients, especially stale bread. This version uses leftover bread, white beans, seasonal vegetables, and dark greens to create a thick, comforting meal with very little waste.
What makes ribollita different from ordinary vegetable soup?
The name ribollita means “reboiled,” because the soup was traditionally cooked, cooled, and reheated the next day. That second heating gives the vegetables and beans more time to mingle and allows the bread to absorb the broth, creating a spoonable stew rather than a thin soup.
There is no single universal recipe. Ribollita varies between families and regions of Tuscany, but its defining features are a vegetable base, beans, leafy greens, and bread added near the end. The bread should be sturdy and at least a day old so it softens without immediately disappearing.
Ingredients for six servings
- 3 tablespoons extra-virgin olive oil, plus more for serving
- 1 medium yellow onion, finely chopped
- 2 medium carrots, diced
- 2 celery stalks, diced
- 3 garlic cloves, finely chopped
- 1 small fennel bulb, diced, optional
- 1 tablespoon tomato paste
- 1 can chopped tomatoes, about 400 g or 14 oz
- 1.5 litres vegetable stock, or enough to cover the vegetables
- 2 cans cannellini beans, drained and rinsed, or about 500 g cooked beans
- 1 small bunch cavolo nero, kale, Swiss chard, or other sturdy greens
- 300–400 g stale rustic bread, torn or cut into thick pieces
- 1 teaspoon dried thyme, or a few fresh thyme sprigs
- 1 bay leaf
- Salt and freshly ground black pepper
- A pinch of chilli flakes, optional
- Finely grated Parmesan or Pecorino, optional
If you have a Parmesan rind, add it while the soup simmers and remove it before serving. It adds savoury depth, but the soup is still satisfying without one.
Choosing and preparing the leftover bread
The best bread is a crusty country loaf, sourdough, ciabatta, or another dense, chewy bread. Avoid very soft packaged sandwich bread if possible; it can turn gummy and make the soup feel pasty. Day-old bread is ideal, but bread that has become completely dry also works well because it absorbs the broth gradually.
Remove any obviously burnt sections, then tear the bread into roughly 3–5 cm pieces. Small pieces thicken the soup quickly, while larger pieces retain a little more texture. If your bread is fresh rather than stale, dry it in a 150°C oven for 10–15 minutes, turning once, and let it cool before using.
Do not use bread with visible mould. Cutting away mouldy areas does not make the loaf safe, because mould can spread below the surface.
Step-by-step method
1. Build the vegetable base
Place a large heavy-bottomed pot or Dutch oven over medium heat. Add the olive oil, followed by the onion, carrot, celery, and fennel if using. Add a pinch of salt and cook for 8–10 minutes, stirring occasionally, until the vegetables are soft and the onion is translucent.
The goal is to soften and sweeten the vegetables rather than brown them heavily. If they begin to catch on the bottom, lower the heat and add a tablespoon of water. Add the garlic and chilli flakes, if using, and cook for another minute.
2. Cook the tomatoes and herbs
Stir in the tomato paste and cook for 1–2 minutes. This removes its raw taste and gives the soup a deeper savoury flavour. Add the chopped tomatoes, thyme, and bay leaf. Stir well, scraping up any vegetables that have stuck to the pot.
Let the mixture bubble gently for about 5 minutes. This short cooking time concentrates the tomato without turning the soup into a tomato-heavy sauce.
3. Add the beans and stock
Add the beans and vegetable stock. The liquid should cover the vegetables and beans generously, because the bread will absorb a considerable amount later. Bring the soup to a boil, then reduce the heat and simmer uncovered for 20–25 minutes.
Taste the broth after it has simmered and adjust the salt. Stock varies widely in saltiness, so it is better to season gradually. Keep the soup at a gentle simmer; a rapid boil can break up the beans and make the vegetables mushy before the bread is added.
4. Prepare and add the greens
While the soup simmers, wash the greens thoroughly. Strip tough stems from cavolo nero or kale, then slice the leaves into ribbons. Swiss chard stems can be finely chopped and added with the carrots and celery, while the leaves should go in later.
Add the sliced greens to the pot and cook for 5–8 minutes, or until tender. Tougher cavolo nero may need closer to 10 minutes. The leaves should be soft enough to eat comfortably but still retain some colour and character.
5. Add the leftover bread
Remove the bay leaf and Parmesan rind if used. Add the torn bread a handful at a time, stirring gently after each addition. Let the soup simmer for 5–10 minutes, depending on how dry and dense the bread is.
Ribollita should be thick, but it should not be dry. If the bread absorbs all the visible liquid before it becomes tender, add hot stock or water 120 ml at a time. Stir gently so the bread softens without turning the entire pot into a completely smooth purée.
Some cooks add the bread directly to individual bowls and ladle the hot soup over it. This preserves more texture and is useful if you expect leftovers, since the bread continues absorbing liquid during storage.
6. Rest and reheat
For the most traditional texture, turn off the heat and let the soup rest for at least 15 minutes. You can serve it immediately, but ribollita usually becomes more flavourful and cohesive after cooling and reheating.
To reheat it, place the soup over low to medium heat and stir occasionally. Add a splash of water or stock if it has become too thick. Heat until steaming hot throughout, but avoid prolonged hard boiling, which can make the bread break down excessively.
Ingredient alternatives
| Original ingredient | Practical alternative | What changes |
|---|---|---|
| Cannellini beans | Great Northern, navy, or butter beans | Texture and flavour vary slightly, but all work well |
| Cavolo nero | Kale, Swiss chard, cabbage, or spinach | Softer greens need less cooking time |
| Rustic wheat bread | Sourdough, ciabatta, or whole-grain bread | Denser bread produces a thicker soup |
| Fresh tomatoes | An additional can of chopped tomatoes | The flavour becomes more tomato-forward |
| Vegetable stock | Water with extra herbs and seasoning | The soup will be lighter but still workable |
| Parmesan | Pecorino, nutritional yeast, or no cheese | The final savouriness changes, especially without cheese |
For a gluten-free version, use a firm gluten-free loaf that dries well, and verify that the stock and other packaged ingredients are certified gluten-free. For a vegan version, use vegetable stock and omit Parmesan.
Troubleshooting ribollita
The soup is too thick
Bread can absorb more liquid than expected, especially if it is very dry. Stir in hot stock or water a little at a time until the soup reaches the consistency you want. Taste again afterward, because dilution may require a little more salt or pepper.
The soup is too thin
Simmer it uncovered for several minutes to reduce the liquid, or add more stale bread. If adding bread, wait a few minutes before deciding whether more is needed. It continues to swell as it rests.
The bread has turned gummy
This usually happens when the bread is very soft, cut too small, or stirred aggressively. The soup is still usable, but next time use drier, denser bread and add larger pieces near the end of cooking. Reserving some bread for the bowls also helps preserve texture.
The beans have fallen apart
A few broken beans are desirable because they naturally thicken the broth. If most have disintegrated, the soup may have simmered too vigorously or for too long. Keep the heat low and stir gently. For a more textured batch, add some beans during the final 10 minutes instead of at the beginning.
The greens are tough
Older kale and cavolo nero may need additional cooking. Add a little stock if needed and simmer until the stems are tender. Next time, remove the toughest stems and slice the leaves more finely.
The soup tastes flat
Add salt first, then reassess. If it still lacks depth, try a splash of lemon juice or red wine vinegar, a drizzle of good olive oil, black pepper, chilli flakes, or a little grated Pecorino. Acid should be added sparingly; its purpose is to brighten the soup rather than make it taste sour.
The soup tastes too salty
Add unsalted water or stock and increase the amount of beans, vegetables, or bread if available. Do not rely on adding a raw potato; it will not reliably remove salt from a finished soup. A little acid can balance saltiness, but it cannot undo excessive seasoning.
Serving suggestions
Serve ribollita in warmed bowls with extra-virgin olive oil drizzled over the top. Add black pepper and grated Parmesan or Pecorino if desired. A simple green salad dressed with lemon and olive oil provides freshness alongside the dense soup.
You can also top each serving with:
- Toasted breadcrumbs for contrast
- Chopped fresh parsley
- A spoonful of white beans or sautéed greens
- A pinch of chilli flakes
- A poached egg for a more substantial meal
Avoid adding too many strong toppings at once. Ribollita is meant to taste like vegetables, beans, bread, and olive oil working together.
Storage and reheating
Cool leftovers promptly in a shallow container, then refrigerate them in a covered container. Use refrigerated ribollita within 3–4 days and reheat it until steaming hot throughout. The soup will thicken significantly overnight, so loosen each portion with water or stock while reheating.
For longer storage, freeze the bean-and-vegetable soup before adding the bread. Thaw it in the refrigerator, reheat it gently, and add fresh stale bread at that point. Freezing fully assembled ribollita is possible, but the bread may become softer and less distinct after thawing.
If you are cooking for a crowd, keep the soup base and bread separate until shortly before serving. This gives you better control over the final thickness and prevents the bread from absorbing all the broth while the pot sits.