Preheat the oven to 400 degrees and line a large baking sheet with parchment paper.
In a medium sized saucepan over medium heat, place the butter, salt, and water in. Slowly melt the butter, ensuring that you are not boiling away your water. Once the butter is completely melted, quickly bring the water to a boil by cranking up the heat to HIGH.
Remove the pot from the heat as soon as it comes to a boil, and add in your flour. Stir the flour in quickly and keep stirring until all the dough pulls away from the pot and forms a ball.
Place the dough into the bowl of an electric mixer (fitted with a paddle attachment) and let it cool for 10 minutes. Once it has cooled for ten minutes, turn your mixer on low speed and let it mix for 2 minutes to get more steam and heat out.
Now add your eggs one at a time a make sure each one is completely incorporated before adding the next egg. Scrape down the sides of the bowl before each addition.
Place your dough into a piping bag fitted with a large round tip. Pipe 12 2-inch circles onto the parchment. They should be about 1/2 inch high. The dough will puff up, so give at least 1 inch between each circle.
Bake for 30 minutes. When they come out you can pierce a small hole in each one to allow the steam to release.
For the filling, combine all of the ingredients into the bowl of your electric mixer (with a whisk attachment) and whisk together until mixture is stiff. This will take about 5 minutes.
Once the cream puffs are completely cooled slice them in half if you want to spoon the filling in. Or instead of slicing them in half, you can pipe the filling in using a small tip. Either one works great, so do what works for you.
For the frosting melt together the butter and chocolate in a microwave safe bowl. Stir together and slowly add your sifted powdered sugar. Add in 2-3 TBS of milk to get a thick, but somewhat runny consistency.
Spoon the frosting on top of each cream puff. It should spread just slightly. Refrigerate until serving time.