Preheat the oven to 350 F/176 C. Whisk together the flour, sugar, salt, baking soda and cocoa powder, or use a sifter.
In a separate bowl whisk together the egg, oil, vinegar, vanilla extract, (sour cream - optional) and water. If using hot water/coffee add it later.
Add the dry mixture a third of it at a time to the egg mixture, use a whisk, hand mixer, or wooden spoon. Scrape the sides of the bowl with a spatula as necessary. The batter is complete. If using the hot water/coffee add it after adding the flour mixture. Line a cupcake/muffin pan with paper cups and then scoop in some batter into each one. Fill them about 2/3rds of the way. Bake in the oven, middle rack position, for 15 to 18 minutes, until a toothpick comes out clean when poked in the middle. It may take a little longer depending on the oven. Allow the cupcakes to cool for a few minutes and then place them on a wire rack to cool while you make the frosting.
In a medium bowl, mix the softened cream cheese until smooth, then add the butter and vanilla extract and mix. Next, add the powdered sugar, 1 cup at a time until you get your desired consistency.
Frost the cupcakes with a knife or use a piping bag. You can also add the frosting to a large bag and snip off the corner and use it like a piping bag. Enjoy!