To prepare, preheat your oven to 350 and line two muffin tins with 15 cupcake liners.
In a small mixing bowl, add your dry ingredients and whisk them together (flour, cocoa powder, baking powder, salt, baking soda) till there are no clumps of cocoa powder. Alternatively, pour your cocoa powder into the bowl through a fine mesh-strainer, to ensure there are no cocoa powder clumps.
In a large mixing bowl, add your coconut oil and sugar and whisk them together. Add your eggs, milk and vanilla and whisk them together.
Pour your dry ingredients into your wet ingredients, and stir together till everything is well incorporated.
Pour your cupcake batter into your cupcake liners, filling each cavity about 2/3 way full, till each cavity is full. Bake in the oven for 14-16 minutes, or till the cupcakes are springy to touch and a toothpick inserted comes out clean.
Let cool entirely before frosting.
In a large mixing bowl, add your butter and beat with a hand mixer till creamed.
Add your powdered sugar, cocoa powder, water and vanilla, and beat till smooth. If necessary, add a little more water to make the frosting smooth.
Pipe on top of your cooled cupcakes, and add sprinkles if desired before the frosting dries.
Store these cupcakes on the counter for 1-2 days, or in the fridge for one week.