In a 10-inch non-stick skillet heat 2 tablespoons of butter over medium-low heat until melted. Add in onions, a pinch of salt and pepper and sauté until onions are just tender.
Increase heat to medium and add in mushrooms, toss in the butter and cook for 5 minutes until caramelized.
Decrease the heat to low and add in the spinach, sprinkle with just a small pinch of salt and pepper and cook until wilted but still a bit firm.
Meanwhile, beat eggs with pinch of salt and pepper. Pour over slightly wilted spinach. Drop in 5 tablespoons of ricotta and sprinkle with cubed cheese. Cover and continue to cook (on low) until eggs are set and cheese has melted, about 8-10 minutes.
Remove and let cool for a few minutes before sliding frittata out of the pan and onto a cutting board. Sprinkle with coarse black pepper, red pepper flakes and torn fresh basil leaves.