Soften the cream cheese and butter at room temperature until slightly soft to touch - not melted or too soft! Place the butter into a stand mixer bowl and use a whisk attachment to whisk the butter. Whisk on high speed for about 5 minutes, scraping down the sides of the mixing bowl often to get all the butter creamed.
Add the softened cream cheese next and whisk again for 2 to 3 minutes, scraping down the sides of the mixing bowl often, until the mixture is uniform and smooth.
Add the vanilla, optional cream cheese extract, salt and confectioner's sugar. Whisk on low speed first until the sugar is incorporated, then turn the speed up and whisk on high for 2 to 3 minutes, until the frosting is light and fluffy.
For a thicker, fluffier frosting, add an additional 2 cups confectioners sugar. For more flavor variations, check the post above! For storing the frosting, place it into an airtight container and refrigerator for up to 1 week. When ready to use, soften for at least 30 minutes at room temperature, then whisk again for a few minutes.