In a medium saucepan, combine the cocoa powder, sugar, water, and salt over medium heat. Heat this chocolate base mixture, stirring constantly, until smooth.
When it simmers, reduce the heat, pour the milk, and continue stirring as it heats up and you see steam surface. Do not let it boil; you don't want to burn the milk.
Turn off the heat, add the vanilla, and mix.
Pour the hot cocoa into mugs and top it with marshmallows or whipped cream.
Notes
Ingredient swaps:
Honey or maple syrup can be swapped for granulated sugar (same amount). The flavor will change slightly.
Unsweetened cocoa powder is more acidic and gives a deeper, richer chocolate flavor, while Dutch-processed cocoa is milder and less intense. Both work well in this recipe.
Make it for one:
In a mug, mix 2 teaspoons of cocoa powder and 2 tablespoons of sugar. Heat 1¼ cups milk (in the microwave or on the stovetop) until hot but not boiling. Pour half over the cocoa mixture and whisk to dissolve, then stir in ¼ teaspoon vanilla and the remaining milk until smooth and creamy.