Preheat the oven to 350°F. Lightly spray an 8x8 baking dish with nonstick cooking spray (all of the cake ingredients will be mixed in the baking dish).
Add the flour, cocoa powder, sugar, baking soda, and salt to the baking dish. Whisk the dry ingredients together until well combined.
Using a dry ladle or small measuring cup, make 2 small round impressions and 1 larger impression in the dry ingredients.
Pour the vinegar into 1 of the small impressions. Pour the vanilla into the second small impression, and pour the vegetable oil into the largest impression. Pour the water over all of the ingredients.
Use a wooden spoon to stir all the ingredients together, making sure to get into the corners. Stir until all of the ingredients are well incorporated, and no dry streaks are visible.
Bake the cake on the middle rack for 30 to 35 minutes or until a knife inserted comes out clean. Allow the cake to cool completely before icing.
Using a stand mixer or a medium-sized mixing bowl and a handheld mixer on medium-high speed, cream the butter and creamy peanut butter until no streaks of butter are visible.
Lower the mixer speed to low and add the vanilla and half and half. Mix for another 30 seconds.
Keeping the mixer speed on low, slowly add the powdered sugar ½ cup at a time. Once all powdered sugar has been added, increase the mixer speed to medium and mix until the icing is smooth, about another 45 seconds to 1 minute.
Using a silicone spatula, frost the cake.
Notes
The vinegar is a must in this recipe, it reacts with the baking soda to give the cake the desired texture, doing the work eggs would do in other recipes. The cake does not come out tasting like vinegar!
If there are bubbles in your wet batter, gently tap your cake pan on the counter to release the bubbles.
Keep a close eye on the cake at the 30-minute mark, as you don’t want to overbake it.