Preheat the oven to 350°F. Line two cupcake pans with ~18 cupcake liners.
Whisk the soy milk and vinegar together and let sit for about 10-15 minutes.
In the meantime, in a large mixing bowl, whisk the flour, cocoa powder, sugar, baking soda & powder, and salt.
Add the milk mixture, oil, and vanilla to the dry mixture. Mix just until combined.
Add in the warm water and mix until the batter is smooth and silky.
Pour the batter into the cupcake liners, filling each up ~3/4 of the way.
Bake for 16-20 minutes, until a toothpick comes out clean or with just crumbs on it (don’t overcook or they turn out dry).
For the buttercream, add the vegan butter to a mixing bowl. Beat for a couple minutes, until fluffy.
Add 2 cups of powdered sugar and cocoa powder and beat until combined.
Add 1 tbsp milk and vanilla continue to beat. Add more milk, as necessary, until you reach the desired consistency. If the frosting gets too liquidy, add more powdered sugar. You want a smooth but firm consistency.
Once the cupcakes are cooled**, spread or pipe the frosting (we prefer a Wilton 2D tip). Keep plain or add any toppings you’d like!