Was this page helpful?
Help improve this recipe for others.
Send this recipe to your inbox.
We'll email it straight to you - plus weekly cooking inspiration.
Ingredients
Some product links may be affiliates. If you buy through them, you're supporting the site and Pekin may earn a commission at no extra cost to you.
Dough
Fry & Finish
Optional Garnish/Serve
Method
Dough
- 1
Bloom yeast
Pour warm whole milk (about 100–110°F / 38–43°C) into a small bowl. Stir in 1 tsp of the granulated sugar and the active dry yeast. Let sit 5–8 minutes until foamy and fragrant.
- 2
Mix dry ingredients
In a large mixing bowl, whisk together the all-purpose flour, remaining 1 tbsp granulated sugar, and fine salt until evenly combined.
- 3
Combine wet and dry
Make a well in the center of the flour. Add the foamed yeast/milk, beaten eggs, melted butter, vanilla extract, lemon zest, and orange zest. Using a wooden spoon or dough hook on low speed, mix until a shaggy dough forms.
- 4
Knead
Turn the dough onto a lightly floured surface and knead for 6–8 minutes until smooth, slightly tacky, and elastic. If using a stand mixer, knead on medium-low for 5–6 minutes.
- 5
Fry & Finish
- 6
Prepare frying oil
Pour neutral frying oil into a heavy-bottomed pot to a depth of about 2–3 inches (use only enough to allow donuts to float). Heat over medium heat and attach a thermometer. Heat oil to 350°F (175°C).
- 7
Shape zeppoli
Gently deflate the risen dough and transfer to a lightly floured surface. Pinch off pieces about 1.5–2 tablespoons each (roughly 20–24 pieces for recipe). Roll each piece between your palms into a loose ball — do not overwork. Alternatively, for larger zeppoli, make 1–1.5 ounce balls. Place shaped pieces on a parchment-lined tray, cover lightly and let rest 10–15 minutes while oil heats.
- 8
Fry in batches
Working in small batches (4–6 balls depending on pot size), gently slide zeppoli into the hot oil. Fry, turning occasionally with a slotted spoon, until golden brown and puffed, about 2–3 minutes per side (total 4–6 minutes). Maintain oil temperature around 340–360°F (170–180°C).
- 9
Drain
Use a slotted spoon to remove zeppoli and transfer to a rack set over a baking sheet lined with paper towels to drain excess oil for a minute.
- 10
Citrus sugar coating
While the zeppoli are still warm, whisk together powdered sugar, fresh lemon juice, fresh orange juice, optional Grand Marnier, and 1/4 tsp fine sea salt in a shallow bowl to make a slightly thick, pourable glaze. Toss warm zeppoli gently in the glaze so they are lightly coated, or spoon the glaze over each ball. Alternatively, for a simpler finish, dust generously with powdered sugar.
- 11