The Philippines — Manila and Luzon's dessert houses, with roots in the shaved-ice-and-beans stalls of early twentieth-century Manila · Filipino
Halo-Halo (Filipino Shaved Ice with Sweet Beans, Fruit, Leche Flan and Ube)
The Philippines' most beloved dessert: a tall glass of snow-fine shaved ice layered with sweetened beans, saba banana, jackfruit and coconut, drenched in evaporated milk and crowned with leche flan, ube halaya and ice cream. You are meant to mix it all together.
Published September 29, 2026
Cultural context
Halo-halo means 'mix-mix' in Tagalog, and the name is the instruction. Its likeliest ancestor is mongo-ya, a bowl of sweetened mung beans over shaved ice that Japanese immigrants sold in pre-war Manila, itself kin to Japanese kakigori and to the wider East Asian tradition of ice topped with beans. Filipino cooks then did what they do best: they kept adding. Sweetened saba bananas, langka (jackfruit), kaong (sugar palm fruit), nata de coco, macapuno, gulaman, sago pearls, leche flan and ube halaya all joined the glass, and evaporated milk turned the melt into a sweet, creamy syrup. The ice-and-beans origin is well documented, but the dessert as served today is a Filipino invention, and every province, every merienda stall and every family builds it a little differently.
Halo-halo is the Philippines in a glass. A tall tumbler is filled with sweet beans, translucent palm fruit, jackfruit, banana and chewy sago, then buried under a snowdrift of shaved ice, drenched in evaporated milk and crowned with a slice of leche flan, a spoonful of purple ube jam and a scoop of ice cream. The name, “mix-mix” in Tagalog, is also the only instruction you need: stir it all into a pastel slush and eat it fast, while the afternoon heat is doing its worst.
A Japanese bowl, a Filipino glass
The story most often told about halo-halo begins in early twentieth-century Manila, where Japanese immigrants sold a simple cold dessert of sweetened mung beans over shaved ice. It sits in the same family as Japanese kakigori and the wider East Asian tradition of beans and ice, and the Filipino name for it, mongo-ya, hints at the beans. Food historians debate details, and as with many dishes there is no single birth certificate. What is not in doubt is what happened next. Filipino cooks kept adding: banana cooked in muscovado, jackfruit, coconut in every form, sago, gelatin cubes, and eventually the two crowns of the modern glass, leche flan and ube. The dessert on your table is a Filipino invention with a multicultural family tree, and no single country’s claim on the ingredients is the point.
Why each layer is there
Halo-halo can look like chaos, but it is a study in contrasts, and each layer has a job.
Sweet, soft beans and bananas are the bass note. Red beans cooked in muscovado are earthy and dense, and saba banana simmered in syrup is tart, starchy and caramel-dark. They sit at the bottom so that as the ice above melts, they soak up the milk.
Chewy translucent things — kaong, nata de coco, sago, macapuno — give texture more than flavor. They are there so that every spoonful has something to bite through the softness of the ice.
Evaporated milk does two jobs. It is the sauce, and it is also the reason the melt is creamy rather than watery. Chilled and poured slowly over the ice, it seeps down through every layer.
Leche flan, ube halaya and ice cream are the crown. Each is richer and denser than the layers below, which is why they sit on top: they stay cold, they look spectacular, and as they melt they season the glass from above.
Get the ice right
The most important layer is the least glamorous. Halo-halo needs ice that is snow-fine, almost fluffy, so that it collapses into the milk instead of clacking around like cubes. A shaved-ice machine is best. At home, freeze a block or a tray of water and shave or blend it in small batches, keep the ice in the freezer until the moment you build, and chill the glasses first. Speed matters more than technique here.
Prep the toppings so assembly is fast
Halo-halo is a dish of assembly, not cooking. The beans and banana need an hour of gentle simmering, but everything else comes from jars, and all of it can be done a day ahead. Drain the jarred toppings well; syrup from the jar is the fastest way to make the finished glass watery and cloying. Then you can build four glasses in five minutes.
Mix, then eat
The last instruction is a cultural one. In the Philippines, nobody eats halo-halo layer by layer; the first thing you do is sink your long spoon to the bottom and stir. The result is a creamy, icy, purple-and-white slush with something chewy in every mouthful, and it should be eaten quickly. It is the classic merienda, the mid-afternoon snack, and a fitting end to a big meal.
If you want the rest of the table around it, start with chicken adobo, the country’s savoury national dish, and the sweet, breakfast-y pandesal. For more of the region’s kitchens, see the Southeast Asian cooking guide.
Ingredients
Sweetened red beans
- 100 g (1/2 cup) dried red kidney beans or small red beans Soak overnight if you can; a 2-hour hot soak works too. Canned sweetened red beans (azuki) are a fine shortcut.
- 70 g (1/3 cup) muscovado or light brown sugar Muscovado gives the traditional molasses depth. Add it only once the beans are fully tender, because sugar toughens bean skins.
Sweetened saba bananas
- 3 ripe saba bananas (or 2 firm plantains), sliced into 1 cm rounds Saba is a squat cooking banana that holds its shape when simmered. Firm, slightly underripe plantain is the best substitute; regular dessert bananas turn to mush.
- 100 g (1/2 cup) muscovado or light brown sugar
- 120 ml (1/2 cup) water
- 1 tsp vanilla extract
Sweetened coconut and jackfruit
- 200 g (1 cup) jarred macapuno strings, drained (or young coconut strips) Macapuno is a soft, gelatinous coconut mutant, sold in syrup in jars at Filipino and Southeast Asian shops.
- 200 g (1 cup) jarred langka (ripe jackfruit in syrup), drained and sliced
- 100 g (1/2 cup) nata de coco and kaong (sugar palm fruit) in syrup, drained Sold in jars or bags in Filipino and Southeast Asian grocers. Both are chewy, translucent and mildly sweet, providing texture rather than flavor.
- 100 g (1/2 cup) cooked small tapioca pearls (sago) Simmer according to packet directions until translucent, rinse under cold water and toss in a spoonful of the banana syrup so they do not clump.
Toppings
- 4 slices leche flan (Filipino egg-yolk custard), store-bought or homemade Leche flan is the richest layer; it is made with egg yolks and condensed milk and is denser than a French crème caramel.
- 4 heaped tbsp ube halaya (purple yam jam) Sold in jars in Filipino markets. It gives halo-halo its unmistakable purple crown.
- 4 scoops ube or vanilla ice cream
- 4 tbsp pinipig (toasted flattened young rice), or crushed rice crisps Pinipig adds a crackly, toasty contrast. Crisped rice cereal is the standard stand-in.
To assemble
- About 1 kg (8 cups) shaved ice, made from block or well-frozen ice Snow-fine ice is the whole point. See the technique section for how to get it without a shaver.
- 240 ml (1 cup) evaporated milk, well chilled Traditional, and it stays creamy as the ice melts. Condensed milk is drizzled over top for extra sweetness if you like.
Method
Tap a step’s number to check it off as you go.
-
Cook the beans. Drain the soaked beans, cover with fresh water by 5 cm, and simmer for 45 to 60 minutes until completely tender. Drain, return to the pot with the sugar and 60 ml (1/4 cup) water, and simmer 10 minutes until glossy and syrupy. Cool.
Why: Sugar added before the beans soften makes their skins tough and leathery. Cook them to tenderness first, then sweeten so they drink up the syrup.
-
Make the saba. Bring the sugar, water and vanilla to a simmer, add the sliced saba and cook gently for 10 to 12 minutes, until the bananas are tender, translucent and coated in a thick amber syrup. Cool completely.
Why: Gentle simmering lets the cooking bananas turn tender without breaking apart. Their starch and slight tartness are why saba is used rather than a sweet dessert banana.
-
Prep the other toppings. Drain the macapuno, langka, nata de coco and kaong well and pat dry with a towel. Cook the sago, rinse it and toss in a little banana syrup. Arrange everything in small bowls, so assembly is quick.
Why: Syrup from the jars makes the finished glass watery and cloying. Draining leaves the toppings sweet but not soggy, and lets the milk and ice do the work.
-
Chill four tall glasses or bowls in the freezer for 15 minutes. Prepare the shaved ice in small batches and keep it in the freezer until the instant you assemble.
Why: Shaved ice begins to melt on contact with a warm glass. A pre-chilled glass buys you the few minutes it takes to build layers.
-
Build from the bottom up: a spoonful each of red beans, saba, macapuno, langka, nata de coco, kaong and sago at the bottom of each glass, dividing them evenly. Add a small pinch of sugar syrup if you want extra sweetness.
Why: Sweet, chewy things go in first so they end up at the base, where you will reach them once the ice above has melted and mixed with the milk.
-
Pack the glass with snowy shaved ice, mounding it high above the rim. Pour 60 ml (1/4 cup) of chilled evaporated milk slowly over the top.
Why: The milk seeps down through the ice and carries flavor through every layer, so it works as both sauce and melt-water. Pouring slowly means the ice absorbs it rather than flooding the glass.
-
Crown each glass with a slice of leche flan, a spoonful of ube halaya and a scoop of ice cream, then scatter over the pinipig. Serve at once with a long spoon.
Why: The toppings sit on top so they look spectacular and stay cold, and the ice cream begins to melt into the ice below. The pinipig goes on last so it stays crisp.
-
Mix, before you eat. Use the spoon to stir everything together into a pastel, creamy slush, and eat it quickly while it is still icy.
Why: That mixing is the dessert. Halo-halo is meant to be a blur of textures and temperatures, and no single spoonful should taste like just one thing.
A quick, anonymous tap — no review needed.
Variations
- Ube halo-halo
Fold an extra 2 tbsp of ube halaya into each glass of ice and top with two scoops of ube ice cream. It is the purple-forward version that has become a Filipino social-media classic.
- Mais con yelo
A simpler cousin: sweet corn kernels, milk and shaved ice, nothing more. Good when you do not want to shop for a dozen jars.
- Fresh fruit version
Add diced ripe mango, sliced strawberries or fresh langka in season. Some Filipino stalls make it almost entirely with fresh fruit.
- Vegan
Use coconut milk instead of evaporated milk, a dairy-free ice cream, and skip the leche flan or replace it with coconut jelly.
- Individual-topping bar
Put all the toppings in bowls with a bowl of shaved ice and let each guest build their own glass. It suits parties, and the mixing is more fun when you made your own.
Serving & Storage
Serve in tall glasses or wide bowls, with a long spoon and a straw for drinking the melted milk at the end. In the Philippines halo-halo is a merienda, the mid-afternoon snack, and the classic answer to a hot day; it is also a natural close to a big family meal of chicken adobo and garlic rice.
Pairs with: Chicken adobo, Pandesal, Barako coffee, Fresh calamansi juice.
Storage: Halo-halo does not keep once assembled, so build it to order. The toppings, however, are ideal make-ahead components: beans and saba keep in syrup in the fridge for 5 days, and macapuno, langka and nata de coco are jarred. Shaved ice can be made 1 hour ahead and kept in a covered container in the freezer, fluffed with a fork before use.
Nutrition
Per serving (1 glass (1/4 of recipe))
- Calories
- 520
- Protein
- 10 g
- Carbs
- 98 g
- Fat
- 11 g
- Fiber
- 6 g
- Sugar
- 72 g
- Sodium
- 130 mg
Notable micronutrients: Calcium, Potassium, Iron, Folate
Estimated using standard ingredient data. Values vary with brands and substitutions.
Frequently Asked Questions
What does halo-halo mean?
Halo-halo is Tagalog for 'mix-mix', and it is the literal serving instruction: you stir the layers of ice, milk, beans, fruit and toppings into one before eating. It is meant to be a blend, so do not eat the toppings one by one.
Where does halo-halo come from?
The likeliest ancestor is a simple bowl of sweetened mung beans over shaved ice sold by Japanese immigrants in early twentieth-century Manila, related to Japanese kakigori and other East Asian bean-and-ice desserts. Filipino cooks then piled on their own ingredients — saba bananas, jackfruit, kaong, macapuno, leche flan, ube — and evaporated milk to create the dessert eaten today. The precise origin story is debated, but the modern halo-halo is thoroughly Filipino.
How do I make shaved ice at home without a machine?
Freeze water in a shallow tray or block, then either grate it on the coarse side of a box grater or pulse chunks in a high-powered blender until snowy, freezing the container beforehand. A blender gives a coarser, fluffier ice, while a shaver gives thin ribbons. For a very low-effort option, freeze evaporated milk in a tray and shave that instead.
Can I use ingredients other than saba bananas?
Yes. Plantains that are firm and slightly underripe are the closest substitute. Regular dessert bananas turn to mush when simmered in syrup, so avoid them unless you slice them fresh and add them right at the end.
What if I cannot find ube halaya or macapuno?
Both are staples of Filipino and Asian grocery stores and are often sold online. If you cannot find ube halaya, use vanilla or coconut ice cream and a spoonful of sweet mashed purple sweet potato; if you cannot find macapuno, substitute young coconut strips. The dessert remains delicious with fewer toppings, so start with what you can find.
What to drink with this
All drinks →Hand-picked pours to match this dish. Alcoholic pairings are for adults of legal drinking age (21+ in the US) — please drink responsibly.
21+ Kuala Lumpur, Malaysia · Malaysian
Jungle Bird (Dark Rum, Campari & Pineapple)
The tiki drink with a bitter backbone: dark rum and Campari shaken with fresh pineapple and lime. Tropical and lush but grown-up and dry — the 1970s Malaysian classic that bridges tiki and the aperitivo world.
21+ Singapore (the Raffles Hotel Long Bar) · Singaporean
Singapore Sling (The Raffles Hotel Classic)
The tropical gin classic born at Raffles Hotel: gin, cherry liqueur, Bénédictine, citrus and pineapple, shaken into a frothy, ruby long drink. The full original build, not the sugary shortcut.
Thailand (street and market drink) · Thai
Thai Iced Tea (Cha Yen)
The bright-orange, creamy-sweet Thai street drink: strong spiced black tea sweetened with condensed milk and poured over ice with a float of cream. How to brew it strong and why it's so orange.
From our kitchen community
Ratings & Reviews
My Rating
Tap a star to rate — no sign-in, no form needed.
My Review
0 Ratings
🥣 0 home cooks made it!
Be the first to rate Halo-Halo (Filipino Shaved Ice with Sweet Beans, Fruit, Leche Flan and Ube).
Further reading
- Cultural Story · Southeast AsiaA Cook's Map of Southeast AsiaSoutheast Asia isn't one cuisine but a dozen, bound loosely by rice, fish sauce, fresh herbs, and the pounded paste. A guide to how Thai, Vietnamese, Indonesian, Filipino, Malaysian, and Singaporean cooking differ, what they share, and where to start cooking.
- Cultural Story · InternationalWorld Classics: A Cook's Tour Beyond IndiaTable & Traditions is India-first, but the world has a place at this table too. A guide to our curated international slice — the European, East Asian, Southeast Asian, Middle Eastern and North African, and American dishes worth cooking, and where to begin with each.