Preheat the oven at 375℉/190℃. Grease the muffin tins lightly or line it with paper liners. I greased the paper liners lightly.
Whip the egg replacer powder and 2 tablespoons of water, preferably in a blender or with an electric mixer. The mixture should be frothy.
Add the non-dairy milk and ¼ cup of water to the egg replacer mixture and stir it well. Set aside.
In a separate bowl, cream the butter and sugar until light and fluffy. Add the vanilla extract and remaining ¼ cup of water to the butter and sugar mixture, and beat well.
Combine the egg replacer mixture and butter + sugar mixture together and mix just until combined. Set aside.
In a large bowl, stir together the flour, baking powder, and salt.
Slowly add the flour mixture little by little to the wet mixture as you mix with an electric beater until combined.
Fill the cupcake cups with the batter and bake for 20-30 minutes (mine took about 25 minutes) or until a toothpick or thin knife comes out clean.
Remove from the oven and place them on a wire rack to cool. Frost after cupcakes have completely cooled.
Cream the butter with an electric hand mixer until smooth. Add the powdered sugar slowly with the mixer on low speed.
Add the vanilla, milk and cocoa (if using) and beat well. Continue beating until the frosting is light and fluffy.
*The frosting can be stored in the fridge until you need it. Just re-whip before using.