Warm olive oil in a large skillet (with a lid) over medium heat.
Add the onion and garlic to the skillet. Cook, stirring occasionally to prevent the garlic from burning, for 2 to 3 minutes or until the onion begins to soften.
Add the cubed eggplant to the skillet with an extra drizzle of olive oil if the skillet seems dry. Cook, stirring occasionally, for 7 to 8 minutes until slightly softened and lightly browned.
Stir in the paprika, cumin, red pepper flakes, and salt. Cook for another minute until fragrant.
Add the diced tomatoes and honey to the skillet. Cook for 6 to 8 minutes until the mixture starts to thicken into a stew-like texture and the eggplant is completely tender.
Use the back of a spoon to create four wells in the tomato mixture that are big enough to fit a cracked egg without it being too squished. It's OK if there is a little liquid pooled in the wells but you don't want pieces of veggies in them that prevent the egg from absorbing heat from the skillet. Crack an egg into each well. I like to add a dash of salt and black pepper on top of the eggs as they cook.
Cover the skillet and reduce the heat to low. Cook for 5 to 8 minutes until the egg whites are just set and the yolks are jammy. If you want runny eggs, cook the eggs for 3 to 5 minutes. For harder yolks, increase the cooking time to 7 to 10 minutes. Resist the urge to increase the heat, since this will cause the eggs to overcook quickly.
Transfer the shakshuka to serving plates. Sprinkle with feta cheese and fresh parsley.
Serve immediately with crusty bread or pita.
Leave a rating or review by tapping the stars on this recipe card (above) or in the comments section (at the end of the post)!
Notes
Keep leftover shakshuka sauce in airtight containers in the refrigerator for 2 to 3 days. I don't recommend storing the eggs as leftovers, since the yolks will get hard and the texture will change. Instead, you can reheat the leftover veggie mixture in a skillet over medium heat and poach fresh eggs in it as desired.