Heat the oil in a large ovenproof skillet over medium heat. Add the onion and bell pepper and sauté until softened, about 5 minutes.
Add the garlic, paprika, cumin, and cayenne, and cook for 1 to 2 minutes, or until fragrant.
Pour in the whole tomatoes and their juices. Season with salt and pepper and bring to a simmer, breaking up the tomatoes with the back of a spoon as they cook. Simmer until the sauce has thickened slightly, about 8 to 10 minutes. Stir in the feta.
Make small wells in the tomato sauce and gently crack the eggs into the wells. Transfer the skillet to the oven and bake until the egg whites are set and the yolks are cooked to your desired doneness, about 7 to 10 minutes.
Sprinkle with fresh cilantro and scallions. Serve warm with hot sauce, if desired.
Notes
Eggs: For softer yolks, begin checking the eggs around 7 minutes. For firmer yolks, bake closer to 10 minutes or slightly longer, depending on your oven and skillet.
Stovetop: If your skillet is not ovenproof, cover the skillet and cook the eggs gently on the stovetop until the whites are set.
Texture: Let the tomato sauce simmer until slightly thickened before adding the eggs. A thicker sauce helps the eggs nestle into the skillet and cook more evenly.
Serving: Serve shakshuka with warm pita, challah, naan, or crusty bread for scooping up the sauce.
Heat: Adjust the cayenne to taste, or omit it for a milder shakshuka.