Dense, silky chocolate-hazelnut gelato has a way of disappearing faster than almost any dessert I make. The spoon slides through with that tight, scoop-shop resistance gelato should have, then the flavor lands in layers: roasted hazelnut first, then deep cocoa, then a clean finish that keeps you coming back for another bite. This version leans into gianduia-style richness without turning heavy or icy.
The texture comes from a small, steady custard base and a little cornstarch, which gives the finished gelato body without making it bouncy or eggy. Hazelnut paste brings the nut flavor forward in a way Nutella can, but either works here depending on what you have on hand. Churning on the lowest speed helps keep the texture dense instead of fluffy, which is exactly what you want in homemade gelato.
Below you’ll find the one step that keeps the custard smooth, the best swap if you’re using Nutella, and a few ways to serve it once it comes out of the machine. The toasted hazelnuts on top are worth keeping — they add crunch right where the gelato is most soft and creamy.
The custard thickened right on cue and the gelato froze up with that dense, scoopable texture I was hoping for. The toasted hazelnuts on top made the chocolate taste even deeper.
Save this chocolate-hazelnut gelato for when you want that dense gianduia texture and deep roasted hazelnut flavor at home.
The Part That Keeps This Gelato Dense Instead of Icy
Gelato gets its signature texture from restraint. Too much air from aggressive churning makes it fluffy, and too much heat during the custard stage can leave you with a grainy base that freezes hard. This recipe leans on a small amount of cornstarch and a careful custard cook, which gives the mixture body before it ever goes into the machine.
The other thing that matters is cooling all the way down before churning. If the base is even a little warm, the machine has to work harder, the ice crystals form larger, and the gelato sets up with a rougher bite. Chilling it for the full rest time isn’t busywork — it’s part of the texture.
- Egg yolks — These thicken the base and give the gelato its custardy richness. Whisk them with the sugar until pale so they temper more smoothly when the hot milk goes in.
- Cornstarch — This is the quiet helper that keeps the frozen texture supple. You can skip it, but the gelato will be firmer and a little less forgiving straight from the freezer.
- Hazelnut paste or Nutella — Hazelnut paste gives the cleanest nut flavor. Nutella works fine, but it brings more sweetness and a softer chocolate note, so you may want to keep the sugar as written rather than adding more.
- Dutch process cocoa — Use Dutch process here, not natural cocoa, because it gives the base that darker, smoother chocolate edge that plays well with hazelnut. It also blends more cleanly into the dairy.
What Each Ingredient Is Actually Doing in This Frozen Treat

- Base ingredient (cream, yogurt, or fruit) — This determines the texture and richness. Cream makes it scoopable; yogurt makes it tangy; fruit makes it refreshing.
- Sweetener (sugar or honey) — This prevents the mixture from freezing rock-solid and creates a smooth texture. Too much and it won’t freeze; too little and it’s icy.
- Egg yolks (if using custard method) — These create richness and a silky texture. Tempering is important so they don’t scramble.
- Thickener (cornstarch, gelatin, or egg) — This prevents ice crystals from forming and keeps the texture smooth instead of grainy.
- Flavoring (vanilla, chocolate, fruit, or spices) — Use quality flavorings because they’re essential to the taste. Dilute-tasting ice cream comes from cheap extract.
- Stabilizers (gum, gelatin, or dairy) — These keep the ice cream from becoming icy during storage. They prevent large ice crystals from forming.
- Mix-ins (nuts, chunks, or swirls) — These add texture and interest. Freeze-stable chocolate works better than regular chocolate, which gets hard.
- Proper chilling and churning (the technique) — This incorporates air and prevents ice crystals. An ice cream maker makes a huge difference in texture.
Building the Custard Without Scrambling the Yolks
Heating the Milk and Cocoa
Warm the milk, cream, and cocoa until the mixture is steaming and the cocoa has fully dissolved. Whisking the hazelnut paste in at this stage helps it melt into the dairy instead of leaving streaks behind. If you see small specks, keep whisking before you move on — that means the paste hasn’t fully loosened yet.
Tempering the Yolks
Whisk the yolks, sugar, and cornstarch until the mixture looks lighter in color and a little thicker. Then add the hot milk in a slow stream while whisking constantly. If you dump it in all at once, the yolks can turn lumpy on contact and you’ll feel that graininess later in the finished gelato.
Cooking to the Right Thickness
Pour the tempered mixture back into the saucepan and stir over medium heat until it coats the back of a spoon, about 5 minutes. The base should look glossy and slightly thickened, not like pudding. If it starts to bubble hard, lower the heat immediately; a rolling boil can overcook the eggs and leave you with a custard that tastes flat.
Chilling, Churning, and Folding In the Nuts
Stir in the vanilla and salt, then cool the base over an ice bath before moving it to the fridge. Cold base means finer ice crystals, and that matters here. Churn on the lowest speed your machine allows for a dense gelato texture, then fold in the toasted hazelnuts at the end so they stay crisp instead of sinking or softening in the base.
How to Adapt This Gelato for Different Kitchens and Different Cravings
Use Nutella Instead of Hazelnut Paste
Nutella gives you an easier, more familiar chocolate-hazelnut flavor and a slightly softer finish. It’s sweeter than straight hazelnut paste, so use it as written and don’t increase the sugar or the base can freeze too sweet and less balanced.
Make It Dairy-Free
Use full-fat oat milk for the milk and canned coconut cream for the heavy cream. The texture will be a little softer and the coconut note will show up faintly, but the chocolate and hazelnut still carry the flavor beautifully. Churn and freeze it the same way.
Skip the Chopped Hazelnuts for a Smoother Scoop
Leave out the chopped nuts if you want a fully smooth gelato with a cleaner scoop. You’ll lose the crunch, but the texture becomes more classic and uniform, which is a good move if you’re serving it alongside cake or warm brownies.
Make It Ahead for Easier Serving
Churn the gelato, then freeze it for just 1 to 2 hours if you want a softer, more scoopable result. For a firmer set, freeze it longer, but let it sit at room temperature for 5 to 10 minutes before scooping so it doesn’t crack under the spoon.
Storage and Reheating
- Refrigerator: Keep the custard base covered for up to 2 days before churning. Give it a quick whisk before it goes into the machine if it has thickened a little more in the fridge.
- Freezer: The finished gelato keeps for about 2 weeks. After that, it can get icy around the edges, especially if it’s been scooped and returned to the container a few times.
- Reheating: Gelato doesn’t need reheating, but it does need a short thaw for the best scoop. Let it sit at room temperature for 5 to 10 minutes; microwaving turns the edges soft while the center stays hard.
Questions I Get Asked About This Recipe

Chocolate-Hazelnut Gelato
Ingredients
Equipment
Method
- Heat the whole milk and heavy cream with the Dutch process cocoa powder in a saucepan until steaming, then whisk in the hazelnut paste or Nutella until smooth and glossy.
- Whisk the egg yolks, granulated sugar, and cornstarch together until pale, then slowly pour in the hot chocolate milk while whisking constantly to temper.
- Return the mixture to the saucepan and cook over medium heat, stirring constantly, until thickened, about 5 minutes.
- Stir in the vanilla extract and salt, then cool completely over an ice bath until the custard is no longer hot.
- Cover and refrigerate at least 4 hours until very cold.
- Churn the chilled custard in an ice cream maker on the lowest speed until it reaches a dense gelato texture.
- Fold in the toasted hazelnuts, then serve immediately or freeze 1-2 hours to firm up.


