Warm the milk: Heat 1 cup of whole milk until warm to the touch (about 105–110°F). It should feel like a warm bath, not hot.
Bloom the yeast: In a large bowl, combine warm milk, 2¼ teaspoons active dry yeast, and 1 tablespoon sugar.
Let it sit 5–10 minutes until foamy. If it doesn’t foam, your yeast may be dead—start over.
Mix the dough: Add 1/3 cup sugar, 2 large eggs, 4 tablespoons melted butter (cooled), 1 teaspoon vanilla, and 1 teaspoon salt. Stir in 3½–4 cups of flour, starting with 3½.
Mix until a soft, slightly tacky dough forms.
Knead until smooth: Knead by hand or with a stand mixer (dough hook) for 6–8 minutes. The dough should be supple, springy, and slightly sticky but pulling away from the bowl. Add a little more flour only if needed.
First rise: Place dough in a lightly oiled bowl, cover, and let rise in a warm spot until doubled, about 1–1½ hours.
Roll and cut: Turn dough onto a lightly floured surface.
Roll to about 1/2-inch thick. Cut out donuts with a 3-inch cutter and a smaller cutter for holes. Gather scraps, rest them 10 minutes, then re-roll and cut again.
Second rise: Place cut donuts on parchment-lined baking sheets.
Cover lightly and let rise 30–45 minutes, until puffy and slightly jiggly when you nudge the tray.
Heat the oil: Pour 2–3 inches of oil into a heavy pot. Heat to 350°F, maintaining 340–360°F while frying. Use a thermometer for best results.
Fry the donuts: Fry 2–3 at a time.
Cook 45–60 seconds per side, until golden. Donut holes take less time. Transfer to a wire rack set over a baking sheet.
Glaze while warm: Whisk 2 cups powdered sugar, 3–4 tablespoons milk, and 1 teaspoon vanilla until smooth.
Dip warm donuts on both sides and let excess drip off. For cinnamon sugar, toss warm donuts in a mix of 1/2 cup sugar and 1–2 teaspoons cinnamon.
Let set and enjoy: Allow glaze to set 10–15 minutes. Eat warm for peak happiness.