Warm the milk right. It should feel warm, not hot.
If it’s too hot, it can kill the yeast. Aim for around 105–110°F (40–43°C).
Mix the dry ingredients. In a large bowl, whisk flour, sugar, yeast, and salt. Keep salt and yeast from direct contact until mixed, so the yeast stays happy.
Add the wet ingredients. Stir in warm milk, egg, melted butter, and vanilla.
Start with a spatula, then switch to your hands as it comes together into a soft dough.
Knead briefly. Knead on a lightly floured surface for 3–4 minutes, until smooth and elastic. The dough should be soft but not sticky. Add a sprinkle of flour if needed, but not too much.
First rise. Place the dough in a lightly greased bowl, cover, and let rise in a warm spot until puffy and nearly doubled, about 60–75 minutes.
Roll and cut. Turn the dough onto a floured surface.
Roll to about 1/2 inch thick. Cut circles with a 3-inch cutter or glass. Cut small centers with a bottle cap or piping tip to make the “donut hole.” Gather scraps, rest them for 5 minutes, then reroll and cut again.
Second rise. Place cut donuts on parchment-lined trays.
Cover lightly and let rise until slightly puffy, 20–30 minutes. They should look a bit airy but still hold shape.
Heat the oil. Pour oil into a heavy pot to a depth of 2–3 inches. Heat to 350°F (175°C).
Use a thermometer if you can; temperature matters for texture and color.
Fry the donuts. Fry 2–3 at a time, about 1–1.5 minutes per side, until golden. Don’t crowd the pot. Use a slotted spoon to flip and remove.
Let drain on a rack or paper towels.
Coat or glaze. For cinnamon sugar, toss warm donuts immediately. For glaze, dip warm (not hot) donuts, then set on a rack to dry for a few minutes.
Enjoy fresh. Donuts are best within a few hours. Soft inside, lightly crisp outside—exactly what you’re going for.