01 - Preheat oven to 350°F. Grease and flour two 8-inch round cake pans, then line the bottoms with parchment paper for easy release.
02 - Sift together flour, granulated sugar, cocoa powder, baking powder, baking soda, and salt into a large mixing bowl. Whisk to ensure even distribution.
03 - Add eggs, milk, vegetable oil, and vanilla extract to the dry ingredients. Beat on medium speed with an electric mixer until smooth and thoroughly combined, about 2 minutes.
04 - Carefully pour in boiling water while mixing on low speed. Continue mixing until batter becomes glossy and thin, about 1 minute. The batter will be quite runny.
05 - Divide batter evenly between the prepared pans. Bake for 30-35 minutes until a wooden toothpick inserted into the center comes out clean or with just a few moist crumbs.
06 - Let cakes cool in pans for 10 minutes before running a knife around the edges. Invert onto wire racks and cool completely, about 1 hour, before frosting.
07 - Beat softened butter in a large bowl until creamy and light. Gradually sift in powdered sugar and cocoa powder, beating on low speed until incorporated. Scrape down the bowl as needed.
08 - Add vanilla extract and salt. Beat in milk 1 tablespoon at a time until frosting reaches smooth, spreadable consistency. Increase speed to high and whip for 2 minutes until fluffy.
09 - Place one cooled cake layer on a serving plate. Spread about one-third of the frosting evenly over the top. Position the second layer on top.
10 - Spread remaining frosting over the top and sides of the cake. Use an offset spatula to create smooth, even surfaces. Decorate as desired and slice to serve.