Preheat the oven to 350°F (175°C). Line a baking sheet with parchment paper.
If using whole hazelnuts, toast them in the oven for 8 minutes, then rub off the skins and finely grind them in a food processor or blender.
In a large mixing bowl, beat the softened butter, brown sugar, and granulated sugar together until light and fluffy, about 2-3 minutes.
Mix in the egg yolk and vanilla extract until fully incorporated.
Stir in the all-purpose flour, ground hazelnuts, and salt until a soft dough forms. If the dough feels too dry, add a teaspoon of milk to soften it before rolling.
Scoop and roll the dough into 1-inch balls, then place them on the prepared baking sheet, spacing them about 2 inches apart.
Use the back of a spoon, your thumb, or a small measuring spoon to press a well into the center of each ball. Ensure the wells are deep enough to hold the filling but not so deep that they break through the dough.
Bake for 10-12 minutes, or until the cookies are lightly golden around the edges. If needed, gently press the centers again after baking to maintain the thumbprint shape.
Let the cookies cool on the baking sheet for 5 minutes before transferring them to a wire rack to cool completely.
Optional: If making a ganache filling, melt dark or milk chocolate with heavy cream in a heatproof bowl over a double boiler or in the microwave. Stir until smooth and glossy. Let it cool slightly before filling the cookies.
Once the cookies are completely cool, spoon Nutella, ganache, or another filling of your choice into the center of each cookie.
Optional: Garnish with chopped hazelnuts, dust with powdered sugar, or drizzle with melted chocolate for an elegant finish.
Let the filling set for a few minutes before serving. Pair with a glass of milk, coffee, or hot cocoa for the ultimate indulgent experience.