White Bean and Tomato Shakshuka
the pantry can dinner
Two cans — crushed tomatoes and white beans — plus eggs, spices, and one pan. The tomatoes and beans cook down into a thick, spiced sauce; wells get pressed into the surface; eggs go in and poach directly in the sauce until the whites set and the yolks stay soft. Fifteen minutes of actual cooking, eaten directly from the pan.
Classic shakshuka is eggs poached in tomato sauce. Adding white beans turns a light sauce into something substantial — the beans bulk up the sauce and make the dish genuinely filling as a dinner rather than just a brunch. Cannellini or butter beans are ideal because they are large, creamy, and hold their shape in the sauce rather than breaking down. A can of chickpeas works too, though with a different texture.
The spice mixture here — cumin, sweet paprika, smoked paprika, a pinch of cayenne — builds layers of warmth without making the dish aggressively spicy. The smoked paprika in particular adds a slight depth that tastes almost like something was grilled. Adjust the cayenne up or down based on who is eating.
What you need
What you need
- 4 large eggs
- 1 can (400g / 14 oz) crushed tomatoes — whole canned tomatoes that you crush by hand in the pan also work well
- 1 can (400g / 14 oz) white beans (cannellini, great northern, or butter beans), drained and rinsed
- 1 small onion, diced
- 3 garlic cloves, minced
- 1 teaspoon ground cumin
- 1 teaspoon sweet paprika
- ½ teaspoon smoked paprika — optional but adds depth
- ¼ teaspoon cayenne pepper — optional; adjust to taste
- 2 tablespoons olive oil
- Salt and black pepper
- Fresh flat-leaf parsley or cilantro to finish
- Crusty bread, pita, or flatbread to serve (optional; omit for fully gluten-free)
How to make it
Step 1: Build the spiced onion base. Heat the olive oil in a large skillet with a lid — the lid is needed for the egg-poaching stage. A 28cm (11-inch) skillet is ideal for this recipe, large enough to fit four eggs with space between them. Cook the diced onion over medium heat with a pinch of salt for six minutes, stirring occasionally, until it is soft, translucent, and starting to turn golden. Add the minced garlic, ground cumin, sweet paprika, smoked paprika, and cayenne pepper. Stir constantly for one minute until the spices are aromatic and the garlic is softened. The pan should smell deeply spiced.
Step 2: Add the tomatoes and simmer. Pour in the crushed tomatoes. Stir to combine with the spiced onion mixture. Season with a generous pinch of salt and several grinds of black pepper. Bring to a simmer, then reduce the heat to medium-low. Cook for five minutes, stirring occasionally, until the sauce has thickened slightly — it should hold its shape when you drag a spoon across the bottom of the pan. Taste the sauce and adjust: it should be deeply savory, slightly sweet from the tomatoes, and warmly spiced. Add more salt, pepper, or cayenne as needed.
Step 3: Add the white beans. Drain and rinse the white beans under cold water. Add them to the skillet. Stir gently — you want to distribute the beans throughout the sauce without breaking them. Large beans like cannellini and butter beans are delicate when canned and will turn to mush if stirred too vigorously. Simmer for three minutes more until the beans have absorbed some of the spiced tomato sauce and the overall mixture is thick and cohesive. The sauce should be thick enough that you can press a well into it with a spoon and it holds the shape.
Step 4: Add the eggs. Use the back of a large spoon to press four small wells into the sauce, spacing them evenly around the pan. The wells need to be deep enough to cradle the egg white and prevent it from spreading across the whole surface. Crack one egg carefully into each well. Season the top of each egg lightly with a small pinch of salt and black pepper. The sauce around the eggs should still be simmering gently — if it has stopped bubbling, increase the heat slightly before covering.
Step 5: Cover and cook the eggs. Place the lid on the skillet and reduce the heat to medium-low. Cook for five to seven minutes. Check at five minutes: the egg whites should be fully set and opaque, while the yolks should still be slightly soft and jiggle gently when you shake the pan. If the whites are still translucent, cover and cook one to two minutes more. The eggs continue cooking from residual heat after you remove the lid, so pull them slightly before they reach your desired doneness. Remove from heat. Scatter fresh parsley or cilantro over the top. Serve directly from the pan, scooping through the sauce and beans with each serving of egg.
Making wells for the eggs
The wells need to be deep and defined enough to hold the egg. If the sauce is too thin, the egg white spreads out across the pan and sets in a thin layer rather than poaching in the sauce. If the sauce has not thickened enough before you add the eggs, cook it an extra two minutes without the beans before adding them. The sauce should have the consistency of a thick pasta sauce — it should fall slowly from a spoon, not run quickly.
Chef notes
Leftover shakshuka sauce (without eggs) keeps in the fridge for three days. Reheat and poach fresh eggs into it the next day. The sauce also works as a pasta sauce — thin it slightly with pasta cooking water and toss with rigatoni or penne. The white beans and tomato spice mixture is versatile enough to be worth making a larger batch.
Variations
- Add feta: Crumble 60g of feta over the sauce before adding the eggs. It melts slightly into the sauce and adds a salty creaminess.
- With spinach: Stir two large handfuls of fresh spinach into the sauce before adding the beans. It wilts completely in about one minute.
- Shakshuka for one: Halve all quantities and use a smaller pan. Two eggs in a personal-sized skillet is an ideal single serving.
See also: Shakshuka for one · Roasted garlic white bean toast · Pesto white bean soup · All recipes · Pricing
What's in your fridge today?
Snap a photo and NowCook builds a week of real recipes from what you actually have. 14-day free trial, no credit card needed.
Start free$9/month after trial · $72/year · cancel anytime