Using a heart template cut out from card stock, trace evenly spaced hearts onto pieces of parchment paper sized to fit 2 cookie sheets. Place the parchment on the cookie sheets so that the side you have drawn on is facing down. Set aside.
In a medium bowl, whisk together the flour, cocoa powder, baking powder and salt.
In the bowl of a stand mixer fitted with the paddle attachment, cream together the butter and brown sugar on a medium-high speed until light and fluffy, about 2 minutes.
Beat in the egg until incorporated, scraping down the sides of the bowl as necessary.
Blend in the vanilla.
With the mixer on low speed, beat in about 1/3 of the dry ingredients, followed by 1/2 the buttermilk, beating each addition just until incorporated. Repeat so that all the buttermilk has been added and then mix in the final 1/3 of dry ingredients. Do not overbeat.
Blend in the food coloring.
Transfer the batter to a pastry bag fitted with a large, plain round tip.
Pipe the batter onto the parchment paper using the heart tracings as a guide.
Bake 7 to 9 minutes or until the tops are set, rotating the baking sheets halfway through.
Allow the cookies to cool on the baking sheets at least 10 minutes until they can easily be transferred to a cooling rack.
To make the cream cheese frosting, beat the cream cheese and butter on medium-high in the bowl of a stand mixer fitted with the paddle attachment. Beat about 2 to 3 minutes on medium-high speed until well combined and smooth.
Mix in the vanilla extract.
Gradually beat in the confectioners' sugar until totally incorporated, increase the speed and then beat until smooth.
Transfer the frosting to a clean pastry bag fitted with a plain round tip. Pair the cookies up by shape and size.
Pipe the frosting onto the flat side of 1 cookie of each pair, leaving the edges clear.
Sandwich the cookies together so the flat sides are facing each other and press gently to help filling reach the edges.