Homemade Nonya Kaya (Pandan Kaya) or Coconut Jam

29 comments All Recipes, Snacks & Treats
 Kaya (a Malay word meaning ‘rich’) is a coconut egg jam, widely eaten as a spread over toasted bread, soft buns, and as a cake filling or topping. It has a smooth texture, is creamy and rich tasting, made primarily with coconut milk and eggs, subtly flavoured with pandan leaves, and sweetened with sugar.

Kaya (coconut jam) needs no introduction if you live in Singapore, Malaysia, or Indonesia. When spread lavishly onto crisply toasted, or softly moist, steamed slices of bread, it becomes a staple meal for breakfast, tea, or at any time of the day, whenever we feel inclined for a light, delicious snack.

More often than not, I enjoy thickly spread kaya with slabs of melted butter or peanut butter on toast (kaya butter or kaya peanut butter toast), as part of a light breakfast meal served at local coffee shops here.

Typically, this includes one to two half-boiled eggs, which if done perfectly, yields a slightly runny yolk, in just-cooked whites, the texture of soft, delicate tofu.

And in typical Singapore fashion, I enjoy my half-done eggs drizzled over with black soy sauce and dashes of white pepper, which I then poke at and stir, and even more unceremoniously, dunk my kaya toast in. It’s a gastronomic match made in heaven, when sweet meets savoury, and dry meets wet… bon appetit!



Kaya (a Malay word meaning ‘rich’) is essentially a coconut egg jam, and is widely eaten as a spread over slices of toasted bread, soft buns, and as a cake filling or topping.

It has a smooth texture, and is creamy and rich tasting, which might explain its name. It’s made primarily with coconut milk and eggs, subtly flavoured with pandan leaves, and sweetened with sugar. It’s also commonly referred to as srikaya.

The colour of kaya depends on the colour of the eggs, the amount of pandan, and the extent of caramelisation of the sugar. Nonya kaya is light green in colour, while Hainanese kaya uses caramelised sugar, is darker brown in colour, and often sweetened with honey.


It’s easy to get commercially produced kaya spreads off the shelf in grocery mini-marts and supermarkets, or if you enjoy kaya with more of a ‘homemade’ taste, these are also produced and sold by specialty bakeries and confectionary shops.

As easy and convenient as it is to buy ready made kaya, I enjoy making kaya at home as it’s easy and simple enough, though it does take some patience and time to cook, as you’ll need to stir the mixture, more or less, quite continuously, to prevent it curdling and becoming lumpy as the eggs in the mixture cook. As gentle, indirect heating is required, a double boiler or bain-marie is usually set up.

Homemade_Kaya_5Preparing a double boiler or bain-marie in your kitchen is easy! Here’s how: Use two different sized pots, one smaller and one bigger.

Depending on the quantity of mixture to be cooked, place the mixture you wish to cook in the smaller pot, and let it sit inside or over the rim of the bigger pot.

Fill the bigger pot with enough water, up to just below the base of the smaller pot (bain-marie).

If making a double boiler (or water bath), fill the bigger pot with enough water to come up the sides of the smaller pot, being careful not to let water overflow into the smaller pot. If the water level gets too low during the cooking, just add more hot water as required.

Ultimately, what is most appealing about making kaya yourself, is that you can use all natural ingredients, without preservatives, flavourings and colourings, and adjust the sweetness to your taste. So, why wait? Enjoy!


4.38 from 16 votes
Print Recipe

Homemade Nonya Kaya (Coconut Jam)

An easy recipe for homemade Nonya kaya, or coconut egg jam, prepared with eggs and coconut milk, flavoured with pandan juice, and sweetened with sugar (Adapted from source: 'Local Kueh - Joy of Cooking Series' by Novum Organum)
Course: Breakfast, Sauces & Jams, Snack, Snacks and Treats, Tea
Cuisine: Asian, Chinese, Straits Chinese
Prep Time: 10 mins
Cook Time: 40 mins
Total Time: 50 mins
Pin This Recipe Tried this? Leave a comment


  • 5 eggs
  • 175 g sugar
  • 225 ml coconut milk
  • 40 ml pandan juice*

To make pandan juice:

  • 5 pandan leaves, sliced into 1-cm sections
  • 3 tbsp water


  • To make pandan juice, blend or pulverize pandan leaves with water in a food processor or blender, until as fine as possible. Strain the mixture, pressing it with the back of a metal spoon, to obtain pandan juice. Measure out 40 ml (leftover juice will keep well in an airtight container for up to 5 days, refrigerated).
  • In a mixing bowl, combine eggs and sugar, and whisk by hand until sugar dissolves, about 2 minutes. Add coconut milk and pandan juice, and stir to mix well. Strain the egg-coconut milk mixture into a small pot, that can sit inside a bigger pot.
  • Set up a double boiler or bain marie. Place the small pot inside the bigger pot. Carefully pour water into the bigger pot, until the water comes up the sides of the small pot (do not allow the water to overflow into the small pot).
  • Bring the water in the bigger pot to a gentle boil or simmer over medium fire, stirring the mixture continuously. As the mixture cooks, it will thicken and become sticky. Keep stirring until kaya is at the desired consistency. Pour out the kaya, and set aside to cool completely.
  • If a smooth, lump-free texture is desired, pour the cooked kaya into a food processor or blender, and pulse the mixture for a few seconds, or until desired smoothness. Set aside to cool completely. Once cool, store in an air-tight container and refrigerate.
Did you make this? Share it on Instagram!I'd love to see! Don't forget to mention @foodelicacy or tag #foodelicacy so we can drool with you!


  1. Hi Jonathan, thank you so much for taking the time to comment. Yes, this is also pandan kaya, and as the recipe was sourced from a local cookbook series, I was referring to it by the author’s original title. I’ve taken your suggestion and will update the recipe title.

  2. I personally think that it is more appropriate to name this kaya as Pandan Kaya.

  3. Hi Ibi, glad you liked it! Awesome job with the slow and gentle cooking of the custard, it’s so easy to overcook and end up with a curdled mess, but you nailed it! I know, it’s a lot of hard work, but I’m with you on this one – homemade is the best there is! Thank you so much for writing in to share! Have a wonderful weekend!

  4. Hi Celia, your recipe was easy to follow but what a lot of stirring to do…!
    It was worth it though! I reduced my sugar to 140g and it was just nice for my taste. My kaya turned out smooth ( without using blender) and I think it’s a combination of continuous stirring and simmering water bath.. My go to kaya recipe now.. thank you

  5. How long does the jam good for? Will refrigeration extend its consummation, and if yes how many days? Thanks

  6. Hi Leo, this jam needs to be kept chilled in the refrigerator once cooked and cooled. If kept in an air-tight jar or container, it should keep well for up to 5 to 7 days.

  7. Hi, Celia
    Thanks for your clear explanations. Will make the kaya again when I have the time.
    God bless 🙂

  8. Hi Lilyn, so sorry to hear that. It’s normal for kaya to get a little lumpy, as it is basically a custard which needs slow and gentle cooking. It can become lumpy if cooked too long or cooked at an overly high temperature. Yolks will cook and pasteurise at 85 deg C, but over 87 deg C, it will start to curdle. Even if that happens, usually giving it a good couple of pulses in a blender always smoothens it out, but I’ve never experienced a grainy texture before so I’m not too sure what went wrong. Sounds like some of the sugar may have not fully dissolved? The kaya needs regular stirring over gently simmering water in a bain marie, to dissolve the sugar and prevent overcooking. I really hope this works out for you! I’m sorry if I couldn’t be more helpful?

  9. Hi, Celia
    After cooking the kaya, it’s texture is lumpy n after blending it, it’s not smooth but grainy. Why?

  10. Hi Jackie, I used boxed coconut milk, and have tried this with canned coconut milk as well, using the same amounts as per the recipe. I have found that the flavours of coconut milk do vary a little among brands, some give a creamier taste while others less so, so you’ll have to try. Hope it works out!

  11. May I ask what or which kind of coconut milk you used in both kaya recipes, fresh or tinned? If fresh, then the how of it please. Thanks.

  12. Hi Amanda, warm greetings to you in Amsterdam (where it must be quite cold now at this time of the year!) What a pleasure to read your lovely story! Thank you so much for sharing, I’m so thrilled this recipe worked out for you to your enjoyment. I hope your boyfriend’s mom took to this home-made version. I’m as mad as you are over kaya. Though I know it’s so easy and affordable to get kaya everywhere in Singapore, as in your country of Malaysia, but I just love home-made versions as well. You said it, this is truly magical! Hope your friends love it as much! Enjoy and keep your lovely stories coming, ya! Cheers, Celia

  13. Hi Celia,

    I absolutely love kaya and have been craving for it being so far away from home (Malaysia). I’m in Amsterdam right now. I chanced upon your recipe and decided to have a go because I wanted to make some kaya for my boyfriend’s mom who also loves kaya (She’s Dutch but fell in love with it while visiting Malaysia a couple of years back). I had to ‘wing’ it a bit with a hand blender to get the pandan juice from fresh pandan leaves. But besides that, I am so happy with the results! I was sad that the yield was quite little as in it was just enough for the gift bottle and not enough for myself haha. I’m making more this weekend for myself and for more friends to let them try this magical concoction 😉 Thank you!

  14. Thank you so much for sharing, Eve!?

Leave a Comment

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.