Heat the oven to 350 and line cupcake pan with liners. In a large bowl, whisk the flour, baking powder, sugar and salt together.
In another bowl, whisk the coconut milk, oil, egg yolks and vanilla together. Gently mix this into the dry ingredients until barely combined and mix in the coconut if using in the batter.
In a stand mixer, add the whites and cream of tarter and mix on medium high until soft peak stage. Add the sugar and continue whisking until stiff peaks. Gently fold the whites into the batter, making sure not to deflate.
Fill the muffin cups 3/4 full and bake for 10-15 minutes, depending on your oven. These should puff up and be fully cooked when a toothpick is inserted in the center, but you don't want to brown them so watch them carefully.
Remove to a cooling rack and fully cool before frosting.
To make the buttercream: Add the butter to a stand mixer bowl and using the paddle, beat it until it is light and fluffy on medium high speed. Add the powdered sugar and whip again. Add in the puree or the artisan flavor and whip further. If not using puree, add in the cream a tbsp at a time while mixing and keep mixing until fluffy. Transfer to a piping bag and pipe onto your cupcakes and top with toasted coconut. I toast my coconut by placing in the oven on a sheet pan for 3-5 minutes at 350. You have to watch it closely and stir it or it will burn.