Breakfast & Brunch
This bean shakshuka recipe transforms a simple breakfast into a restaurant-worthy experience with crispy eggs poached in a rich, spiced tomato-bean sauce. The combination of tender white beans, smoky paprika, and fragrant cumin creates a hearty base that perfectly cradles runny yolks and firm whites.
I developed this version after craving something warm, satisfying, and packed with plant-based protein to start the day right.
The secret lies in the sauce—slow-cooked tomatoes and peppers meld with aromatic spices until thick and velvety, while the beans add substance without overpowering the dish. Unlike traditional shakshuka, this version incorporates white beans for a creamy texture that balances the acidity of the tomatoes.
The eggs poach directly in the sauce, absorbing its flavors while achieving that signature crispy edge around the whites.
What you'll end up with is a dish that's equally at home for brunch or dinner, served in cast-iron skillets with crusty bread to soak up every last bit of sauce. The garnish of fresh parsley and crumbled feta (or vegan feta for a plant-based version) adds brightness and contrast.
This recipe delivers comfort food with Mediterranean flair—perfect for weekend mornings or when you want something heartier than eggs alone.
Vegetarian by nature, it can easily be adapted to vegan with tofu or chickpeas in place of eggs. The method is straightforward but yields professional results, making it ideal for both beginners and experienced cooks looking to elevate their breakfast game. Let's get cooking!
Ingredients for bean shakshuka
Fourteen ingredients transform a simple breakfast into a restaurant-worthy bean shakshuka experience.
| Ingredient | Amount | Notes |
|---|---|---|
| Canned White Beans 🌱 | 2 cups | Drained and rinsed thoroughly |
| Canned Crushed Tomatoes 🍅 | 2 cups | San Marzano preferred for sweetness |
| Red Bell Pepper 🌶️ | 1 whole | Diced, seeds removed |
| Yellow Onion 🧅 | 1 whole | Thinly sliced, about 1 cup |
| Garlic Cloves 🧄 | 4 cloves | Minced, for aromatic depth |
| Smoked Paprika 🌶️ | 1 tbsp | For signature smoky flavor |
| Ground Cumin 🌿 | 1 tsp | Toasted for enhanced aroma |
| Cayenne Pepper 🔥 | ¼ tsp | Adjust for desired heat level |
| Extra-Virgin Olive Oil 🫒 | ½ cup | High-quality, fruity variety |
| Large Eggs 🥚 | 4 whole | Fresh for optimal poaching |
| Fresh Flat-Leaf Parsley 🌿 | ¼ cup | Chopped, for vibrant garnish |
| Crumbled Feta Cheese 🧀 | ½ cup | Vegan feta for plant-based version |
| Diamond Crystal Kosher Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Black Peppercorns 🌶️ | ½ tsp | Freshly cracked for brightness |
The white beans are the foundation—cannellini or great northern work best for their creamy texture. Trader Joe's carries excellent canned options, but any high-quality brand will do. The San Marzano crushed tomatoes elevate the dish with their natural sweetness and lower acidity, which prevents the sauce from becoming overly tangy. For the bell pepper, red or yellow both work, but red provides a slightly sweeter profile that complements the smoky paprika. Toast the cumin seeds briefly in a dry pan before grinding for an extra layer of depth—Penzeys carries excellent whole spices if you prefer to grind fresh.
No San Marzano tomatoes? High-quality canned tomatoes work fine, just remove excess liquid. The paprika can be swapped for a mix of regular paprika and a pinch of liquid smoke for a similar effect. Fresh parsley is ideal, but dried parsley at one-third the amount will suffice in a pinch. For a vegan version, replace the feta with cashew-based vegan feta or omit entirely. The eggs should be room temperature for even poaching, and if you prefer softer yolks, reduce cooking time by 1-2 minutes. Diamond Crystal kosher salt dissolves more easily than table salt, so adjust accordingly.
Store the sauce base (without eggs) for up to 5 days in the refrigerator, reheating gently before adding fresh eggs. The feta and parsley should be added just before serving to maintain freshness. For meal prep, portion the sauce into containers and freeze for up to 3 months, adding eggs when ready to serve. The dish reheats beautifully—cast iron skillets are ideal for even heating and crispy edges. Garnish with extra parsley and a drizzle of high-quality olive oil for a restaurant-quality finish.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this—just toss the beans, tomatoes, and peppers into one skillet, let it simmer, and boom. No pots, no pans, no stress. The onions caramelize right there, and the garlic? It melts into the sauce like a dream.
- Creamy-Spicy Balance: That first bite—where the soft beans soak up the tangy tomato sauce, then hit you with a whisper of heat from the peppers? It’s the kind of flavor that makes you pause mid-bite. Honestly, I’ll take this over takeout any day.
- Breakfast or Dinner: Serve it with crusty bread for a lazy weekend brunch, or pile it over rice for a hearty weeknight dinner. My college roommate used to call it “the meal that does it all”—and she’s not wrong. Even my picky-eating partner asks for seconds.
- Budget-Friendly Pantry Hero: Canned beans and tomatoes mean this dish costs pennies per serving. I’ve made it for date nights, potlucks, and “what’s for dinner?” moments—always with leftovers that taste just as good reheated. (Yes, even on a Tuesday night.)
Step-by-step instructions for bean shakshuka
This method delivers restaurant-quality shakshuka with perfectly poached eggs and a rich, spiced tomato-bean sauce.
Sauté Aromatics Until Deeply Fragrant
Heat the 0.5 cup extra-virgin olive oil in a large, deep skillet over medium heat. Add the 1 whole yellow onion and cook for 5 minutes until softened and translucent. Increase heat to medium-high and add the 1 whole red bell pepper and 4 cloves garlic cloves, stirring constantly for 3-4 minutes until the garlic just begins to color at the edges.
This step builds the flavor foundation. The onions should caramelize slightly at the edges—this adds sweet depth to the sauce. If the peppers soften too quickly, reduce heat to medium to prevent burning. I like to press the garlic with the back of a spoon to release its oils without browning.
Build the Spiced Tomato-Bean Sauce
Reduce heat to medium-low and stir in the 1 tbsp smoked paprika, 1 tsp ground cumin, and 0.25 tsp cayenne pepper, cooking for 30 seconds until the spices are fragrant. Add the 2 cups canned crushed tomatoes and 2 cups canned white beans, stirring well to combine. Bring to a gentle simmer, then reduce heat to low and let cook uncovered for 15 minutes, stirring occasionally.
The sauce should thicken slightly and develop a rich, smoky aroma. If it looks too thick, add 2-3 tablespoons water to reach your desired consistency. This simmering time allows the spices to fully integrate and the beans to soften slightly, creating a velvety texture. Taste and adjust seasoning with the 1.5 tsp diamond crystal kosher salt and 0.5 tsp black peppercorns—the beans often need extra salt since they're pre-cooked.
Create Wells for Perfectly Poached Eggs
Once the sauce is thickened and seasoned to taste, increase heat to medium. Using a spoon, create 4 shallow wells in the sauce, spacing them evenly. Crack each of the 4 whole large eggs into a small bowl first, then gently slide each egg into its well. The sauce should come about halfway up the sides of the egg whites.
This technique ensures the eggs poach evenly and develop crispy edges. I find it helps to use room-temperature eggs—they slide into the sauce more smoothly. Cover the skillet and cook for 5-6 minutes until the egg whites are set but the yolks remain runny. The sauce should bubble gently around the eggs but not boil vigorously.
Finish with Crispy Edges and Fresh Herbs
Remove the skillet from heat and let sit for 2 minutes. Sprinkle the 0.5 cup crumbled feta cheese evenly over the eggs and sauce, then cover again for 1 minute to melt the cheese slightly. Remove the cover and scatter the 0.25 cup chopped fresh flat-leaf parsley over the top.
For crispy egg edges, I recommend serving immediately while the eggs are still warm. The feta should be melted but not completely dissolved, adding a creamy contrast to the spiced sauce. The parsley adds a bright finish that cuts through the richness. Serve with crusty bread to soak up every last bit of the flavorful sauce.
Pro Tips For Making Bean Shakshuka
- Sauté Onions Slow: Start onions on medium-low heat—high heat makes them bitter before they even soften. I learned this the hard way after burning through three batches where the onions just turned into sad, blackened sludge instead of sweet, caramelized base. Give them 5-7 minutes until they’re translucent but not browned; this builds flavor without overpowering the beans later.
- Drain Beans Twice: Rinsing canned beans once removes some of the sodium, but I now rinse them twice and pat them dry with a towel. The extra rinse cuts the metallic taste that can sneak into the sauce, and drying them prevents a watery shakshuka—your future self will notice the difference when the sauce thickens properly.
- Simmer, Don’t Boil: Once the tomatoes and peppers hit the pot, keep the heat at a gentle simmer. Boiling turns the crushed tomatoes into a thin, watery mess that won’t cling to the beans or eggs (if you add them later). A steady simmer—small bubbles, occasional stir—lets the flavors meld without breaking down the texture.
- Toast Garlic Last: Add the minced garlic only in the final 2 minutes of cooking, right after the peppers soften. I was skeptical until I tried it—I used to add it with the onions, and it always burned or tasted raw. Toasting it at the end gives it that nutty, aromatic punch without overpowering the dish. (Yes, even if you’re impatient like me.)
Perfect pairings for this dish
Crusty Bread Pairings
Serve your bean shakshuka with crusty sourdough or baguette slices for the ultimate experience. The bread soaks up the rich tomato-bean sauce beautifully while adding a satisfying crunch.
I like to toast slices lightly in the oven with a drizzle of extra-virgin olive oil and a sprinkle of flaky sea salt before serving. 🥖
Fresh Greens Contrast
A simple arugula salad with lemon vinaigrette balances the hearty flavors perfectly. Toss 2 cups baby arugula with 2 tbsp olive oil, 1 tbsp lemon juice, and a pinch of diamond crystal kosher salt.
The peppery bite cuts through the richness of the shakshuka while adding freshness. Add toasted pine nuts for extra crunch if you like.
Yogurt or Tzatziki Dip
For a cooling contrast, serve with a small bowl of Greek yogurt or tzatziki sauce. Mix 1 cup plain Greek yogurt with 1 tbsp lemon juice, 1 minced garlic clove, 1 tbsp chopped dill, and a pinch of salt.
The tangy yogurt complements the smoky spices beautifully while adding a refreshing element. 🥄
Pickled Vegetables
Add brightness with pickled red onions or quick-pickled cucumbers. Thinly slice 1 red onion and soak in ½ cup vinegar, 1 tbsp sugar, and ½ tsp salt for 20 minutes.
The acidity enhances the dish's flavors while adding a delightful crunch. I also love pickled jalapeños for those who enjoy heat.
Warm Flatbreads
For a gluten-free option, serve with warm flatbreads or naan. Brush with garlic-infused olive oil and toast until golden. The soft texture contrasts perfectly with the crispy egg edges. I like to add a sprinkle of smoked paprika to the oil before brushing for extra flavor harmony. 🌿
Nutrition facts
Frequently asked questions
Can I make this bean shakshuka vegan?
Replace the eggs with 4 firm tofu cubes (pressed and cubed) or 4 large chickpeas per serving. For a similar texture to poached eggs, pan-fry the tofu cubes in olive oil until golden and crispy, then place them in the sauce to absorb flavors. Add vegan feta or omit cheese entirely for a fully plant-based dish.
How do I prevent the sauce from getting too watery?
Simmer the sauce uncovered for the full 15 minutes to reduce excess liquid. If needed, stir in 1 tablespoon tomato paste> or 1 teaspoon cornstarch> mixed with water to thicken. Avoid adding all the beans' liquid—drain them thoroughly first. The sauce should coat the back of a spoon by the end.
What's the best way to reheat leftovers?
Reheat gently in a skillet over low heat> with a splash of water to prevent drying. Cover for 3-4 minutes> until warmed through. For crispy eggs, add fresh eggs to cold sauce and reheat until set. Never microwave—it makes the eggs rubbery. Store sauce (without eggs) for up to 5 days> in the fridge.
Can I use different beans?
Yes! Try chickpeas> for a nuttier flavor or black beans> for richer texture. Drain and rinse thoroughly, then adjust seasoning—they absorb flavors differently. White beans create the creamiest base, but any bean adds protein and heartiness. For extra depth, toast 1 teaspoon cumin seeds> in the oil before adding other spices.
Why did my eggs turn out rubbery?
This usually happens from overcooking or high heat. Keep the sauce at a gentle simmer (medium-low>), not boiling. Cover the skillet to trap steam and cook eggs for 5-6 minutes> max. Room-temperature eggs slide in better—cold eggs tighten up. For extra insurance, use fresh eggs**> (older eggs have tougher whites).
