Roast the hazelnuts: Preheat the oven to 350°F (175°C). Spread hazelnuts on a baking sheet and roast for 10–12 minutes, shaking the pan halfway, until fragrant and lightly browned.
Remove most of the skins: Transfer warm hazelnuts to a clean kitchen towel.
Rub them together to loosen the skins. Don’t worry about stubborn bits—some skin is fine and adds flavor.
Process into a butter: Add the warm, peeled hazelnuts to a high-powered food processor or blender. Blend until they turn into a smooth nut butter, scraping down the sides as needed.
This can take 3–8 minutes.
Add cocoa and sweetener: Sprinkle in the cocoa powder and 1/3 cup powdered sweetener. Pulse to combine, then blend.
Stream in oil: With the machine running, slowly add 2 tablespoons of oil. Keep blending until the mixture loosens and becomes glossy.
Add more oil, 1 tablespoon at a time, until you reach a spreadable consistency.
Flavor and balance: Add vanilla and salt. Blend again. Taste and adjust sweetness, salt, or cocoa.
If you want extra richness, blend in the optional cream a little at a time.
Smooth it out: For a silkier texture, blend 1–2 more minutes. The spread should be thick yet pourable when warm; it will firm up as it cools.
Jar and cool: Transfer to a clean jar. Let it cool to room temperature, then seal.