Mix the dry ingredients: In a large bowl, whisk flour, baking powder, baking soda, salt, and nutmeg until well combined.
Whisk the wet ingredients: In a separate bowl, whisk granulated sugar, brown sugar, eggs, buttermilk, sour cream, melted butter, and vanilla until smooth.
Bring the dough together: Pour the wet mixture into the dry ingredients. Stir with a spatula just until no dry spots remain.
The dough will be soft and slightly sticky.
Chill the dough: Cover the bowl and refrigerate for 45–60 minutes. This firms it up and helps with shaping and frying.
Prepare your station: Lightly flour a work surface and a rolling pin. Line a sheet pan with parchment and dust lightly with flour.
Have a donut cutter (or two round cutters, 3-inch and 1-inch) ready.
Roll and cut: Turn the dough onto the floured surface. Gently pat or roll to about 1/2 inch thick. Cut donuts and holes, collecting scraps to re-roll once.
Transfer cut donuts to the floured parchment and refrigerate 15 minutes.
Heat the oil: In a heavy pot or Dutch oven, add 2 inches of oil. Heat to 350°F (175°C), using a thermometer to monitor. Keep a wire rack set over a sheet pan nearby.
Fry in batches: Carefully add 2–3 donuts at a time.
Fry 60–90 seconds per side, turning once, until deep golden with craggy edges. Donut holes will take 45–60 seconds total. Adjust heat to keep oil near 350°F.
Drain and cool: Transfer fried donuts to the rack.
Let cool 5 minutes before glazing, so the glaze sets but still absorbs into the cracks.
Make the glaze: Whisk powdered sugar, milk, vanilla, and a pinch of salt until smooth and pourable. Add more milk a teaspoon at a time if needed.
Glaze and set: Dip each donut top-side down, let excess drip, then return to the rack. For a thicker finish, double-dip after the first coat sets 2–3 minutes.
Serve: Enjoy warm for maximum crunch.
The edges stay crisp for a few hours, then soften slightly but remain delicious.