Preheat your oven to 350°F. Grease and flour two 9-inch round cake pans, or line the bottoms with parchment paper to help the cakes release cleanly after baking.
In a large mixing bowl, whisk together the flour, granulated sugar, baking soda, salt, and cocoa powder. Make sure the dry ingredients are evenly combined so the cake bakes with a consistent texture.
In a separate bowl, whisk together the vegetable oil, buttermilk, eggs, red food coloring, vanilla extract, and white vinegar. The buttermilk and vinegar help give red velvet cake its classic tender crumb.
Slowly pour the wet ingredients into the dry ingredients. Mix just until the batter is smooth and combined. Avoid overmixing, because too much mixing can make the cake dense instead of soft.
Divide the batter evenly between the prepared cake pans. Bake for 28 to 32 minutes, or until a toothpick inserted into the center comes out clean. The cakes should spring back lightly when touched in the center.
Let the cakes cool in the pans for about 10 minutes, then carefully turn them out onto a wire rack. Allow the cake layers to cool completely before adding frosting.
To make the frosting, beat the softened cream cheese and butter together until smooth and creamy. Add the powdered sugar one cup at a time, mixing well after each addition. Add the vanilla extract and salt, then beat until light and fluffy.
Place one cake layer on a serving plate and spread frosting over the top. Add the second cake layer, then frost the top and sides of the cake. Chill briefly before slicing if you want cleaner cuts.