Soften your ingredients: Let the cream cheese and butter sit at room temperature for 30–60 minutes. They should feel cool but pliable, not melty.
Beat the base: In a large bowl, beat the cream cheese and butter together on medium speed for 1–2 minutes until completely smooth and creamy. Scrape the bowl and beat again to remove any lumps.
Add vanilla and salt: Mix in the vanilla extract and a small pinch of salt.
This boosts flavor and keeps the frosting from tasting flat.
Sweeten gradually: Add powdered sugar 1/2 cup at a time, mixing on low after each addition. Once it’s mostly incorporated, increase to medium speed and beat until fluffy, about 30 seconds per addition.
Adjust consistency: For thicker, pipeable frosting, use closer to 3 cups of sugar. For a softer, spreadable finish, stop around 2 1/2 cups.
If needed, add 1–2 teaspoons of cream to loosen, or a few tablespoons more sugar to thicken.
Smooth and set: Beat for a final 30–60 seconds on medium until glossy and smooth. Avoid overmixing or it can become too soft.
Use or chill: Frost cooled cakes or cupcakes right away, or refrigerate the frosting for 15–20 minutes if you need a slightly firmer texture for piping.