Preheat the oven to 450°F. Line two baking sheets with parchment paper or silicone liners and set aside.
In a medium saucepan over medium heat, combine water, butter, granulated sugar, and salt and bring to a simmer. (Be sure the sugar and salt dissolve before the mixture begins to simmer.)
Once a simmer is reached, remove from the heat and stir in flour, all at once, until the mixture forms a ball. Let them stand for 5 minutes.
Add the eggs one at a time, mixing well by hand or with a hand mixer between each addition. Mix until the dough is smooth and shiny.
Transfer the dough to a pastry bag fitted with a large tip (or a resealable plastic bag with a hole cut in the corner). Be sure there are no bubbles in the piping bag and that the piping tip is in contact with the dough at all times to eliminate rippling.
Pipe small (1–1½-inch) rounds of dough onto the prepared baking sheets, spacing about 1 inch apart. Use your finger to press down the little peaks at the top of the dough, so the puffs are smooth. (Tip: Make sure all the cream puffs are the same size, so they all cook at the same rate.)
Bake for 10 minutes, then lower the temperature to 350°F and bake for 15 minutes more. The puffs are done when lightly browned and the insides are hollow. Pull out of the oven and use a toothpick or thin skewer to poke a hole in each shell. Let the puffs cool completely.