Preheat the oven to 425°F and line two baking sheets with parchment paper or silicone mats.
Combine the water, milk, butter salt, and granulated sugar together in a medium saucepan over medium heat and stir until the butter has melted. Bring the mixture up to a rolling boil and remove from the heat. Immediately add in the flour and stir for about 1 minute until it's completely incorporated and the dough clumps together into a smooth ball.
Place the dough in the bowl of a stand mixer fitted with a paddle attachment. Let rest for about 10 minutes or until the internal temperature of the dough is below 125°F.
Turn the mixer to low and add in the eggs one a time. Wait until each egg is fully incorporated before adding in the next. Beat the dough until the mixture is shiny, thick, and smooth with a pipeable consistency.
Transfer the choux pastry to a pastry bag fitted with a ½ inch round piping tip. Pipe 1 inch wide mounds of dough onto your lined baking sheet, about 2-3 inches apart. Lightly dip your finger in water to smooth down the tops of the mounds. Then brush lightly with egg wash if desired.
Bake at 425°F for 15 minutes, then reduce the oven temperature to 350°F and bake for an additional 15-20 minutes or until the pastries are puffed up and golden brown. DO NOT open the oven while the puffs are baking!!
Remove from the oven and immediately cut in half to allow excess steam to escape (this keeps the shells nice and crisp). Allow to cool completely before filling.
Fill with homemade whipped cream and drizzle with melted dark chocolate. Cream puffs are best eaten the same day.
Cover and store leftover filled pastries in the refrigerator for up to 3 days. Store the unfilled pastries in an airtight container at room temperature for 1 day, or in the fridge for up to 5 days. Freeze the unfilled puffs for up to two months.