
The Philippines' most beloved frozen dessert: shaved ice over sweet beans, jellies, fruits and jackfruit, topped with ube ice cream, leche flan and evaporated milk.
Halo-halo — Tagalog for 'mix-mix' — is the Philippines' ultimate summer dessert and one of the most joyfully chaotic foods in the world. A towering glass is layered with an assortment of sweet preserved and fresh ingredients — red beans, white beans, nata de coco (coconut jelly), kaong (sugar palm fruit), sweetened jackfruit, banana, sweet corn — then packed with finely shaved ice and drenched in evaporated milk. The crown is a slice of leche flan, a scoop of ube (purple yam) ice cream and a crumble of pinipig (toasted rice). You then mix everything together vigorously — hence the name — creating an ever-changing combination of textures and flavours in every spoonful. Halo-halo is pure joy in a glass.
Serves 4
In each tall glass, layer 2–3 tablespoons each of red beans, nata de coco, kaong, jackfruit and sweet corn. The order and amounts are flexible — this is your halo-halo.
Pack a generous mound of finely shaved ice over the toppings, piling it high above the rim of the glass.
Finely shaved ice is essential — chunky crushed ice ruins the texture. Use a shaved ice machine if available, or blitz ice cubes in a blender briefly.
Pour 3–4 tablespoons of evaporated milk over the ice.
Place a scoop of ube ice cream and a slice of leche flan on top. Scatter pinipig over everything. Serve immediately with a long spoon and instruct your guest to mix everything together vigorously before eating.
There is no single correct version of halo-halo — use whatever combination you enjoy.
Ube ice cream is widely available in Filipino stores and increasingly in mainstream supermarkets.
Keep all the toppings cold — warm ingredients will melt the shaved ice too quickly.
Weigh dry ingredients on a scale instead of using cups — grams are the difference between a tender and a tough crumb.
Buko (young coconut) flesh is a popular and delicious addition.
Some versions add a layer of ube halaya (purple yam jam) at the base.
Mais con hielo is a simpler version with just sweet corn and shaved ice.
Vegetarian: swap the protein for roasted king oyster mushrooms, smoked tofu or cooked chickpeas — adjust seasoning slightly upward to compensate.
Cannot be stored — assemble and serve immediately.
Halo-halo is believed to have originated from the Japanese kakigori (shaved ice with sweet toppings) brought to the Philippines during the Japanese occupation in the early 20th century. Filipinos transformed the concept with local ingredients — sweet beans, jackfruit, coconut jelly — creating something entirely Filipino. The ube and leche flan toppings are more recent additions that have become synonymous with the dish.
Both are available in tins at Filipino, Asian or Chinese grocery stores. Kaong can be substituted with lychee in syrup. Nata de coco can be substituted with other jelly-like elements like grass jelly.
Yes — most of the components can be prepared up to a day in advance and refrigerated separately. Reheat gently and assemble just before serving so textures stay distinct.
Stay close to the role each ingredient plays: swap aromatics for similar ones (shallot for onion, lime for lemon), and keep the fat-acid-salt balance intact. Spice blends can usually be approximated with what's in the cupboard.
Authenticity sits on a spectrum — what matters more is honoring the technique and balance of flavors. If the dish tastes harmonious and respects how cooks in its home region would build it, you're on solid ground.
Per serving (420g / 14.8 oz) · 4 servings total
Ask our AI cooking assistant anything about this recipe — substitutions, techniques, scaling.
Chat with AI Chef →This recipe is featured in the following curated guides:
Join the conversation
Sign in to leave a comment and save your favourite recipes