Shakshuka Recipe with Fresh Tomatoes and Feta (High-Protein, Low-Calorie)

If you have ever wanted a breakfast that genuinely fills you up without leaving you feeling heavy, this shakshuka recipe with fresh tomatoes and feta is exactly that. It is a vibrant, one-pan dish built on a deeply spiced tomato base, with eggs poached right in the sauce and creamy crumbled feta layered on top. Every bite gives you something warm, savoury, and deeply satisfying. This version leans into freshness by using ripe, chopped fresh tomatoes instead of canned, which brings a brighter, slightly sweeter flavour and a lighter texture to the sauce.
What makes this recipe genuinely healthier than most shakshuka versions out there is the careful balance of ingredients. We use a full six eggs for four servings, which bumps up the protein to around 18 grams per serving. The addition of baby spinach stirred into the sauce near the end adds fibre, folate, and iron without changing the flavour profile at all. Feta cheese brings a salty, creamy richness, but because it is so flavourful, you only need a small amount. That keeps the sodium in check while still giving you that classic Mediterranean finish. The whole dish clocks in at around 220 calories per serving, which is genuinely impressive for something this filling and flavourful.
The spice blend here is worth talking about. Ground cumin, smoked paprika, and a small pinch of cayenne work together to build a warm, complex base. Turmeric is a quiet addition that most shakshuka recipes skip, but it adds an earthy depth and a beautiful golden hue to the sauce. Fresh garlic and red onion are cooked low and slow until they soften and turn slightly sweet before the tomatoes go in. That step is important because it builds the flavour foundation of the entire dish. Rushing it means a thinner, less layered sauce, so give it the full five minutes it needs. A handful of fresh herbs, either flat-leaf parsley or coriander depending on your preference, stirred in at the end lifts everything and keeps it tasting bright and fresh.
This dish comes together in about 30 minutes from start to finish, making it realistic for a weekday morning or a leisurely weekend brunch. It works beautifully served straight from the skillet at the table with warm wholegrain flatbread or toasted sourdough on the side for dipping. If you are meal prepping, the tomato base can be made up to three days in advance and refrigerated, so all you need to do on the morning is reheat the sauce, crack in the eggs, and you have a restaurant-quality breakfast in under ten minutes. It is also naturally gluten-free, which makes it a crowd-pleasing option if you are cooking for a group with mixed dietary needs.
Ingredients
- 1 tbsp extra virgin olive oil
- 1 medium red onion (finely diced)
- 1 medium red bell pepper (deseeded and diced)
- 4 cloves garlic (minced)
- 700 g ripe fresh tomatoes (roughly chopped, about 5 to 6 medium tomatoes)
- 2 tbsp tomato paste (no added salt where possible)
- 1 tsp ground cumin
- 1 tsp smoked paprika
- 0.5 tsp ground turmeric
- 0.3 tsp cayenne pepper (adjust to taste)
- 0.5 tsp ground coriander
- 0.3 tsp fine sea salt (or to taste)
- 0.3 tsp black pepper (freshly ground)
- 60 g baby spinach (fresh, roughly chopped)
- 6 large free-range eggs
- 60 g reduced-fat feta cheese (crumbled)
- 2 tbsp fresh flat-leaf parsley or coriander (roughly chopped, to serve)
- 0.5 tsp chilli flakes (optional, for serving)
Instructions
- 1
Heat the olive oil in a large, deep skillet or wide saucepan over medium heat. Add the diced red onion and red bell pepper. Cook for 5 to 6 minutes, stirring occasionally, until softened and the onion is just starting to turn translucent.
Do not rush this step. Soft, slightly sweet onion is the backbone of a good sauce.
- 2
Add the minced garlic to the pan and cook for another 60 seconds, stirring constantly, until fragrant. Stir in the cumin, smoked paprika, turmeric, cayenne, and ground coriander. Toast the spices in the oil for 30 seconds, stirring continuously.
Toasting the spices directly in the oil unlocks far more flavour than adding them with the tomatoes.
- 3
Add the chopped fresh tomatoes and tomato paste. Stir everything together well, pressing the tomatoes slightly with the back of your spoon. Season with salt and black pepper. Reduce the heat to medium-low and simmer uncovered for 12 to 15 minutes, until the tomatoes have broken down into a thick, rich sauce.
If your tomatoes are not very ripe or juicy, add 2 to 3 tablespoons of water or vegetable stock to keep the sauce from catching.
- 4
Stir the baby spinach into the sauce and allow it to wilt for about 1 minute.
- 5
Use a spoon to create 6 small wells in the tomato sauce. Crack one egg into each well. Scatter half the crumbled feta over the sauce around the eggs. Place a lid on the pan and cook over low heat for 5 to 7 minutes, until the egg whites are just set but the yolks are still slightly runny.
Check at 5 minutes. The residual heat will continue cooking the eggs after you remove the lid, so pull them slightly before your preferred doneness.
- 6
Remove from the heat. Scatter the remaining crumbled feta over the top, followed by the fresh parsley or coriander and optional chilli flakes. Serve immediately, straight from the pan.
Serve with warm wholegrain flatbread or toasted sourdough for dipping.
Nutrition per serving
220kcal
Calories
18g
Protein
14g
Carbs
11g
Fat
4g
Fibre
8g
Sugar
390mg
Sodium
Pro Tips
- ✓
Use the ripest fresh tomatoes you can find. Roma or vine-ripened tomatoes work especially well because they have a lower water content and a richer flavour.
- ✓
If you prefer fully set yolks, simply leave the lid on for an extra 2 to 3 minutes on low heat.
- ✓
Crack each egg into a small bowl or ramekin first before sliding it into the sauce. This helps you avoid shell fragments and gives you more control over placement.
- ✓
A wide, heavy-based pan ensures even heat distribution and helps the sauce simmer without burning at the edges.
- ✓
Do not skip the tomato paste. It adds concentrated depth that fresh tomatoes alone cannot fully provide.
- ✓
Taste the sauce before adding the eggs and adjust seasoning. The feta will add saltiness, so err on the side of less salt at this stage.
Frequently Asked Questions
Variations
- •
Spicy Harissa Shakshuka
Stir 1 tablespoon of harissa paste into the tomato sauce along with the spices for a deeper, more complex heat. Reduce or omit the cayenne if you prefer a milder overall spice level.
- •
Chickpea Shakshuka
Add one 400g can of drained, rinsed chickpeas to the tomato sauce before the eggs go in. This boosts the plant-based protein and fibre content significantly and makes the dish even more substantial.
- •
Green Shakshuka Variation
Replace the fresh tomatoes with a base of blended tomatillos, courgette, and extra spinach for a green shakshuka. Keep the feta topping and spice profile the same.
- •
Turkey Mince Shakshuka
Brown 150g of lean turkey mince in the skillet before adding the onion. Drain any excess liquid, then proceed with the recipe as normal. This version is especially high in protein, coming in at around 28 grams per serving.
Substitutions
- •Fresh tomatoes → One 400g can of chopped tomatoes (If fresh ripe tomatoes are not available, a good quality can of chopped tomatoes works well. Reduce the simmering time to 8 to 10 minutes as canned tomatoes break down faster.)
- •Reduced-fat feta cheese → Full-fat feta or goat cheese (Full-fat feta gives a creamier result. Goat cheese crumbles similarly and adds a slightly more tangy, earthy note to the finished dish.)
- •Baby spinach → Kale or Swiss chard (Finely shredded kale or Swiss chard can replace spinach. Both take slightly longer to wilt, so add them 2 to 3 minutes before the spinach would normally go in.)
- •Red bell pepper → Yellow bell pepper or roasted peppers (Any colour of bell pepper works here. Jarred roasted peppers can be used for a sweeter, smokier flavour and no additional cooking time needed.)
- •Olive oil → Avocado oil (Avocado oil has a higher smoke point and a neutral flavour. It is a solid swap if you prefer it or are cooking at a slightly higher heat.)
🧊 Storage
Shakshuka is best eaten fresh, directly from the pan. If you have leftover sauce without eggs, store it in an airtight container in the refrigerator for up to 3 days. Reheat the sauce gently on the stovetop and add fresh eggs when serving. Leftover shakshuka with eggs already cooked in it can be refrigerated for up to 1 day, though the yolks will firm up on reheating.
📅 Make Ahead
The spiced fresh tomato base can be prepared up to 3 days in advance and stored in an airtight container in the refrigerator. This cuts the morning cooking time down to around 10 minutes. Reheat the sauce gently in a skillet, add the spinach, create wells, crack in the eggs, and finish as directed. The sauce can also be frozen for up to 2 months. Thaw overnight in the refrigerator before reheating.


