Heat the oven to 425 °F and line a rimmed baking sheet with Silpat or parchment paper. The lined pan keeps the bottoms from sticking and helps the puffs bake evenly.
Put 1/2 cup water, 1/2 cup whole milk, 8 Tbsp butter, 1 tsp sugar, and 1/4 tsp salt in a medium saucepan and bring the mixture just to a boil over medium heat. As soon as the butter melts and the liquid reaches a full boil, take the pan off the heat so the flour can go in all at once.
Stir in 1 cup flour all at once with a wooden spoon until no dry spots remain. The mixture will quickly turn thick and shaggy, which is exactly what you want at this stage.
Return the pan to medium heat and stir constantly for 1 1/2 to 2 minutes. The dough should pull into a smooth ball, and a thin film will form on the bottom of the pan as excess moisture cooks off.
Move the dough to a large mixing bowl and beat on medium speed for 1 minute to cool it slightly. The dough should still be warm but not so hot that it cooks the eggs on contact.
Add the 4 eggs one at a time, beating well after each addition, then beat for 1 minute more. At first the dough may look separated, but keep mixing until it turns smooth, glossy, and falls in a thick ribbon when lifted.
Transfer the dough to a piping bag fitted with a 1/2" round tip and pipe 28 puffs that are 1 1/2” wide and 1/2” tall, spacing them 1" apart. If the tops have little points, smooth them gently with lightly wet fingertips so they bake more evenly.
Bake in the center of the oven at 425 °F for 10 minutes, then lower the heat to 325 °F without opening the oven and bake 20 to 22 minutes more. The shells are done when they are golden brown, feel very light, and sound hollow when tapped.
Transfer the baked shells to a wire rack and cool them completely. They need to be fully cool before filling so the cream stays fluffy and the shells stay as crisp as possible.