Set up the double boiler (bain-marie). Find a pot that will hold up a large metal bowl without touching the bottom. Fill the pot with water so the bowl is directly above the water, but not touching it. Heat the water to a gentle simmer.
Add the eggs (or the yolks and water for the yolk-only substitution) to a large heatproof mixing bowl. Add the white granulated sugar, then mix with a spatula until evenly distributed.
Place the bowl on top of the double boiler. Stir periodically and heat until the egg syrup reaches 160°F (71°C). Pour the hot syrup into a heat-proof bowl or measuring cup.
Optionally, whip the egg syrup to create a runny foam after it reaches the desired temperature. Allow the egg syrup (or foam) to cool to room temperature before adding to the butter.
Add the slightly softened butter to the stand mixer bowl. Mix on high speed for about 2 minutes until lighter in color and smooth.
Add the powdered sugar, vanilla extract, and a small pinch of salt to the butter, then whisk again at medium-high speed for 1-2 more minutes.
Ensure your egg syrup (or foam) is at room temperature, then add it to the butter in 4 to 5 additions, whipping for about 30 seconds after each.
Switch to the paddle attachment and mix on low speed for at least a few minutes to smooth out the frosting. Adjust for vanilla and salt, if needed.