Make the choux pastry: In a medium saucepan, combine water, butter, and salt. Bring to a boil.
Add flour all at once and stir vigorously until mixture pulls away from the sides and forms a ball.
Remove from heat and let cool slightly (about 5 minutes).
Beat in eggs one at a time, mixing well after each. Dough should be thick, shiny, and pipeable.
Preheat oven to 400°F (200°C). Line baking sheets with parchment paper.
Spoon or pipe tablespoon-sized mounds of dough onto baking sheet, spacing 2 inches apart.
Bake for 20-25 minutes until golden brown and puffed. Turn off oven and let sit for 5 minutes with door slightly open.
Cool completely before filling.
Make the filling: Whip cream with powdered sugar and vanilla until stiff peaks form (if using).
Fill the profiteroles: Cut a small slit in the side of each puff and pipe or spoon in the whipped cream or custard.
Make the chocolate dip: Melt chocolate and butter together in a microwave or double boiler until smooth.
Dip the tops of filled profiteroles in the chocolate and set on a tray to set.
Chill until ready to serve.