In a large mixing bowl, sift together the flour, cocoa powder, salt, and baking soda. Set aside.
In the bowl of a stand mixer fitted with a paddle attachment (or using a handheld mixer) beat the butter until light and fluffy. Add the sugar and continue beating until well mixed.
Add the eggs one at a time, ensuring the egg is fully incorporated into the mixture before adding the next.
Add in the vanilla extract and scrape down the sides of the bowl with a soft silicone spatula.
Add in the vinegar and food coloring and continue to mix on medium speed.
Stir in 1/3 of the dry ingredients, alternating with the ½ cup of the buttermilk, and stir until just combined. Repeat the process, ending with the remaining 1/3 of the dry ingredients. Make sure not to overmix the batter.
Line two 12-cup cupcake tins with cupcake liners and scoop the batter into each cupcake liner until about 2/3 full. TIP - you will have enough batter leftover for two extra cupcakes that will be used for the garnish.
Place the cupcakes in the preheated oven for 14 to 18 minutes (depending on how hot your oven runs, this time will vary). Test doneness with a toothpick, if it comes out clean when inserted, the cupcakes are ready.
Remove the cupcake tins from the oven and place them on a wire rack to cool while baking the remaining two cupcakes. Set the two cupcakes aside (leaving them unfrosted).
Making the Frosting
In the bowl of your stand mixer or (handheld mixer) beat the butter until light and fluffy, add in the cream cheese, and continue beating until smooth.
Carefully add in the powdered sugar ¼ cup at a time, mixing on a low speed so the powdered sugar doesn’t fly everywhere. Continue to add the powdered sugar in this manner.
Add in the salt and the vanilla extract and beat on medium/high speed for 2-3 minutes until airy and light.
Place the frosting in a large piping bag fitted with Wilton tip 1G, or similar drop flower tip.
Once the cupcakes have cooled, frost the 24 cupcakes piping them using an even circular motion. If you find your frosting is getting too runny, place the piping bag in the fridge for 5-10 minutes.
Take the remaining two unfrosted cupcakes and crumble them into a small bowl to use as a garnish on top of the frosting.
Notes
The reason these cupcakes have that light and airy texture is a result of using cake flour instead of all-purpose flour, which produces a lighter more tender crumb. You can make your own cake flour by sifting together 2 1/2 cups of all-purpose flour with 5 tablespoons of cornstarch and continue with the recipe directions.
If you don’t have buttermilk, you can make your own by stirring 2 teaspoons of white vinegar into 1 cup of whole milk.
I highly recommend using a digital kitchen scale to weigh your ingredients. This ensures the perfect cupcake that won’t be too dry. If you don’t have a digital kitchen scale, then you can fluff, scoop, and level your dry ingredients with the back end of a butter knife for an accurate measure.
You will want both your cream cheese and butter to be at room temperature before starting, this way you don't end up with lumpy frosting. Cut both into cubes and allow them to rest at room temperature for 30-45 minutes, do not microwave or melt them.
It is important to purchase ‘brick-style’ cream cheese instead of spreadable cream cheese. These two types of cream cheese each have different properties which will affect the outcome of your frosting. The brick-style cream cheese will give you the perfect frosting for piping.
To ensure a nice stable cream cheese frosting that is perfect for piping, make sure your butter is not too soft. You may also choose to add another ½ cup of powdered sugar for extra stability when frosting your cupcakes.
To evenly fill each cupcake liner with the batter, you can use a large cookie scoop.