Prepare the oven and pan. Preheat the oven to 350°F (175°C). Line a 12-cup muffin pan with paper cupcake liners and set aside.
Mix the dry ingredients. In a medium bowl, whisk together the flour, cocoa powder, baking soda, and salt until evenly combined. Set aside.
Cream the butter and sugar. In a large mixing bowl, beat the softened butter and granulated sugar with an electric mixer until light and fluffy, about 2 to 3 minutes.
Add the wet ingredients. Beat in the egg until fully incorporated. Add the vanilla extract, white vinegar, and red food coloring, mixing until the color is evenly distributed.
Combine the batter. Add the dry ingredients in two additions, alternating with the buttermilk. Begin and end with the dry ingredients, mixing on low speed just until combined. Scrape down the sides of the bowl as needed. Avoid overmixing to keep the cupcakes tender.
Fill the cupcake liners. Divide the batter evenly among the 12 liners, filling each about two-thirds full.
Bake the cupcakes. Bake for 16 to 19 minutes, or until a toothpick inserted into the center comes out clean or with a few moist crumbs. Avoid overbaking, as this can make the cupcakes dry.
Cool completely. Let the cupcakes rest in the pan for about 5 minutes before transferring them to a wire rack. Allow them to cool completely before adding the frosting.
Prepare the cream cheese frosting. Beat the softened cream cheese and butter together until smooth and creamy. Add the powdered sugar gradually, followed by the vanilla extract and a pinch of salt. Beat until fluffy, scraping down the bowl as needed.
Frost and serve. Spread or pipe the cream cheese frosting onto the cooled cupcakes. Serve immediately or refrigerate until ready to enjoy.