Vegan Coconut Milk Gelato
Melts slow and warm instead of finishing clean the way a sorbet does, rich enough to pass for dairy, with a toasted edge from the shredded flesh.

Where the palm grows, its fat does the work butter does elsewhere, and it is the one plant fat that sets firm and gives way at about the temperature of a mouth. That is the whole case for building a vegan gelato on it. The catch is arithmetic, and this sheet says so plainly: coconut runs roughly ten parts fat to one part protein, so a coconut-only base reaches the 13 per cent fat ceiling while protein is still below the floor. Unsweetened soy milk at 380 g per kilo carries the water and the protein instead, which leaves the coconut free to arrive three times, as milk, as powder and as dried shredded flesh.
Now the part worth saying plainly: the largest single ingredient by weight is 380 g of unsweetened soy milk, on a page called coconut milk gelato. Coconut has a fat to protein ratio of roughly ten to one. A vegan base needs 8 to 13 percent fat with at least 1.5 percent protein, and run coconut alone through the solver and fat hits the ceiling while protein is still short of the floor. It is not a preference, it is arithmetic. Soy milk at 3.5 percent protein against only 2.1 percent fat is the carrier that makes both bands reachable at once, and it is neutral enough not to argue with the coconut.
The sheet closes at 10.61 percent fat and 2.37 percent protein, both mid band, with solids at 38.48 and PAC at 254.28. Three sugars share the load: 85 g sucrose, 60 g dextrose and 60 g glucose powder, which is what holds POD down to 163.03 in a 129 to 195 window while PAC still gets where it needs to be. Coconut smells sweet but is not sweet, so this base is not asking sugar to do flavour work on top of everything else.
Ingredients
Makes 1000 g of finished base.
| Ingredient | Grams | Home measure |
|---|---|---|
| Soy Milk (Unsweetened) | 380 | |
| Coconut Milk | 280 | 1 1/4 cups |
| Sugar (Sucrose) | 85 | 1/3 cup plus 2 tablespoons |
| Dextrose (Glucose) | 60 | 1/4 cup plus 1 tablespoon |
| Glucose Powder | 60 | 1/4 cup plus 1 tablespoon |
| Water | 45 | 3 tablespoons |
| Coconut Milk Powder | 40 | |
| Dried Shredded Coconut | 25 | |
| Inulin (Vegetable Fiber) | 20 | |
| Carob Seed Flour | 4 | |
| Salt | 1 |
Method
Can warmed to 40 C and shaken before weighing, powder dispersed at 45 to 50 C, aged 8 to 12 hours
- 1Whisk every dry ingredient together first: sugars, milk powder, stabiliser and salt. Dry-blending them stops the stabiliser clumping when it meets liquid.
- 2Warm the liquids to 40 C (104 F), then rain the dry mix in while whisking hard.
- 3Heat to 82 C (180 F) and hold for 2 minutes so the stabiliser hydrates.
- 4Chill in an ice bath to under 5 C (41 F) within 2 hours. Slow cooling is where bacteria and coarse crystals both start.
- 5Age 6 to 12 hours in the fridge under 5 C (41 F). This is when the stabiliser and the milk protein take up water.
- 6Freeze in a shallow metal pan 2 to 3 cm deep, breaking the crystals with a fork every 30 to 40 minutes, 4 to 6 times.
- 7Freeze firm, then temper 10 to 15 minutes in the fridge before scooping.
The balance
All six against the professional range for Vegan Base.
Two numbers explain the shape of this recipe, and one of them explains the soy milk. Protein at 2.37 percent against a 1.5 floor is only reachable because 380 g of soy milk is in the pot, since coconut cannot get there: by the time its fat approaches the 13 ceiling the protein is still under the floor. Fat at 10.61 percent sits mid band with headroom above it on purpose, because coconut fat is almost entirely saturated and pushing it toward 13 buys waxiness rather than creaminess. The third lever is the three way sugar split. 85 g sucrose, 60 g dextrose and 60 g glucose powder land POD at 163.03, well under the 195 ceiling, while PAC still reaches 254.28 in a 210 to 300 band. The dextrose is doing antifreeze work that sucrose alone would only buy with sweetness this flavour does not want.
Coconut fat crystallises fast and high, which is why a can separates into cream and serum in the fridge. Warm the unopened can to 40 C and shake it before you weigh, otherwise you weigh cream or you weigh water and the 280 g becomes a different ingredient. Coconut milk powder has to be dispersed into liquid at 45 to 50 C under agitation, never dropped into cold liquid, or it encapsulates and forms greasy lumps. Pasteurise at 85 C for 30 seconds and blend with a stick blender for at least 2 minutes: with no milk protein present the emulsion is fragile and coconut fat coalesces easily into a waxy film on the palate. The 25 g of shredded coconut is your choice, infused and strained out for flavour without texture, or left in for the bite. Left in, it takes up water during the age, so expect a visibly thicker base the next day. Age 8 to 12 hours at 4 C.
If it goes wrong
The can had separated and you weighed the watery serum rather than 280 g of whole coconut milk, so the fat went in short of 10.61 percent.
Warm the sealed can to 40 C, shake it until uniform, then weigh. Do the same check on any leftover can before topping up.
The 40 g of coconut milk powder went into cold or cool liquid and encapsulated, trapping dry powder inside a fat shell.
Bring the liquid to 45 to 50 C first and rain the powder in under agitation. If lumps have already formed, pass the base through a sieve and accept the loss.
The fat coalesced. There is no milk protein here to stabilise the interface, so the 10.61 percent fat is held together only by the carob seed flour and the mechanical work you put in.
Blend at least 2 minutes after pasteurising, cool quickly, and give it the full 8 to 12 hour age at 4 C before freezing.
Allergens: milk, soy
- https://coconuthandbook.tetrapak.com/chapter/composition
- https://www.icecreamscience.com/blog/vegan-ice-cream-selecting-a-non-dairy-fat
- https://www.nutritionvalue.org/Nuts%2C_raw%2C_coconut_meat_nutritional_value.html
- https://www.dairyscience.info/cheese-dairy/ice-cream/154-ice-cream-mix.html
Want to change an ingredient and watch the numbers move? Open the free balancer