Warm the milk: Heat the milk until warm to the touch, not hot. If using active dry yeast, sprinkle it over the milk with a pinch of sugar and rest 5–10 minutes until foamy.
If using instant yeast, you can add it directly to the dry ingredients.
Mix the dough: In a large bowl (or stand mixer), combine flour, sugar, yeast, and salt. Add the warm milk, egg, vanilla, and softened butter. Mix until a shaggy dough forms.
Knead to smooth: Knead by hand on a lightly floured surface for 8–10 minutes, or in a mixer with a dough hook for 5–7 minutes, until the dough is smooth, slightly tacky, and elastic.
It should pull away from the bowl cleanly. Add a tablespoon of flour at a time only if very sticky.
First rise: Shape the dough into a ball and place in a lightly greased bowl. Cover and let rise in a warm spot until doubled, about 60–90 minutes.
Roll and cut: Turn the dough out onto a lightly floured surface.
Roll to about 1/2 inch (1.25 cm) thick. Cut rounds with a 3-inch (7.5 cm) cutter and use a 1-inch (2.5 cm) cutter for the centers. Gently gather and re-roll scraps once.
Second rise: Place cut donuts and holes on parchment-lined trays, leaving space.
Cover loosely and let rise until puffy, 30–45 minutes. They should look lighter and slightly domed.
Heat the oil: In a heavy pot, heat 2–3 inches of oil to 350°F (175°C). Use a thermometer for accuracy.
Keep the temperature between 340–360°F (171–182°C).
Fry the donuts: Fry 2–3 at a time, about 1–1 1/2 minutes per side, until golden. Use a slotted spoon to flip and remove. Drain on a wire rack set over a sheet pan.
Fry donut holes for about 1 minute total, shaking the basket or turning once.
Make the glaze: In a bowl, whisk powdered sugar, vanilla, salt, and 3 tablespoons of milk. Add more milk, a teaspoon at a time, until the glaze is smooth and pourable but not watery. It should coat a spoon in a thin, even layer.
Dip and set: When donuts are warm but not hot, dip the top of each into the glaze, let excess drip, then set back on the rack.
For a classic fully glazed finish, dip both sides. The glaze will set in 10–15 minutes.
Enjoy fresh: Eat warm for peak texture. The crumb will be soft and tender, and the glaze lightly crisp on the surface.