Preheat your oven to 425°F (220°C).
In a saucepan, combine water, butter, and salt; bring to a boil.
Remove the saucepan from heat and stir in flour until a ball forms.
Return to low heat, stirring until the dough dries slightly.
Transfer the dough to a mixing bowl and let it cool for a few minutes.
Add eggs one at a time, mixing well after each addition.
Pipe the choux pastry onto a baking sheet lined with parchment paper.
Bake for 20-25 minutes until golden brown.
Once cooled, whip the heavy cream with powdered sugar and vanilla until stiff peaks form.
Fill each cream puff with whipped cream using a pastry bag.
Prepare the caramel by melting sugar in a saucepan until golden brown.
Dip the tops of the filled cream puffs in caramel before stacking them.
Assemble the cream puff tower, starting from the base and working upwards.
Drizzle or decorate the tower with any additional caramel or chocolate if desired.