Whisk the flour, cocoa powder, baking soda, and salt together in a medium bowl. In a large bowl using a hand mixer or a stand mixer fitted with a whisk or paddle attachment, beat the butter until fluffy. Add sugars and beat together on high speed until completely smooth and creamy, about 1 minute. Scrap down the sides of the bowl. Add the eggs and vanilla extract then beat on high speed until combined, about 1 minute. Scrape down the sides and up the bottom of the bowl and beat again as needed to combine. Add red food coloring and beat until mixed well.
Add the dry ingredients to the wet ingredients and mix on low until combined. If you are using them, fold in white chocolate chips. Wrap or cover dough with plastic wrap and place into the fridge to chill for at least 30 minutes and up to 3 days.
Making the icing
Mix cream cheese and melted butter together until smooth. Sift in powdered sugar then add vanilla extract, and butter or milk until it reaches your desired consistency. You can either use a spoon to decorate cookies free-hand or use a piping bag or a small squeeze bottle for more precise designs.
To bake
Preheat oven to 350º F. Remove dough from the fridge. Prepare a baking sheet with nonstick spray or parchment paper. Use a spoon or ice cream scoop to make even-sized balls of dough. Place each cookie on the baking sheet. Bake for about 9-11 minutes or until the edges begin to crisp and turn dark red. Make sure the cookies are cool before frosting them.
Notes
The cream cheese glaze will be thick, but it should be thin enough to be squeezed through one of those plastic squeeze bottles or a very small pastry decorating tip.
To thin out the glaze even more, you can either add small amounts of milk and melted butter. If you want the glaze to harden, use butter as it will harden as the butter cools. Adding milk will make a glaze that is looser and it will coat the cookies differently. Add 1 teaspoon at a time until it reaches the desired consistency.