01 - In a large mixing bowl, whisk together flour, yeast, sugar, and kosher salt until thoroughly combined.
02 - In a separate bowl, whisk buttermilk, whole milk, eggs, and melted butter until homogeneous.
03 - Create a well in the center of the dry ingredients. Pour the wet mixture into the well and stir with a wooden spoon until a shaggy, sticky dough forms.
04 - Turn dough onto a lightly floured surface. Knead for 6–8 minutes, adding minimal flour as needed, until smooth, elastic, and slightly tacky. Alternatively, use a stand mixer with dough hook for 5 minutes on medium-low speed.
05 - Place dough in a lightly oiled bowl, turning to coat all surfaces. Cover with plastic wrap or a damp kitchen towel. Let rise in a warm, draft-free area for 60–75 minutes, or until doubled in volume.
06 - Punch down risen dough to release air. Turn onto a floured surface and roll to ½-inch thickness. Using a sharp knife or pastry cutter, cut into 2-inch squares. Gather scraps, reroll once, and cut additional squares.
07 - Arrange squares on a parchment-lined baking sheet, leaving space between pieces. Cover loosely with plastic wrap and let rest for 20 minutes at room temperature.
08 - Pour vegetable oil into a deep pot or Dutch oven, filling 3 inches deep. Heat to 350°F, monitoring with a deep-fry thermometer for accuracy.
09 - Working in batches of 4–5 squares, carefully lower dough into hot oil. Fry for 1–2 minutes per side, flipping once, until puffed, golden brown, and cooked through. Remove with a slotted spoon and drain on paper towels.
10 - While beignets fry, whisk powdered sugar, milk, and vanilla extract in a medium bowl until smooth and ribbony. Adjust consistency with additional milk if too thick.
11 - Working while beignets are still warm, dip each square completely into the glaze. Lift, allowing excess to drip off for 5 seconds. Transfer to a wire rack set over parchment paper. Let glaze set for 10 minutes before serving warm.