Grease and line a baking pan with parchment paper, leaving 2–3 inches of overhang on the sides to act as handles. Set aside.
Preheat the oven to 350°F (180°C).
Combine the butter, cocoa powder, and vanilla in a microwave-safe bowl. Melt in 10-second intervals, stirring between each until smooth. Alternatively, melt the mixture in a saucepan over simmering water, whisking constantly. Once melted, set aside to cool.
¾ cup unsalted butter cut into small pieces (170g), ½ cup unsweetened cocoa powder, preferably dutch-processed (60g), 1 teaspoon vanilla
In a large bowl, whisk together the flour and baking powder. Set aside.
1 cup all purpose flour (125g), 1 teaspoon baking powder
In another large bowl, add eggs, sugar, and salt. Beat on high speed with an electric mixer for 5–8 minutes until the mixture is thick and you see ribbons fall off the beaters (seep photo in post).
1 ½ cups sugar (300g), 3 medium eggs, at room temperature, ¼ teaspoon salt
Gently mix the cooled cocoa mixture into the egg mixture until well combined.
Fold in the dry ingredients until no white streaks remain. Be careful not to overmix.
Pour the batter into the prepared pan and spread it evenly.
Bake for 35–45 minutes, or until a toothpick inserted into the center comes out with a few moist crumbs. Don't overbake or the brownies will become dry and hard.
Allow the brownies to cool in the pan for at least 20 minutes.
Use the overhanging parchment to lift the brownies out and place on a wire rack to cool completely before frosting.
Make the cream cheese frosting
Beat the butter on high speed until it's light, fluffy and smooth.
¼ cup (57g) unsalted butter, at room temperature
Gradually add the powdered sugar in 3 batches. Beat on high for a few minutes until the mixture is light and creamy. Scrape the bowl a few times in between as needed.
2 ½-3 cups (300g-400g) powdered sugar, sifted
Add the cream cheese and vanilla and beat until it's combined. Don't beat it too long, or it could get runny.
4 oz (113g) cream cheese, full-fat, 1 teaspoon vanilla
Frost the cooled brownies and cut into squares.
Enjoy!
Notes
Storage & Freezing
Store unfrosted brownies in an airtight container at room temperature for up to 4 days.
For frosted brownies, refrigerate in a single layer until the frosting sets, then transfer to an airtight container with parchment paper between layers.
Both frosted and unfrosted brownies stay fresh in the fridge for up to 10 days.
To freeze, place sliced brownies in a single layer in the freezer for 15-20 minutes to set the frosting. Then wrap each slice in plastic wrap and store in an airtight container or freezer bag for up to 3 months. Thaw in the refrigerator overnight.
Tips for Success
Choose quality cocoa. High-quality cocoa powder, preferably Dutch-process, results in a richer chocolate flavor.
Avoid overbaking. Test with a toothpick; brownies are ready when a few crumbs stick to it.
Use a metal pan. Metal pans bake faster than glass. Adjust baking time if using a glass pan.
Pan sizes. An 8x8-inch (20x20cm) pan is ideal. A 9x9-inch (23x33cm) pan will yield thinner brownies.
Make a double batch. For a 9x13 inch (23x33cm) pan, you can double the ingredients and bake the brownies about 5-10 minutes longer.
Line with parchment paper. This makes it easy to lift brownies out of the pan for clean cuts.
Cool before frosting. Ensure brownies are completely cool before frosting them, otherwise the frosting will melt.