Preheat oven to 350°F. Line cupcake pans with liners.
Whisk flour, sugar, baking soda, cocoa, and salt in a large bowl.
Whisk buttermilk, oil, vinegar, and vanilla in a large measuring cup and whisk into dry ingredients until combined. Stir in food coloring carefully.
Fill cupcake liners about 2/3 full. The recipe makes about 12 cupcakes. Bake for 13-17 minutes, or until a toothpick comes out clean. Cool completely before frosting.
Make the frosting: Beat butter and cream cheese with a hand mixer in a large bowl until smooth, then mix in salt. Add powdered sugar 1 cup at a time and beat in between each addition. Add vanilla and continue mixing a smooth frosting forms. Frost cupcakes as desired.
Store in an airtight container in the refrigerator for up to 3 days or freeze for up to one month.
You can bake this as a 9-inch cake round. Bake for 25-40 minutes, or until a toothpick comes out clean.
Want 24 cupcakes, two 9-inch layers or a 9x13-inch cake? Double the recipe!