The Philippines' beloved hot-weather dessert — shaved ice layered over sweetened beans, jellies, fruit, leche flan, ube ice cream, and a final crown of pinipig.
Halo-halo — Tagalog for 'mix-mix' — is the Philippines' defining summer dessert, a riot of color and texture sold from every Manila Jollibee, every Cebu carinderia, and every aunt's kitchen during the brutal April-to-June heat. The dish is exactly what its name suggests: a tall glass layered with a parade of sweetened ingredients (saba banana, jackfruit, sweet beans like kidney and white, palm fruit / kaong, coconut sport / macapuno, gulaman jelly, sometimes sweet corn or chickpeas), buried under a snowfall of finely shaved ice, drowned in evaporated milk, and crowned with a scoop of purple ube (yam) ice cream, a slice of leche flan (Spanish-style crème caramel), and a sprinkle of toasted pinipig (young rice flakes — the Filipino equivalent of rice krispies). The eating instruction is in the name: you smash and mix everything together with your long spoon until the ice melts into a milky slush studded with chewy, fruity, beany bits. Every bite is different — sometimes you get jackfruit and ice cream, sometimes you get bean and flan. It's chaotic, sweet, cooling, and entirely Filipino. There is no single 'correct' recipe — every family has their own assembly, but the principles are constant: layers, ice, milk, leche flan, ube, pinipig.
Serves 4
Drain all the sweetened jarred ingredients (beans, kaong, macapuno, nata, jackfruit) and refrigerate at least 2 hours so everything is cold before assembly. Warm ingredients melt the ice immediately.
If you have a shaved-ice machine, shave 2 L of ice into fluffy snow. Otherwise, blitz ice cubes in a powerful blender in short pulses to create coarsely crushed ice — not perfect snow, but close enough.
In each tall sundae glass (or wide-mouth jar), divide the sweet beans, kaong, macapuno, nata de coco, jackfruit, sliced saba, and gulaman cubes evenly. Don't worry about neat layers — the chaos is part of halo-halo's charm.
Pile shaved ice generously on top of each glass — it should form a dome above the rim. Pack it lightly so it stays put when you pour the milk.
Slowly pour 60–80 ml of chilled evaporated milk over the ice in each glass, letting it soak in. If you like sweeter halo-halo, drizzle 1 tablespoon of sugar syrup over too. The milk should melt into the ice creating a snowy slush.
Place a thick slice of leche flan on top of the ice — the wobbly, golden custard is one of the iconic halo-halo crowns.
Add a generous scoop of purple ube ice cream beside the flan. Sprinkle a heaping tablespoon of toasted pinipig over everything for the final crunch — the contrast of crisp rice flakes against soft ice cream is essential.
Serve at once with long parfait spoons. Instruct everyone to mix vigorously before eating — this is the 'halo-halo' moment, where everything melds into a multi-colored slush. Eat fast before it fully melts.
All toppings are available pre-sweetened in jars at Filipino or pan-Asian grocers. Don't try to make sweet beans from scratch unless you really want a 6-hour project.
The ice must be very finely shaved or crushed — large ice cubes don't absorb the milk and result in a watery, unsatisfying halo-halo.
Evaporated milk is essential — fresh milk dilutes too quickly and doesn't have the right caramel-rich character. Don't substitute condensed milk (too sweet) without adjusting other sweeteners.
Ube ice cream is sold at Filipino groceries (Selecta brand is iconic). If unavailable, taro ice cream is acceptable; vanilla is a sad substitute.
Manong style — sold by street vendors with extra sweet corn, chickpeas, and rice puffs; less ice cream, more beans.
Mais con yelo — simplified halo-halo with just sweet corn, ice, and milk. Pre-flat version of halo-halo, also delicious.
Modern Razon's-style — a minimalist Pampanga version with just shaved ice, milk, leche flan, sweetened banana, and macapuno.
Vegan halo-halo — use oat or coconut evaporated milk and coconut ice cream; check that sweet beans are not in pork lard.
Cannot be stored once assembled — ice melts within an hour. Pre-portion all sweet toppings in containers in the fridge so you can assemble fresh halo-halo within 5 minutes anytime. Sweet beans and fruits keep refrigerated 5 days; pinipig keeps months at room temperature in an airtight jar.
Halo-halo descends from Japanese kakigori (shaved ice with sweet beans) brought to the Philippines by Japanese immigrants in the early 20th century. Filipinos elaborated the dish during the American colonial era by adding evaporated milk, ice cream, and the dozen-plus indigenous sweet preserves, transforming it into the multi-layered version recognized today.
No — halo-halo is endlessly customizable. The core essentials are shaved ice + evaporated milk + leche flan + ube ice cream + pinipig + at least 3 sweet toppings. Beyond that, add what you love.
Yes — it's just eggs, condensed milk, evaporated milk, and caramel, steamed in a llanera mold. Many Filipino recipes online; takes about 1 hour total. Store-bought from Filipino bakeries is genuinely good too.
Toasted young rice flakes — Filipino equivalent of rice krispies but with a more pronounced toasty, nutty flavor. Sold in bags at Filipino grocers. Substitute toasted brown rice flakes or even crushed cornflakes at a pinch.
Mixed! The name literally means 'mix-mix.' Smash everything together with your spoon before eating — that's the entire point of the dish.
Per serving (480g / 16.9 oz) · 4 servings total
Ask our AI cooking assistant anything about this recipe — substitutions, techniques, scaling.
Chat with AI Chef →Join the conversation
Sign in to leave a comment and save your favourite recipes