Set the oven rack to the middle position. Preheat to 350ºF (177ºC).
Spread the hazelnuts on a rimmed baking sheet. Roast until the surface is lightly brown and fragrant, about 8 to 10 minutes for pre-roasted nuts. If using raw hazelnuts, bake for 10 to 12 minutes. Shake the pan halfway through for even cooking.
Transfer the nuts to a clean dish towel. They stain, therefore a dark color works best. Fold the towel over and vigorously rub them against each other until at least half of the skins fall off. It’s okay if some remain, it adds dimension to the flavor.
Method #1) Blender
Add the warm hazelnuts to a high-speed blender. Pulse for 5 seconds to break down. Process at high speed for 3 minutes, stopping to scrape down the sides every 15 seconds. It should form a smooth thick paste, like peanut butter.
Add the powdered sugar, cocoa powder, vanilla, salt, and melted coconut oil. Process at high speed until smooth, about 1 minute. Scrape down the sides every 15 seconds.
Add the melted chocolate and process until smooth, about 30 seconds. Scrape down the sides halfway through.
Add the chocolate to a microwave-safe bowl. Heat on high power in 30-second intervals, stirring in between until just melted. Alternatively, melt on the stovetop, with the bowl of chocolate set over barely simmering water that does not touch the bottom of the bowl, stirring until melted.
Method #2) Food Processor
Add the warm hazelnuts to the bowl of a food processor. Pulse for 5 seconds to break down. Process at high speed for 5 minutes, stopping to scrape down the sides as needed, about every 30 to 60 seconds.
Add the powdered sugar, cocoa powder, vanilla, and salt. Process at high speed until just incorporated, about 30 to 60 seconds. Scrape down the sides if needed.
With the blender running at high speed, slowly add in the melted coconut oil, process until smooth and shiny, about 1 minute.
Add the chocolate to a microwave-safe bowl. Heat on high power in 30-second intervals, stirring in between until just melted. Alternatively, melt on the stovetop, with the bowl of chocolate set over barely simmering water that does not touch the bottom of the bowl, stirring until melted.
Add the melted chocolate and process until smooth, about 1 minute.
Strain
Strain the Nutella through a fine-mesh sieve, using a spoon to help press the mixture through into a clean bowl. For a more crunchy texture, skip this step. Straining is optional if using the blender method.
Storing
Cool the chocolate hazelnut spread completely, then transfer to a jar or airtight container. The mixture thickens into a spreadable paste once cooled.
Notes
Recipe Yield: About 1 ⅓ cups
Serving Size: 1 tablespoon
Storing: Store in an airtight container for up to 2 weeks at room temperature. For the best taste and texture, stir before using. Refrigerate for up to 1 month. Let it come to room temperature to be spreadable.
Oil Substitutions: Substitute coconut oil with melted palm oil, sunflower, vegetable, avocado, or hazelnut oil.
Cocoa Substitutions: Cacao or dutch-processed cocoa powder can be used instead of cocoa powder.
Chocolate Substitutions: Substitute semi-sweet or dark chocolate chips or chopped bar pieces (up to 60% cacao) for milk chocolate. Bars have more cocoa butter and will make the spread slightly thinner.
Make it Dairy-Free: Use semi-sweet or dark chocolate chips or bars instead of milk chocolate.