Many packet cocoa mixes list sugar first and use only enough cocoa to flavor the cup. This page is the dry-mix route: the batch is blended, jarred, and portioned later. It is intentionally distinct from fresh homemade hot chocolate, where chopped chocolate is melted directly into milk. This formula makes a different trade: more cocoa, real dark chocolate for body, and enough milk powder to make water workable while keeping hot milk as the best-tasting option.

The Recipe

Milk-powder sweetness, chocolate grind, fat composition, and opened-package guidance vary by brand. Make one mug before scaling or gifting, and adjust sugar or serving dose to taste.

Yield: about 785g base mix (about 17 servings), or 835g with cornstarch (about 18 servings) | Prep: 15 minutes | Per serving: 45g mix + 240g liquid, about 285g before evaporation or toppings

Equipment: food processor, digital scale, completely dry airtight jar, whisk, and a small saucepan or microwave-safe mug for serving

Ingredients:

Method:

  1. Pulse the 100g cold chopped chocolate with 25g of the measured sugar until the chocolate looks sandy, with no pieces larger than coarse breadcrumbs.
  2. Add the remaining sugar, cocoa, milk powder, salt, and optional cornstarch. Pulse in short bursts until uniform, then wait 1 minute for the cocoa dust to settle before opening the processor.
  3. Transfer to a completely dry airtight jar and label it with the date. Keep it dry and follow the opened-package and quality guidance for each ingredient; use the earliest applicable ingredient quality date.
  4. For one mug, whisk 45g mix with 30g cool or room-temperature milk or water until completely smooth, then whisk in the remaining 210g hot liquid.
  5. Heat until steaming, whisking once or twice. If the mix includes cornstarch, follow the starch package’s cooking directions and whisk until the drink is properly thickened, then remove it; do not hard-boil.

Why Each Ingredient Is In There

Dutch-process cocoa, 180g. The load-bearing choice. Alkalization changes cocoa’s pH, color, acidity, and flavor. Dispersion is product-dependent, so make the small paste before adding the rest of the liquid. The full natural-vs-Dutch decision tree is in Dutch-process vs. natural cocoa. Natural cocoa still works; expect a sharper, fruitier cup and be especially diligent about the paste-first step.

For a darker, Oreo-like variation, heavily alkalized black cocoa can replace up to half the Dutch cocoa. Keep at least half regular Dutch cocoa so the drink retains rounded chocolate flavor rather than tasting only dark and roasty.

Grated real chocolate, 100g. Cocoa powder is typically partially defatted, while a chocolate bar contributes cocoa solids, sugar, and label-dependent fat. The 100g of grated 60-70% bar adds chocolate flavor and body when heated, but its exact fat contribution depends on the package label. If you calculate fat, use the label’s stated grams of fat for the exact product rather than inferring cocoa-butter content from the cacao percentage. (This is the same ingredient logic as the fresh version, in pantry form.)

Whole milk powder, 250g. The ingredient that makes the jar self-sufficient. A 45g serving carries about 14g of milk powder — less dairy solids than a full cup of reconstituted milk, but enough to keep a water-made cup from drinking like cocoa-flavored water. Hot milk still produces the richest result. Whole milk powder gives the water version more body. Utah State University Extension notes that nonfat dried milk is suitable for short- and long-term storage, while dried whole milk contains milk fat and is not suitable for long-term storage; that source distinction does not establish a storage period for this finished mix, so follow each product’s opened-package guidance.

Salt, 5g. About 0.6% of the batch — it sharpens the cocoa and rounds the sweetness, reading as depth rather than salt.

Cornstarch, optional 50g. The thickener move borrowed from Italian cioccolata calda. With the optional starch, the batch weighs about 835g; at a 45g serving, the starch share is (50 ÷ 835) × 45 = 2.7g, not exactly 3g. Follow the starch package’s cooking directions and whisk until the drink is properly thickened, then remove it; do not hard-boil. Include it if your house standard is “almost pudding.”

The Ratio, and How To Scale It

ComponentWeight% of mix
Sugar250g31.85%
Milk powder250g31.85%
Dutch cocoa180g22.93%
Grated chocolate100g12.74%
Salt5g0.64%

Percentages are for the 785g base mix and are rounded independently to two decimal places, so the displayed values total 100.01% from rounding. Adding the optional 50g cornstarch brings the batch to 835g and changes the per-serving starch calculation; it is not part of the base percentages above. Sugar is barely a third of the base blend, so this drinks darker than many packet mixes. If your audience skews sweet, take sugar to 300g and nothing else needs to change. The batch scales linearly to any jar count.

Serving math: use 45g mix with 240g liquid, about 285g before evaporation or toppings; the 240g figure is not the finished mug weight. The 785g base batch yields about 17 such servings, while the 835g optional-starch batch yields about 18.5. Paste-first always: work 30g cool or room-temperature liquid into a smooth slurry, then whisk in the remaining hot liquid. If the mix contains cornstarch, finish the cooking step according to the starch package directions and whisk until properly thickened. Dry cocoa straight into a full mug is how lumps happen, Dutched or not.

Variants for the Gift Run

Jar it in 390g increments (8-9 servings) and the 785g base batch fills two gift jars with about 5g left over.

The Gift-Jar Label

Copy this onto a tag or card:

Homemade Hot Chocolate Mix

Use: 45g mix + 240g liquid. Whisk with 30g cool or room-temperature milk or water until smooth, then add the remaining 210g hot liquid. Heat until steaming. If the mix contains cornstarch, follow the starch package’s cooking directions and whisk until properly thickened, then remove it; do not hard-boil.

Storage: Keep sealed, dry, and away from heat. Follow the opened-package and quality guidance for each ingredient and use the earliest applicable ingredient quality date.

Allergens: The standard formula contains milk. Copy the exact Contains, May contain, and facility/allergen statements from the chocolate, milk powder, and any variant ingredients used; dark chocolate may contain soy. Do not infer dairy-free status from a product name: coconut milk powder can contain caseinate or other milk-derived ingredients. For a dairy-free version, use products whose exact labels support that use and check every package.

Storage

Keep the mix airtight, completely dry, and away from heat and strong pantry odors. This formula contains whole milk powder and grated chocolate, so its quality depends on the exact products, package dates, opened-package instructions, moisture exposure, and storage temperature. Utah State University Extension distinguishes nonfat dried milk, which it describes as suitable for short- and long-term storage, from dried whole milk, which contains milk fat and is not suitable for long-term storage. That is guidance about the dried-milk ingredient, not a universal date for this finished mix. Follow each ingredient’s opened-package guidance and use the earliest applicable quality date. Keep the jar dry; do not refrigerate it if moving it between cold storage and a warm kitchen would create condensation and cake the powder.

Frequently Asked Questions

How long does homemade hot chocolate mix keep?
Keep the jar sealed, dry, and away from heat and odors. Follow the opened-package and quality guidance for each ingredient and use the earliest applicable ingredient quality date. Utah State University Extension's dried-milk guidance distinguishes nonfat from whole milk powder, so check the exact milk-powder package you use.
Can I make the mix without milk powder?
Yes -- drop it and you have a leaner cocoa-sugar-chocolate blend that should be made with hot milk, not water. For a dairy-free version, use dairy-free milk powder and dairy-free chocolate whose exact labels support that use. Coconut milk powder can contain caseinate or other milk-derived ingredients, so check the ingredient list, Contains/May contain statements, and facility guidance rather than relying on the name. Make one mug before committing a full batch, expect a mild coconut note, and copy the applicable allergen statements.
Why Dutch-process specifically -- does natural cocoa not work?
Natural cocoa works and gives a sharper, fruitier cup. Dutch-process cocoa is darker and mellower because alkalization changes its pH, color, acidity, and flavor. Dispersion is product-dependent with either type, so be especially diligent about making the small paste before adding the rest of the liquid.
Is this cheaper than store-bought mix?
Not necessarily. Budget packets use less expensive formulas and are difficult to beat on price alone. The reason to make this mix is control over cocoa strength, chocolate quality, sweetness, and flavor variants. Against premium mixes with a similar real-chocolate load, the cost comparison depends mostly on the bar you choose.
Can I use it as chocolate milk mix, cold?
Prepare and cook the drink by the method above first rather than stirring the raw mix or optional starch straight into cold milk. If you want a cold serving, cool it promptly, cover it, and refrigerate it before serving; a cold-milk finish is not a substitute for the cooking and thickening step.