Preheat the oven to 350°F. Line a muffin pan with 12 cupcake liners.
In the mixing bowl of a stand mixer with the paddle attachment fitted, add the butter and sugar. Beat until light and fluffy, about 3 minutes.
Add the eggs one at a time and beat until fully incorporated. Scrape down the bowl as needed.
In a small bowl, whisk together the cocoa powder, water, red food coloring, and vanilla extract until smooth.
Add the cocoa mixture to the beaten butter, eggs, and sugar. Beat until all ingredients are fully incorporated.
Turn the mixer to its lowest speed and add ⅓ of the buttermilk followed by ⅓ of the flour. Repeat until all the buttermilk and flour have been used up.
Add the salt, baking soda, and white vinegar to the cake batter and beat to combine. Do not overmix.
Fill the cupcake liners ¾ full. Bake for 20 minutes, or until the tops spring back when touched and a toothpick inserted comes out clean. Leave the cupcakes to cool for a few minutes in the pan before transferring them to a wire rack to cool completely.
Trim the tops of the cupcakes with a serrated knife and blitz into crumbs for decorating later.
In a bowl of a stand mixer fitted with the paddle attachment, add the cream cheese and butter. Beat on medium speed until creamy, scraping down the bowl as needed.
Switch to the whisk attachment. Add the sifted powdered sugar, vanilla extract, and salt to the mixing bowl. Beat slowly until combined, then increase speed and beat for 2 minutes until smooth.
Transfer the cream cheese frosting to a piping bag fitted with a star nozzle. Pipe swirls on top of each cupcake and decorate with crumbs.
Serve and enjoy!