Finely chop your chocolate and melt it gently (or whatever chocolate you're using) over a double boiler or your preferred method. Set aside.
Add the almond milk, almond butter and coconut butter to your blender. If your coconut butter is hard, you will need to slightly melt it prior to measuring, so it is soft and scoopable, but not totally melted. You want nice thick, creamy scoops to add to the shake, as this it what helps to thicken it. Blend until smooth right after adding the coconut butter, because the cold almond milk can make it harden quickly.
Add the agave, vanilla, espresso (if using), salt and melted chocolate (3-4 tablespoons). Blend until smooth. Taste and add any more sweetener or espresso, if desired.
Pour in a large cup or container and place in the freezer for about 4 hours, until it is forms clumps of ice, but still some liquid, not totally frozen. You only want it partially freezing. Add back to your blender and blend until smooth and slush-like. I found around 4 hours to be good. If you want to freeze it overnight, you will need to let it thaw out until it is soft chunks and can be blended. I much prefer this method over adding ice, because ice will dilute the flavor.
Garnish with shredded coconut, sliced almonds, espresso powder and extra melted chocolate.
If you would like to make your own melted homemade chocolate, combine the following: 2 tbsp melted cocoa butter, 1 tbsp unsweetened cocoa powder, raw cacao, 1/2 tbsp agave/syrup and whisk until smooth.