Bring a saucepan of salted water to a boil. Add potatoes and cook until just tender, about 8 minutes. Drain and set aside.
In a 10-inch ovenproof skillet, warm olive oil over medium heat. Add onion and cook, stirring often, until softened, about 5 minutes. Add potatoes and cook, stirring occasionally, until potatoes begin to brown, about 5 minutes. Stir in spinach; season with salt and pepper.
Preheat broiler to high. Pour eggs into skillet, stirring briefly to distribute vegetables. Cook over medium-low heat, sliding a spatula under frittata occasionally to loosen, until set underneath but still wet on top, about 5 minutes.
Place skillet under broiler and cook until top is golden brown, 1 to 2 minutes. Cut into wedges and serve.