Cook onions and pepper: Warm a large nonstick pan or cast iron skillet over medium heat. Add oil followed by onions and peppers. Season with salt. Cook for 30 minutes or until vegetables or soft and very sweet. Reduce heat to medium-low or low, when needed, to avoid browning.
Finish cooking sauce: Add garlic and spices to the pan. Toast for 30-60 seconds, making sure the garlic doesn’t brown. Stir in harissa. Add tomatoes. Season with salt and pepper. Increase heat to medium and bring to a simmer. Break up tomatoes with spoon. Partially cover and simmer over medium-low heat for 30-40 minutes or until sauce is thickened and flavorful. Taste and adjust seasoning, as needed. Add sugar to round out flavors, if desired. While sauce cooks, preheat oven to 375°F if baking eggs in oven.
Cook eggs & serve: You can either cook eggs completely over the stove top to keep things simpler, or for more even cooking, I suggest baking the eggs in the oven. Make wells in sauce with the back of a large spoon. Crack eggs separately into a bowl and carefully pour into wells. You should be able to fit 5-6 eggs over the sauce. Season with salt. If baking, place on center rack of preheated oven uncovered, and cook for 7-10 minutes or until whites are just set. If finishing on stove top, cover and cook over medium-low heat for about 8-12 minutes or until whites are just set. Garnish shakshuka with cilantro and crumbled feta. Serve out of pan. Enjoy.