Nyonya Kaya is a sweet coconut spread infused with pandan flavour. It’s mainly eaten in Southeast Asia as a luscious topping for toast. This eggless kaya is made with real pandan leaves, and doesn’t use any artificial ingredients. Not only is the recipe vegan, it’s also naturally gluten-free, oil-free, and can be made sugar-free. If you’re a coconut or pandan lover, you’ve got to make your own Vegan Pandan Kaya. And make sure to check out my other pandan delights like Pandan Bread and Pandan Extract.
Although kaya is mostly known within Southeast Asia, its origin story is intercontinental. There are many players involved, including the Portuguese Empire, the British Empire, and Chinese immigrants.
Origins of Kaya
During the 16th century, Malacca (a city in modern-day Malaysia) was colonized by the Portuguese Empire and Portuguese influence made its way into local cooking. Portuguese desserts are heavy on the eggs and milk, so kaya, which is traditionally rich in eggs, was born. Dairy milk isn’t so common in Southeast Asia, so coconut milk was subbed instead.
There are theories that kaya was inspired either by the process for making European “curd” desserts (like lemon curd), or a specific Portuguese dessert called sericaia.
From Steamed Kaya to Kaya Toast
The original kaya is not like the soft, buttery spread we know today. It was steamed until firm and enjoyed as a solid dessert, which was eaten alone, either with a spoon or cut into slices. In fact, this version of kaya is still enjoyed today (see Regional Varieties, below).
But the more popular form of kaya was created in the 20th century. At this point, Malacca and Singapore were both under British occupation. Immigrants from Hainan (an island of China), who worked as cooks for the British, arrived in Malaysia and Singapore. Some of these Hainanese immigrants ended up settling down and running their own coffee shops, and they introduced the British custom of afternoon tea, with jam spread on toast. Instead of jam, they offered kaya, and instead of tea, they served it with coffee.
Traditionally, kaya is made in a double boiler, and takes hours and hours of stirring to get to the right consistency. This vegan version is faster to cook, but you’ll still have to spend at least 20 minutes over the stove, sorry. But if you love pandan, it’s worth it!
There are many different forms and flavours of kaya throughout Southeast Asia:
- Kaya (”rich”) in Malaysia and Singapore, the birthplace of kaya. The most popular form of kaya, the spreadable kind that you slather on toast, originated from Hainanese immigrants in these two countries.
- Sangkhaya in Cambodia, Laos, and Thailand. The traditional steamed variety of kaya is still favoured in these countries, spawning desserts like sangkhaya fak thong (kaya-stuffed pumpkin) and khao niao sangkhaya (sticky rice topped with kaya and steamed in banana leaves).
- Srikaya or seri kaya (”coconut egg jam”) in Indonesia.
- Matamís na báo (”sweet coconut”) in the Philippines. Filipino coconut jam is a bit different from other kaya, because it doesn’t use eggs, so it has a thinner consistency, and it’s also sweeter.
- Ca dé (”coconut curd”) in Vietnam. A popular dessert here is xôi cadé, which is steamed sticky rice spread with kaya. It’s similar to khao niao sangkhaya in Thai cuisine.
Hainanese Kaya vs Nyonya Kaya
In Malaysia and Singapore, there are two main varieties of kaya to be found:
- Hainanese kaya is golden to dark brown because it uses brown sugar which gives it a deep caramelized flavour. It is typically sweeter than Nyonya kaya.
- The Hainanese are credited for transforming kaya from a steamed dessert to a creamy breakfast spread. Check out the History of Kaya above.
- Nyonya kaya (also spelled Nonya) has a lighter green colour because it is flavoured with Pandan. The pandan not only provides a green colour, but also a rich fragrance that’s a little bit like vanilla cake.
- The Peranakans are another ethnic group in Southeast Asia with Chinese ancestry. Their cuisine is called Nyonya cuisine and it uses a lot of pandan leaves. So when they made kaya, they flavoured it with pandan as well and this variety of kaya became Nyonya kaya.
Each of these kaya spreads provides a unique taste that tastes delicious. But, being the pandan superfan that I am, I’m a bit biased towards Nyonya kaya. 😉
Interestingly, although both Hainanese and Peranakans are ethnically Chinese, you won’t find much kaya within China itself.
Uses for Kaya
Aside from kaya toast, here are other uses for this vegan pandan kaya:
- Kaya-filled wool roll: I like this King Arthur Baking recipe, but using my Vegan Master Sweet Dough for the bread and pandan kaya for the filling.
- Pulut tai tai: A beautiful Nyonya sticky rice dessert, which is traditionally topped with pandan kaya. All the ingredients are naturally vegan if you use homemade vegan kaya.
- Spread over steamed sticky rice, just like the Thai khao niao sangkhaya, or Vietnamese xôi cadé.
- Kaya star bread: I use this Master Sweet Dough Recipe for the dough, roll out two equal pieces, spread a thick layer of kaya between the dough, and shape the bread like this.
- Mixed into tapioca pudding
- Ice cream: Do you make your own vegan ice cream? Mix it into your ice cream batter for homemade pandan ice cream.
- Pandan ensaymada: Just use your favourite ube ensaymada recipe, but sub pandan kaya for the ube jam.
- Topping for shaved ice: Shaved ice desserts are huge in Asia and come with any sweet topping you can imagine. I bet kaya would make it even more delicious.
- “Pandan” de coco: Pan de coco is a Filipino bread roll stuffed with grated coconut. Mix some pandan kaya into the coconut filling for flavour heaven.
Veganizing Pandan Kaya
My journey to making homemade pandan kaya started with looking for ways to use up pandan pulp.
I love using whole pandan leaves to make Homemade Pandan Extract, but I don’t like wasting the leftover strained pulp. While making Pandan Bread, I had tried using unstrained pandan extract, but it left an unpleasant grassy taste.
Undaunted, I searched online for other recipes I could make with pandan pulp. That led me to this Thermomix recipe which gave instructions for making unstrained pandan kaya! The video showed them putting whole pandan leaves into the Thermomix and blending it with coconut cream. Indeed, from beginning to end they never strained out the leafy pulp!
I was set on trying this recipe for myself. The only ingredient I needed to replace were the eggs, because everything else in kaya is already vegan. I decided on silken tofu because I had seen it used as an egg replacer in other recipes like custard tarts, and it had a neutral taste that wouldn’t interfere with the pandan flavour. I also added a spoonful of tapioca starch to help the kaya thicken quickly without needing to spend a hundred hours at the stove.
My first attempt, which took 30 minutes of total stovetop time, was a success. It had a grassy aftertaste when I tried it hot, but once it cooled fully, the grassiness was totally gone. Nothing but silky smooth creamy pandan kaya!
I did a couple other experiments, like lengthening the cook time to make it thicker, substituting cornstarch for tapioca starch, adding a pinch of salt, and replacing the sugar with a a zero-cal stevia substitute.
Increasing the cook time creates a darker-coloured and thicker kaya. Adding a little salt was a good call because it really accentuated the sweet and creamy flavour. And using a sugar substitute worked out great!
Cornstarch turned out to be an acceptable substitute for tapioca starch, but it affected the texture a bit. The consistency changed from a goopy, jammy spread to a more solid structure, a bit like the consistency of haupia pudding. Also, the day after taking a scoop out of the jar of kaya made with stevia, I noticed some of the water had separated and pooled in the indentation my spoon had made. A little stirring was all it took to get it back to normal, though.
What You’ll Need
Since some of these ingredients (pandan, tofu) can be hard to measure by volume, I recommend using a kitchen scale for the best results. I’ve provided weight measurements for each ingredient in the Recipe Card.
Coconut cream provides the luscious mouthfeel and rich flavour of kaya. If you can’t find coconut cream, you can refrigerate a can of full-fat coconut milk overnight. The cream will accumulate to the top and solidify as it chills. The next day, scoop out the top half of the can to use in the recipe. The bottom half will be mostly water, which you can use to replace part of the liquid in this Pandan Bread recipe, Master Sweet Dough recipe, or Chal Bap recipe. I even recently added it to Hot Pot Broth for a hint of savoury coconut flavour.
Pandan leaves give Nyonya kaya its distinctive buttery vanilla-like flavour. I use fresh whole pandan leaves, but frozen leaves work as well. You should be able to find this in your local Asian supermarket. This recipe uses the whole leaf (no need to strain out the pulp), so it’s a great zero-waste way to use pandan. Be sure not to add more than the recipe stated amount, or else the kaya will take on grassy undertones.
Silken tofu replaces the job of eggs in the traditional recipe. Soft tofu works as well. Just don’t use anything firmer than that. The firmer the tofu, the stronger its soybean taste, which we don’t want in our pandan kaya.
Tapioca starch helps thicken up eggless kaya, cutting down the cook time to just 20 minutes while retaining the sticky, creamy texture. As I noted above, cornstarch is an acceptable substitute but it will result in a slightly different texture.
Note: this recipe makes the spreadable version of kaya. If you’d like to try the original variety of steamed kaya, which is firmer and not as sticky, I recommend cutting back the sugar and using cornstarch in place of tapioca starch. Cook for a full 30 minutes, then pour it into a mold and let it cool completely before unmolding and slicing. Since this is vegan kaya, there is no steaming required!
Sugar is important to add since kaya is a sweet spread, after all! You can also use a granulated sugar alternative for a low-carb version. I’ve tried it with erythritol, stevia, and monkfruit. Separation is normal if using a sugar-free alternative; just stir the liquid back in to return it to normal.
Finally, add just a pinch of salt to balance the sugar and enhance the beautiful pandan flavour.
For a full list of ingredients and quantities, refer to the recipe card at the bottom of this post.
Step 1: Start by adding all of your ingredients to a blender. For best results, use a powerful blender, something like a Blendtec or Vitamix. Otherwise you might find stringy little pandan leaf fibers in your finished kaya!! If you are not sure your blender is up for the task, I recommend to first make Strained Pandan Extract, then use the 2 tbsp of concentrated extract in place of the whole pandan leaves in this recipe.
Step 2: Now go ahead and blend all the ingredients using the highest speed on your blender. I’ve tested this recipe in both a Vitamix and Blendtec, and it takes around 1 minute for the Vitamix and 1:15 for the Blendtec. Basically, the mixture should be extremely smooth with very few flecks of green pandan visible. Remember to scrape down the sides as well to catch any unblended bits that get flung onto the sides of the blender.
Step 3: Pour the blended mixture into a small saucepan. Turn the stove on to medium heat and start stirring with a spatula or wooden spoon.
Step 4: Now comes the tedious part. You need to stir constantly for at least 25 minutes (starting from the moment you turn on the stove).
I’m sorry about the long cooking time, but it’s unavoidable. If you don’t stir, the bottom will start sticking to the pot and become too gluey and thick. The top will start bubbling and splattering all over your kitchen. So it’s important to keep an eye on it the whole time. Make sure that, as you stir, you’re always scraping the bottom to prevent it from sticking.
Step 5: As the kaya thickens, gradually turn down the heat to prevent over-bubbling. It will depend on your stove, but mine starts bubbling around the 15-minute mark. That’s the sign for me to reduce heat. Some bubbling is okay, because as you stir you will redistribute the heat and cool it down. But don’t let it bubble too vigorously because that’s when splattering happens. I typically start on medium heat and end up on the lowest heat setting by the end of cooking.
Step 6: In total you will be standing over the stove for 25–35 minutes, depending on how thick you like your kaya. The shorter time is for a thinner consistency, longer time is for more paste-like. But also note the kaya will thicken further as it cools so don’t worry if it seems too runny at the moment. Once the time is up, you’re done! Turn off the stove and transfer the kaya to a container. Put it in the refrigerator and let it chill fully before using.
Don’t be impatient! Trust me, pandan kaya tastes much better after you give it a chance to cool completely and for the flavours to meld.
Make Ahead & Storage Tips
Fridge: Store vegan pandan kaya in the fridge in an airtight glass jar. Freshly made kaya is best eaten within 5 days of making it.
Freezer: I haven’t tried freezing vegan kaya yet. I will update this section with my findings once I do.
Kaya is a coconut jam that originates from Malaysia and Singapore. It’s made from gently simmering coconut milk, eggs, and sugar until the mixture thickens into a rich, decadent spread. Traditionally it is served steamed or eaten on toast, but can also be used for dessert fillings.
Yes, kaya is vegetarian. Historically, kaya is not vegan, because the traditional kaya recipe uses eggs. However, my vegan pandan kaya uses a workaround so you can enjoy the same lush taste without eggs or any other animal products.
Kaya is dairy-free, although traditional kaya preparations do contain eggs. It is made with coconut milk instead of regular milk.
Both Hainanese kaya and Nyonya kaya use sugar, eggs, and coconut milk. Hainanese kaya uses brown sugar for its flavour and has a golden brown colour. Nyonya kaya uses pandan for flavour and has a light green colour.
Did you make this recipe? Please consider leaving a rating below to let me know how you liked it.
You can also take a picture and tag me on Instagram @earthtoveg, I will shout you out in my Stories!
Vegan Kaya (Eggless Pandan Coconut Jam)
Use Imperial/Metric buttons below to toggle between volume vs weight measurements. I recommend weighing out your ingredients for best results.
- 1 large pandan leaf, chopped into 1-inch segments
- ½ can coconut cream see Note 1
- ½ tube soft or silken tofu
- ¾ cup sugar *can sub with sweetener of your choice
- 1 tbsp tapioca starch
- pinch of salt
- Add all the ingredients to a powerful blender (see Note 2
). Blend on high speed for 1 minute, or until extremely smooth with no flecks of green pandan visible. Stop to scrape down the sides as needed.
- Pour the blended mixture into a small saucepan and set it on medium heat.
- Stir constantly for 25–35 minutes (shorter time for a thinner, syrupy consistency, longer time for more paste-like). As the kaya thickens, you need to gradually turn down the heat to prevent over-bubbling. I typically start on medium heat and end up on the lowest heat setting by the end of cooking.
- Turn off the stove and transfer the kaya to a container. The kaya will thicken further as it cools. Chill fully before using.
- If you don’t have coconut cream, you can refrigerate a can of full-fat coconut milk overnight. The cream will accumulate to the top and solidify as it chills. The next day, scoop out the top half to use in this recipe.
- For best results, use a powerful blender, something like a Blendtec or Vitamix, and blend for at least 1 minute to get it super suuuper smooth. Otherwise you might find stringy little pandan leaf fibers in your kaya. If you don’t have a strong blender, I recommend to first make Strained Pandan Extract (this involves an overnight wait), then use 2 tbsp of the concentrated extract in this recipe instead of whole pandan leaves.