Hainanese Kaya

Learning how to cook the old school way actually provides a foundation for modern cooks to improve. It makes you appreciate the time and effort that is put into the kitchen to create flavour. As part of my video series Old School Recipes from Malaysian Aunties, Hainanese kaya or coconut jam is a classic Malaysian favourite that I have to include. I got this old school kaya recipe from auntie Lim Yoke Lan, which was passed down to her from her late Hainanese mother.

It is a well-known fact that the Hainanese are generally amazing cooks. In those days, recipes do not have precise measurements. Cooking skills were accumulated through practice and experience, and a lot of Malaysian cooking requires time and labour. Mdm Lim’s mother used the very typical agak-agak method (approximation) for her recipes and measured everything with just her eyes. But her kaya is rich and smooth, just like the kaya on toast served at the Hainanese coffee shops. 


  • 10 duck eggs
  • 700g sugar
  • 700g coconut milk
  • 3-4 pcs pandan leaves
  • 1-2 tbsp ginger juice
  • Caramel: 50g sugar + 3 tbsp water

This recipe has been fine-tuned by Mdm Lim over the years to provide consistent measurements and results. Some of the tips and key advice in making kaya is summarised here:

Duck Eggs

You can use duck eggs or chicken eggs to make kaya. Traditionally, duck eggs were used and you can definitely tell the difference from the texture of the jam. Duck eggs yield a finer product. The yolk is creamier and the whites are thick and viscous. It makes the kaya creamier and very smooth compared to chicken eggs that have a more watery consistency. The downside to duck eggs is that it has a pretty strong smell, so we counter it by adding ginger juice.


The main skill involved in making kaya is stirring. You have to keep stirring to keep the mixture from getting lumpy. The first stage of cooking the egg and sugar mixture requires constant stirring for about an hour. You have to stir until the mixture thickens. After you add in the coconut milk, stir for another 20-30 mins to ensure there are no lumps and the mixture is thick. After that, you don’t need to worry about any lumps forming. You only need to check on it and stir it up every hour. 


The kaya is cooked in water bath and then double boiled. The heat needs to be gentle. How can you tell if the temperature is right? The water should be gently bubbling, with small bubbles. It should not be boiling vigorously. High heat can cause the eggs in the kaya to overcook and turn lumpy.


Whether you are making a half the recipe (with 5 eggs) or the full recipe with 10 eggs, the amount of time (and effort) required is still the same. My advise is to just go for the full recipe. The end product gives you about 2-3 large jam jars and that can get eaten up really quickly.

To get a dark brown colour on the kaya, Mdm Lim’s mother used to double boil it for 6-7 hours. This allows the sugars to caramelise resulting in a darker and thicker mixture. Over the years, Mdm Lim has created her own shortcut for this. She adds caramel to the kaya after about 3 hours of double boiling. This shortens the cooking time and your kaya can be ready with just 3-4 hours of double boiling. 

One thought on “Hainanese Kaya

  1. Pingback: Video Series: Old School Recipes from Malaysian Aunties | SOOKSTV

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s