Prepare your setup. Place the chopped chocolate in a heatproof bowl. Set a fine-mesh strainer over a clean bowl (you’ll use this later).
Have 4 small ramekins or jars ready.
Warm the dairy base. In a small saucepan, whisk the coconut milk or heavy cream with the cocoa powder, sweetener, espresso powder, and salt. Heat over medium-low, whisking until smooth and steaming but not boiling.
Temper the egg yolks. In a separate bowl, whisk the egg yolks. Slowly drizzle in about 1/2 cup of the hot mixture while whisking constantly.
This gently warms the yolks so they don’t scramble.
Combine and thicken. Pour the tempered yolks back into the saucepan. Cook over low heat, stirring with a silicone spatula, until the mixture slightly thickens and coats the back of the spatula, about 3–5 minutes. Do not let it boil.
Strain for silkiness. Immediately pour the custard through the strainer into the bowl with the chopped chocolate.
This removes any tiny bits of cooked egg and gives you a smoother finish.
Emulsify with chocolate and butter. Let the hot custard sit on the chocolate for 1 minute. Add the butter and vanilla, then whisk slowly from the center outward until glossy and fully combined.
Taste and adjust. Taste for sweetness and salt. If you prefer a touch sweeter, whisk in 1–2 teaspoons more powdered sweetener until dissolved.
A tiny extra pinch of salt can also wake up the flavor.
Portion and chill. Divide into ramekins or jars. Cover and chill at least 2 hours, or until set and velvet-smooth. The texture firms as it cools.
Serve. Top with a small dollop of whipped cream and a sprinkle of shaved chocolate or cocoa nibs.
Serve slightly cool, not ice-cold, for the best flavor.