Preheat the broiler. Position the rack 4 inches from the heat source.
In a large, nonstick frying pan with a flameproof handle, heat 1/2 teaspoon of the olive oil over medium heat. Add the garlic and saute until softened, about 1 minute. Stir in the spinach and cook until it wilts, 1 to 2 minutes. Transfer to a bowl. Set the frying pan aside.
In a bowl, whisk together the whole eggs and egg whites. Stir in 1/4 teaspoon of the salt and the pepper. Set aside.
Return the frying pan to medium heat and heat the remaining 1/2 teaspoon olive oil. Add the onion and saute until soft and translucent, about 4 minutes. Stir in the remaining 1/2 teaspoon salt, the bell pepper and the potatoes and cook until the potatoes begin to brown but are still tender-crisp, 4 to 5 minutes.
Spread the potatoes in an even layer in the pan. Spread the spinach evenly over the potatoes. Sprinkle with the basil. Pour in the beaten eggs and sprinkle evenly with the cheese. Cook until slightly set, about 2 to 3 minutes.
Carefully place the pan under the broiler and broil until the frittata is brown and puffy and completely set, about 3 minutes. Gently slide onto a warmed serving platter and cut into wedges. Serve immediately.