Line two baking sheets with parchment paper and prepare a piping bag with a round tip.
Sift the powdered sugar, almond flour, and cocoa powder together into a bowl. Set aside.
In another bowl, beat the egg whites with cream of tartar until soft peaks form. Gradually add granulated sugar and beat until stiff, glossy peaks form.
Gently fold the dry ingredients into the meringue in batches. Mix until the batter flows like lava and forms a ribbon when lifted.
Transfer the batter to a piping bag and pipe 1.5-inch circles onto the prepared baking sheets, spacing them about 1 inch apart.
Tap the baking sheets on the counter several times to release air bubbles. Let sit at room temperature for 30 minutes, or until tops are dry to the touch.
Preheat the oven to 300°F (150°C). Bake one sheet at a time for 14–16 minutes, rotating halfway through. Let cool completely before removing from the parchment.
To make the ganache, heat the heavy cream in a saucepan until just simmering. Pour over the chopped chocolate and let sit for 2 minutes, then stir until smooth. Add butter if using.
Let the ganache cool until thickened enough to pipe. Pipe a small amount onto the bottom of one shell and sandwich with another.
Refrigerate macarons in an airtight container for at least 24 hours to mature for best texture. Bring to room temperature before serving.