Ingredients
– 1 cup coconut cream (kakang gata) for making latik
– 3 1/2 cups glutinous rice flour for chewy kakanin texture
– 2 cans (13.5 ounces each) coconut milk for richness and coconut flavor
– 1 can (14 ounces) condensed milk for sweetening and creamy finish
– 1 cup sugar for balancing coconut flavor
– 3 drops ube flavor extract for purple layer
– 3 drops langka flavor extract for yellow layer
Instructions
1-First Step: Make the latik Start by placing 1 cup coconut cream in a saucepan over medium heat. Stir constantly as it boils, thickens, and the oil begins to separate. Keep cooking until the solids turn golden brown. This is the latik, and it gives the dessert its classic toasted coconut flavor. Drain the latik, then save the coconut oil separately because you will use it to grease the pan and brush the finished cake.
2-Second Step: Prepare the pan Use the coconut oil from the latik to grease an 8 x 2-inch round baking pan. You can also use an 8 x 8 square pan or a springform pan if that works better for your kitchen setup. Grease it generously. If you want extra insurance against sticking, line the pan with banana leaves or parchment paper.
3-Third Step: Mix the batter In a large bowl, combine 3 1/2 cups glutinous rice flour, 2 cans (13.5 ounces each) coconut milk, 1 can (14 ounces) condensed milk, and 1 cup sugar. Stir until the mixture is smooth and the sugar dissolves. The batter should be fairly loose and pourable. If you want the smoothest texture possible, strain it through a fine-mesh sieve before dividing it into three equal portions.
4-Fourth Step: Flavor the three layers Add 3 drops ube flavor extract to one portion and mix well. Add 3 drops langka flavor extract to a second portion. Leave the third portion plain and white. This is what gives Filipino dessert layers their iconic look. If you want a more traditional version, you can also add mashed cooked ube, chopped jackfruit, or macapuno, which I will cover later.
5-Fifth Step: Steam the purple layer first Pour the purple batter into the prepared pan and steam for about 10 minutes, or until it is set. Keep the steamer at a steady heat so the layer cooks evenly. If you are using a multi-tier steamer, this part goes smoothly, but a single steamer works well too. Avoid lifting the lid too often because the temperature drop can slow the setting process.
6-Sixth Step: Add the yellow layer Once the purple layer is firm, gently pour the langka flavored yellow batter on top. Steam for another 10 minutes. Pour slowly so the layer stays even. If the top looks too wet after steaming, give it a little more time before adding the next layer.
7-Seventh Step: Finish with the white layer Pour the plain white batter over the yellow layer and steam for about 10 minutes more, or until a toothpick comes out clean. The full cake uses about 6 cups of rice batter, which fits the pan nicely. Do not rush this step. The final layer should look set but still soft.
8-Eighth Step: Cool, unmold, and top with latik Let the cake cool completely before removing it from the pan. This helps the layers hold together and makes slicing easier. Loosen the edges with a knife, then invert the cake onto a platter so the purple layer is on top. Brush the surface generously with coconut oil and sprinkle with latik. Slice into servings and enjoy your beautiful Filipino Sapin Sapin while it is at room temperature or lightly chilled.
Last Step:
Please leave a rating and comment letting us know how you liked this recipe! This helps our business to thrive and continue providing free, high-quality recipes for you.Notes
🛢️ Grease pan generously with latik oil – prevents sticky disaster!
🍌 Line with banana leaves for authentic aroma, easy release.
❄️ Cool fully before inverting – holds pretty layers intact.
- Prep Time: 10 minutes
- Cooling: 30 minutes
- Cook Time: 50 minutes
- Category: Dessert
- Method: Steaming
- Cuisine: Filipino
- Diet: Vegetarian
Nutrition
- Serving Size: 1 slice
- Calories: 557 kcal
- Sugar: 35g
- Sodium: 51mg
- Fat: 24g
- Saturated Fat: 20g
- Unsaturated Fat: 4g
- Trans Fat: 0g
- Carbohydrates: 80g
- Fiber: 2g
- Protein: 8g
- Cholesterol: 11mg
