Prep the butter. Cut the room-temperature butter into chunks.
It should be soft enough to press a finger into, but not greasy or shiny. Slightly cool butter whips fluffier and holds better.
Cream the butter. In a stand mixer with the paddle attachment or a large bowl with a hand mixer, beat the butter on medium-high for 3–5 minutes until very pale and fluffy. Scrape the bowl at least twice.
Add flavor base. Mix in vanilla and a small pinch of salt.
Start with 1 teaspoon vanilla, then adjust later. Beat for 20–30 seconds to combine.
Stream in the condensed milk. With the mixer on medium, slowly pour in the sweetened condensed milk in a thin stream. Take 1–2 minutes to add it all.
This helps prevent curdling and keeps the texture smooth.
Whip until silky. Increase speed to medium-high and beat for 1–2 minutes until the frosting looks glossy and spreads easily. If it seems loose, chill the bowl for 10 minutes, then beat again briefly.
Taste and adjust. Add another pinch of salt if it tastes overly sweet. If you want a stronger vanilla note, add up to 1 more teaspoon and mix to combine.
Optional flavoring. Fold in sifted cocoa powder (start with 2 tablespoons), a spoonful of jam, a bit of espresso powder, or caramel.
Add gradually and beat just until smooth. Avoid adding too much liquid at once.
Use immediately. Frost cakes or cupcakes right away, or keep the bowl covered if you’re not using it within 10–15 minutes to prevent crusting on the surface.