Preheat oven to 350°F (175°C). Grease and flour two 8-inch round cake pans or one 9x13 inch pan. Line bottoms with parchment paper for easy removal.
In a large bowl, whisk together flour, sugar, cocoa powder, baking soda, baking powder, and salt until well combined.
2 cups all-purpose flour, 2 cups granulated sugar, 3/4 cup unsweetened cocoa powder, 2 teaspoons baking soda, 1 teaspoon baking powder, 1 teaspoon salt
In a separate medium bowl, whisk eggs, buttermilk, oil, and vanilla until smooth. Add wet ingredients to dry ingredients and mix just until combined.
2 large eggs, 1 cup buttermilk, 1/2 cup vegetable oil, 2 teaspoons vanilla extract
Carefully pour hot water or coffee into the batter, mixing on low speed until smooth. The batter will be thin but this is normal.
1 cup hot water or hot brewed coffee
Pour batter evenly into prepared pans and bake for 30-35 minutes, or until a wooden skewer inserted into the center comes out clean.
Let cakes cool in pans on a wire rack for 10-15 minutes before inverting onto the rack to cool completely before frosting.
For the frosting, beat softened butter in a large bowl with an electric mixer until creamy, about 2 minutes.
1 cup unsalted butter
Gradually add sifted powdered sugar and cocoa powder, alternating with milk or cream, beating on low speed and increasing to medium until light and fluffy, about 3-4 minutes.
3 1/2 cups powdered sugar, 1/2 cup unsweetened cocoa powder, 3-4 tablespoons heavy cream or milk
Add vanilla extract and salt to the frosting, adjusting consistency with more milk (if too thick) or powdered sugar (if too thin).
2 teaspoons vanilla extract, 1/4 teaspoon salt
When cakes are completely cool, place one layer on a serving plate, spread frosting on top, add second layer, and frost the entire cake. Decorate according to your theme.