Place butter and sugar in a large mixing bowl (or a stand mixer fitted with the paddle attachment). Cream until light and fluffy, 1-2 minutes.
Add egg, vanilla, salt, baking powder, and cocoa and mix until combined, then mix in flour until smooth.
Lay a sheet of wax or parchment paper on a work surface. Place half the cookie dough in the center and press to form a disk. Cover with another sheet of paper and roll to between ¼-1/2 inch thickness (as desired). Repeat with the second half of the dough.
Chill dough until firm, at least 30 minutes.
Preheat oven to 350°F. Line cookie sheets with parchment paper or silicone baking mats.
Remove half the dough from the refrigerator and use cookie cutters to cut desired shapes.
Place 2 inches apart on cookie sheets. Chill for 15 minutes then bake cookies until no longer glossy, approximately 10-15 minutes (depending on thickness and size).
Reroll leftover dough and chill while cutting shapes from the second half. Continue until all your cookie dough is cut into shapes.
Once cookies are baked, cool completely before frosting.
To make the frosting, beat butter and sugar with a stand mixer until crumbly. Add salt and vanilla, then add 3 tablespoons of milk and mix until smooth, adding more milk 1 teaspoon at a time until you get a piping consistency.
Frost cookies as desired. Let sit at room temperature to crust, then you can stack them.
To decorate as seen in the photos, use a Wilton round tip, #4 or #5. Pipe the edges of each cookie then fill in with the same tip. Use an offset spatula to smooth the frosting and then add any details.
Store cookies in an airtight container at room temperature for up to 4 days or freeze for up to 2 months.