A colourful Filipino steamed dessert made from glutinous rice flour, coconut milk, and sugar, separated into vibrantly flavoured layers of purple yam, jackfruit, and pandan. Each slice reveals a beautiful rainbow cross-section finished with toasted grated coconut on top.
Nutrition Facts
Per serving (estimated)
- 385 kcalCalories
- 14 gFat
- 11 gSaturated Fat
- 60 gCarbs
- 2 gFiber
- 26 gSugar
- 4 gProtein
- 55 mgSodium
- 180 mgPotassium
- 28 mgCalcium
- 1.2 mgIron
- 3 mgVitamin C
- 8 mcgVitamin A
Ingredients
For the base batter
- 2 cups glutinous rice flour
- 1 cup full-fat coconut milk
- 1 cup water
- 3/4 cup granulated sugar
- 1/4 teaspoon fine salt
For the flavoured layers
- 1/2 cup ube halaya (purple yam jam), mashed smooth
- 1/2 cup ripe langka (jackfruit), finely chopped and lightly mashed
- 1 teaspoon pandan extract
- 1/4 teaspoon ube extract (optional, for deeper colour)
- 3 tablespoons melted unsalted butter, for brushing
For the topping
- 1 cup freshly grated mature coconut meat
- 1 tablespoon toasted white sesame seeds (optional)
- 1 tablespoon sugar, for caramelising the coconut
Directions
- Line the bottom and sides of an 8-inch round cake pan with banana leaves or parchment paper brushed lightly with oil. Prepare a steamer with about 2 inches of water and bring it to a steady boil over medium heat.
- In a large bowl, whisk together the glutinous rice flour, coconut milk, water, sugar, and salt until completely smooth with no lumps. The batter should be the consistency of thin pancake batter; loosen with a splash of water if needed.
- Divide the batter evenly into 3 bowls. Stir the mashed ube halaya into the first bowl until vivid purple. Fold the chopped langka into the second bowl for the yellow layer. Add the pandan extract to the third bowl and tint with a drop of green food colouring if desired.
- Pour the purple ube batter into the prepared pan and spread evenly. Steam over rapidly boiling water for 8 to 10 minutes, or until the surface looks set and springs back lightly when touched.
- Carefully spread the yellow jackfruit batter over the set purple layer, return to the steamer, and steam for another 8 minutes. Finish by pouring the green pandan layer on top and steaming for a final 10 to 12 minutes, until a toothpick inserted in the centre comes out clean.
- Remove the pan from the steamer and let it cool completely on a rack, about 45 minutes. While cooling, toast the grated coconut with 1 tablespoon sugar in a dry pan over low heat until lightly golden and fragrant.
- Run a thin knife around the edge of the pan, invert the cake onto a serving plate, and peel away the leaves or paper. Sprinkle the toasted coconut evenly over the top and scatter with sesame seeds if using.
- Slice with a knife wiped clean between cuts to keep the layers distinct, and serve at room temperature as a snack or dessert.
Cook’s Notes
- Pour each layer gently over the back of a spoon to keep the lower layer from breaking apart.
- Strain each flavoured batter through a fine sieve before steaming to remove any glutinous rice lumps that would mar the smooth texture.
- Sapin-sapin keeps well covered at room temperature for up to 2 days; lightly steam a slice for 30 seconds to refresh it before serving.
- Use freshly grated coconut rather than the sweetened dried kind for the topping so it toasts properly and stays crisp.
- If you cannot find ube halaya, substitute with 1/4 cup ube powder whisked into a few tablespoons of hot water before mixing into the batter.
More Philippines Recipes You’ll Love
Craving more flavors from Philippines? Try these traditional recipes:









