Start by positioning your oven racks in the upper and lower thirds, then preheat to 400°F. Line two baking sheets with parchment paper.
In a medium saucepan, combine water, butter, and salt. Heat over medium, stirring occasionally until the butter melts completely and the mixture comes to a rolling boil.
Remove from heat and dump in all the flour at once. Stir vigorously with a wooden spoon until the mixture forms a smooth ball and pulls away from the sides of the pan.
Return the pan to medium-low heat and cook for about 2 minutes, stirring constantly.
Transfer the dough to a mixing bowl and let it cool for 5 minutes. It should be warm but not hot when you touch it.
Add the eggs one at a time, beating well after each addition. The dough will look separated and slimy at first – that’s normal! Keep mixing until it becomes smooth and glossy.
Transfer the dough to a piping bag (or use two spoons). Pipe 2-inch rounds about 2 inches apart on your prepared sheets. If you get little peaks, wet your finger and gently pat them down – they’ll burn otherwise.
Bake for 20-25 minutes, rotating pans halfway through. Don’t open the oven door before 20 minutes or they might collapse! They’re done when they’re deeply golden brown.
As soon as they come out, poke a small hole in the side of each puff with a knife to let steam escape. This keeps them crisp. Let them cool completely on the baking sheets.