This dish works as either a healthy breakfast/brunch option or an easy weeknight dinner. Feel free to play with variations on this one like adding crumbled feta to the mixture before it goes in the oven or substituting other greens like kale or Swiss chard for the spinach.
My one piece of advice, well, maybe my two biggest pieces of advice are 1) make sure to serve this with a hearty piece of bread to soak up all the juices and 2) take the eggs out a minute earlier than you would think because they will continue to cook even after you take them out of the oven. Of course, if you'd rather not have your egg yolks runny, then you can leave them in a little longer.
Preheat the oven to 350 degrees.
In a large sauté pan, heat the olive oil over medium-high heat. When hot, add the shallots and cook until soft and tender, about 3-5 minutes. Add the garlic and cook for one minute more. Then add the tomatoes and turn the heat up to high. Season with salt, pepper, and the chile flakes if using, and stir.
When the tomatoes have begun to blister and soften, about 5-7 minutes, add the spinach and combine with the rest of the ingredients, until all the leaves are coated. Cook for about 30 seconds to a minute more, until most of the leaves are wilted. Season as needed and then remove from the heat.
In either 4 ramekins or 1 or 2 ovenproof dishes place the tomato-spinach mixture, creating a bed for the eggs. Crack the eggs into the pan(s), distributing them evenly. Add a touch of cracked pepper and bake in the oven for about 10-12 minutes, until just before the egg whites set.
Remove and garnish with the cheese. Serve immediately in the ramekins or pans, making sure not to burn yourself because they will be quite hot. (And make sure not to forget the bread!)