Sapin-sapin, the Filipino sticky rice cake, in three layers of purple, white and yellow
Prep35 min
Cook1 hr 5 min
Serves8 servings
CuisineFilipino

Sapin-Sapin: Filipino Layered Rainbow Sticky Rice Cake

A steamed Filipino dessert made from glutinous rice flour, coconut milk, ube and langka. How to steam the layers without mixing them, latik, substitutes, storage and why layers go wrong.

Total: 2 hr 40 minLevel: Intermediate

Cooking flow

Cooking steps

STEP 11 / 9

Make the latik

25 min

Cooking coconut milk down to brown latik
Cook the latik over low heat, watching the color, and take it out before it gets dark

Put 200 ml coconut cream in a small pot and warm over medium heat for about 3 minutes. When it starts to bubble, lower the heat to low and cook for 18 to 22 minutes, tracing the bottom of the pot with a wooden spoon. Turn off the heat when the white liquid separates into oil and solids and the solids are a light golden brown. The color keeps deepening from residual heat, so take it out before it turns dark brown. Drain the oil with a sieve or paper, and keep the oil too, for greasing the pan.

STEP 22 / 9

Mix the glutinous rice flour batter

8 min

Mixing glutinous rice flour and coconut milk in a bowl to make a white batter
Do not add all the liquid at once to the glutinous rice flour; add the coconut milk in portions

In a large bowl put 300 g glutinous rice flour, 80 g unrefined sugar and 1.5 g salt and loosen the flour with a whisk. Add 400 ml coconut milk in 3 portions, mixing about 1 minute each time. This step uses no heat. The guide is that no dry flour remains and the batter falls in a thick ribbon when the whisk is lifted. If you use shiratamako, crush the lumps with your fingers before mixing.

STEP 33 / 9

Add the sweetness and strain the batter

7 min

Adding condensed milk to the white batter
After adding the condensed milk and water, strain the batter to remove small lumps

Add 100 g condensed milk and 100 ml water and mix for 2 more minutes without heat. Once the graininess of the sugar is gone, strain the batter through a fine sieve. Do not force small lumps left in the sieve through; crush them with a spoon and return them. The batter should be a little thicker than drinking yogurt, with the whisk streaks remaining for about 2 seconds before vanishing. Go on when the surface is smooth and no small flour lumps are visible.

STEP 44 / 9

Divide into three colors

10 min

Sapin-sapin batter divided among three bowls of purple, white and yellow
Keeping the three batters equal in amount makes the layers stable when cut

Divide the batter into 3 equal parts with a measuring cup, about 260 ml each. Into the first put 80 g ube halaya and 1 tsp ube extract for the purple layer. Into the second put 30 g coconut flakes for the white layer. Into the third put 70 g jackfruit chopped into 5 mm pieces and 0.4 g turmeric for the yellow layer. This step also uses no heat. Large pieces would crack the layer boundary, so chop the jackfruit small.

STEP 55 / 9

Prepare the pan and the steamer

8 min

Putting the banana-leaf-lined pan into the steamer
Grease the pan, line it with banana leaf or parchment paper, then put it in the steamer

Grease a 20 cm round pan with the oil from the latik or 2 tsp rice bran oil. Pour boiling water over the banana leaf or hold it over low steam for 10 seconds, and when it is pliable lay it in the pan. Bring the steamer water to a boil over high heat, and when steam is rising firmly, lower to medium-high. Keep at least 3 cm of water from the bottom of the pot. Set it at a height where the water does not touch the pan once it is in.

STEP 66 / 9

Steam the yellow layer

13 min

Steaming the yellow sapin-sapin batter in a pan lined with banana leaf
Steam the yellow layer over medium-high heat until the surface no longer flows

Pour the yellow batter into the pan and pop large surface bubbles with a bamboo skewer. Make the layer about 1.2 cm thick with a flat, smooth surface. Steam over medium-high heat for 10 minutes, and go on when the surface does not flow and the center does not ripple much when you shake the pan lightly. If liquid still moves, add 2 to 3 minutes at the same heat. If you keep steaming over high heat, drops of water fall from the lid and leave holes in the surface.

STEP 77 / 9

Add the white layer

13 min

Steaming the white batter layered on the yellow layer
Pour the white layer along the back of a spoon so the layer below is not disturbed

Pour the white batter gently against the back of a spoon. Dropping it directly would make holes in the yellow layer. Steam over medium-high heat for 10 minutes; it is cooked when the surface is white and opaque and a bamboo skewer inserted shallowly comes out without liquid. If your lid tends to drip, wrap the lid in a kitchen towel, tying the ends on top so the towel does not touch the flame.

STEP 88 / 9

Steam the purple layer to finish

18 min

Checking sapin-sapin steamed through the purple layer with a bamboo skewer
Cook the purple layer through to the center and stop when no liquid clings to the skewer

Pour the purple batter gently in the same way. Spread the purple layer to about 1.2 cm too, lightly level the surface with a spatula and steam. Steam over medium-high heat for 12 minutes; it is done when a skewer in the center comes out without raw liquid. If the skewer picks up only a little translucent glutinous dough, add 3 minutes without turning off the heat. If the surface dries and looks about to crack, the heat is too high. Lower it toward medium, within a range where steam does not stop.

STEP 99 / 9

Cool and cut

1 hr 30 min

Checking the steamed sapin-sapin with a bamboo skewer and scattering the latik
Turn out sapin-sapin after it has cooled and cut with a wet knife so the layers hold

Turn off the heat, take out the pan and cool on a rack for 30 minutes. Covering it while hot returns steam and makes the surface watery, so once the heat has eased, cover loosely with plastic wrap and chill in the refrigerator for 1 hour. Run a wet knife around the edge of the pan and turn it out onto a plate. Cut into 8 pieces, wetting the knife with water, and scatter with the latik. If it is too cold and hard, take it out to room temperature 20 minutes before eating.

0 / 0
Ingredients

Ingredients

1 / 1

Ingredients

Ingredient Amount Role and substitutes
Glutinous rice flour 300 g If using shiratamako (glutinous rice flour dumpling flour), crush it fine first. Regular rice flour lacks stickiness
Coconut milk 400 ml For the batter. Shake the can well before using
Sweetened condensed milk 100 g Sweetness and the roundness of milk. Keep at least 60 g even to reduce sweetness
Light brown (unrefined) sugar 80 g White sugar also works. Avoid dark brown sugar, which muddies the color
Water 100 ml To adjust the thickness of the batter
Salt 1.5 g Tightens the sweetness
Ube halaya 80 g For the purple layer. 70 g purple sweet potato paste also works
Ube extract, or purple sweet potato powder 1 tsp An aid for color. You can make it without
Canned jackfruit 70 g For the yellow layer. Chop into 5 mm pieces
Turmeric 0.4 g An aid for the yellow. Too much shows in the aroma
Coconut flakes 30 g For the white layer. Replace with the same amount of macapuno if you have it
Coconut cream 200 ml For the latik. If none, use coconut milk
Rice bran oil 2 tsp To grease the pan. Use the oil released from the latik if you have it
Banana leaf 1 sheet (for a 20 cm round pan) Thaw if frozen. Parchment paper if none
0 / 0

Color rising from the steam: a sticky rice cake for celebration days

Sapin-sapin served on a plate, with purple, white and yellow layers scattered with latik
Cut sapin-sapin after it has cooled, and the boundaries between the three layers show clearly

When you lift the steamer lid, the sweet smell of coconut milk comes out first. Inside the round pan are layers of yellow, white and purple. While hot they still tremble unsteadily, but as they cool the glutinous rice flour sets, and when the knife goes in the boundaries between the colors appear cleanly.

Sapin-sapin is one of the Philippines' glutinous rice sweets, the kakanin. In Tagalog "sapin" refers to a layer or a lining, and the repeated name Sapin-Sapin is easiest to remember as "layer upon layer." A batter of glutinous rice flour, coconut milk and sugar is divided in three, and the color and aroma of ube, langka and coconut are steamed and set in turn.

What is hard to get right in a home kitchen is not making the colors bright. Pour the next layer while the one before can still flow and the boundary gets muddy; steam too long and the layers separate. This article is a home version for one 20 cm round pan, going step by step by heat and by how firm each layer is.

A note on terms

In English-language sources sapin-sapin is sometimes described as a Filipino layered sticky rice cake. Ube is purple yam, langka is jackfruit, and latik is the brown bits left when coconut milk is cooked down.

Where sapin-sapin sits at a Filipino table

A Filipino festive table with sapin-sapin and other sweets laid out
Because of its bright color and how easily it is cut, sapin-sapin suits celebrations and potlucks

Looking only at the ingredient list, sapin-sapin is "a sweet steamed glutinous rice flour cake." But at a Filipino table it sits a little closer to daily life. Kakanin is a large family of rice sweets and snacks, such as suman, puto, kutsinta and biko, appearing at breakfast, as snacks, at feasts, on cemetery visits and after church events. Among them, sapin-sapin suits gatherings because of its color.

The three layers differ by region and by shop. The easiest-to-follow arrangement is purple from ube, yellow from langka and white from coconut, but some shops add green pandan, white macapuno or a chocolate layer. In local homes extracts are sometimes used, but to keep a defined flavor, putting ube halaya in the purple layer, chopped jackfruit in the yellow layer and coconut in the white layer means it does not end as mere color-coding.

When recreating it outside the Philippines, you do not need every ingredient exactly as in the Philippines. What to protect is the stickiness of glutinous rice flour and coconut milk, the method of steaming one layer at a time, and the toasty note of latik. If you have no ube halaya, use purple sweet potato paste; if you have no canned langka, a little canned yellow peach or pumpkin paste is less likely to break the batter than mango. On days you have no macapuno, do not force a filling into the white layer; leave it cleanly as a coconut-only layer.

Southeast Asia has layered steamed sweets such as kue lapis of Indonesia and Malaysia, kanom chan of Thailand and bánh da lợn of Vietnam. Sapin-sapin belongs to this family while carrying a Filipino aroma through the combination of ube and latik. Even though it looks close to Japanese uiro, when you eat it the fat of coconut and the stickiness of glutinous rice flour come to the front, so the sweetness spreads in a different direction from a wagashi.

Ingredients and how to think about shopping

Sapin-sapin ingredients: glutinous rice flour, coconut milk, ube, jackfruit, sugar and banana leaf
Measure the glutinous rice flour, coconut milk, ube, langka and sugar first, then begin steaming

This makes one 20 cm round pan, 8 pieces. Because it has height, use a pan at least 5 cm deep. If you only have a shallow pan, use a 22 cm pan and make the layers thinner.

Allergy and food safety

This recipe uses dairy and coconut. If you replace the condensed milk with a plant-based one, sugar content and moisture vary by product, so if the batter is loose add glutinous rice flour 1 tbsp at a time. After steaming, covering it while still steaming lets water collect on the surface, so store only after it has cooled completely.

What is worth looking for when shopping is glutinous rice flour, coconut milk and a steamer with steady steam. Ube halaya and canned langka can sometimes be found at Asian grocers, but for anything you cannot find reliably, rely on the substitutes in the text rather than hunting for it.

Glutinous rice flour is the base of the texture. With ordinary rice flour you will get layers, but not the chewy, springy bite of sapin-sapin.

Coconut milk gives the batter its aroma and fat. Replace it with cow's milk and only the glutinous rice flour comes to the front, and the round aroma typical of Filipino kakanin thins out.

The steamer is the tool that keeps the layer boundaries clean. With a microwave the edges and center cook unevenly, so this article does not recommend it.

Method: set each layer before adding the next

With sapin-sapin, the waiting matters more than the mixing time. Do not hurry; pour the next layer only after the surface of each layer no longer flows.

Where it tends to go wrong and how to recover

A cross-section of sapin-sapin, the purple, white and yellow layers clearly separate
When the layer boundaries bleed, check whether the previous layer was undercooked or how the next batter was poured

The failures of sapin-sapin show in how it looks. If the layers bleed, you poured the next one while the previous layer could still flow. Next time steam until the surface goes matte and does not ripple much when you shake the pan. A batch that bled is fine to eat; chill it well before cutting and it breaks less.

If the center is raw, suspect thickness before heat. If the skewer comes out with white liquid on it, put the whole pan back in the steamer and add 5 minutes at a time over medium heat. If the surface is dry but the center is raw, the pan is too deep or the batter too heavy. Next time use a 22 cm pan with the same amounts, or add 1 tbsp water.

State Cause Fix
Layers mix Lower layer undercooked, or poured too forcefully Do not go by 10 minutes; steam longer until it does not flow. Pour the next layer along the back of a spoon
Many holes in the surface Drops from the lid, heat too high Use a lid wrapped in a towel. Lower from high to medium-high heat
Powdery center Flour lumps, batter too heavy Strain the batter. Crush shiratamako before use
Falls apart when cut Not cooled enough Chill at least 1 hour in the refrigerator and cut with a wet knife
Latik is bitter Cooked too long after it colored Take it out at a light golden brown, allowing for residual heat

Regional differences and substitute ingredients

Variations of sapin-sapin in different colors laid out together
Sapin-sapin is based on ube, langka and coconut, and color and aroma change by region and shop

The colors of sapin-sapin are not always limited to three. In Manila bakeries purple, white and yellow are the easy standard, but in the Visayas and in home versions you may find green pandan, white macapuno, chocolate-colored and pink layers. The more colors, the more steaming rounds, so three layers are plenty for a first try.

Ube is the Philippines' purple yam, and its aroma is a little different from beni imo or Japanese purple sweet potato. Ube halaya is easiest to use, and if you use purple sweet potato paste, avoid products with a lot of water. When using purple sweet potato powder, adding the powder straight in makes lumps, so dissolve it in 2 tbsp of the batter first and then return it. Beet powder can supply color alone, but the flavor moves away from sapin-sapin.

Langka is jackfruit. Canned jackfruit in syrup is sweet and strongly scented, so chop it and blot off the liquid before mixing it in. Mango may seem close in aroma, but it releases water when heated and loosens the layer. Just to keep the yellow, 30 g pumpkin paste with a little turmeric is more stable.

Macapuno is a mutant coconut flesh, sometimes sold as thin strands in jars. If you cannot find it, do not hunt for it; rehydrate coconut flakes in hot water and put them in the white layer. Even a white layer without any filling works well enough if the aroma of coconut milk is there.

Purple batter made with ube beside purple yam
If you have no ube halaya, purple sweet potato paste can substitute, but adjust the batter by its moisture

Cutting, storing and serving

Cutting sapin-sapin with a knife
Wetting the knife with water as you cut keeps the glutinous dough from sticking to the blade

Sapin-sapin is a sweet to cut after cooling, not freshly steamed. While hot, the space between layers is soft, and when the knife goes in the purple is dragged into the white. Chill it 1 hour in the refrigerator and take it out 20 minutes before cutting, and the cross-section shows well and it is not too hard to eat.

Storage is about 3 days in the refrigerator. Wrap each piece in plastic wrap and put in a container. You can freeze it for up to 2 weeks, but the surface dries a little after thawing. To eat, microwave a refrigerated piece at 600 W for 10 seconds; for a frozen piece, thaw overnight in the refrigerator and microwave at 600 W for 15 seconds. Overheating loosens the layers, so stop when it is just barely soft.

At the table, strong coffee, unsweetened tea or hot chocolate go well. In a Filipino menu, serving it after a sweet-sour sinigang or an adobo (in Japanese) with its lingering soy and vinegar aroma keeps it from feeling heavy. For reading alongside other kakanin, kutsinta with its strong brown sugar aroma, and puto, closer to a steamed cake, are also close entry points.

Sapin-sapin wrapped in banana leaf
The banana leaf is for aroma, not a storage container. Use plastic wrap and a container for storage

Frequently asked questions

Sapin-sapin batter divided into purple, white and yellow in three bowls
For common failures, think about whether it happened in the flour, the coloring, the steamer or the storage

Can I make it with regular rice flour instead of glutinous rice flour?

Not recommended. Regular rice flour alone will set, but it will not give the sticky chew of sapin-sapin. If you do use it, do not replace all of it; keep to 260 g glutinous rice flour and 40 g regular rice flour, and the texture breaks down less.

What if I do not have ube halaya?

You can substitute 70 g purple sweet potato paste. If the paste is watery, add 1 tbsp glutinous rice flour to the purple layer only. With purple sweet potato powder, dissolve 10 g in 2 tbsp of the batter before adding.

Can I make the color paler?

No problem. Layers that are distinct matter more than color. Without extracts the purple and yellow are pale, but if the flavors of ube, jackfruit and coconut are distinct it is enough for a home version.

Can I make it without a steamer?

Yes, if you put a steaming rack in a large pot. Keep the bottom of the pan above the water, cover, and steam over medium-high heat. A microwave tends to cook the center and edges unevenly and bleed the layers, so this recipe does not use one.

Can I make it vegan?

Yes, if you replace the condensed milk with coconut condensed milk. Sweetness and moisture vary by product, so if the batter is loose add glutinous rice flour 1 tbsp at a time. The latik can be made with coconut cream alone.

Can I make it ahead?

It suits being made the day before. Cool it completely, wrap in plastic wrap and refrigerate. On the day, take it out to room temperature 20 minutes before cutting, and scatter the latik afterward to keep its aroma.