Use coconut cream (about 200g) if you can find it. If you use coconut milk, keep it in the fridge overnight to separate the cream. I used 1000ml of coconut milk packed in a paper box. You can also use canned coconut milk. After refrigerating, do not shake the can/box before opening it.
The top is cream and the bottom has some water. Separate the water from the cream. I got 360g of cream using 1000ml coconut milk. If you use 500ml coconut milk, you will get around 180 of the cream.
Cut the hardened coconut cream into small pieces.
I used palm sugar and light brown sugar. You can also use light or dark brown sugar instead of palm sugar.
If you use a palm sugar block, use a grater or knife to shave off manageable pieces of the sugar.
I used fresh pandan leaves. You can find fresh or frozen pandan leaves in Asian stores; skip them if you can’t find them.
Heat coconut milk together with sugar, pandan, and salt in a double boiler. Fill a medium-sized pot with about 3 inches of water and leave it at a simmer. Then, place a heat-proof bowl over the pot with coconut cream, sugars, pandan, and salt. (You can also heat the ingredients in a saucepan. Heat to warm it until the sugar melts. Do not boil.)
Stir constantly with a spoon as the coconut milk gets hotter.
After the mixture becomes warm and the sugar melts, remove the pot from the heat. Set aside.
Separate the yolks from the white. Beat the yolks gently with a fork until mixed. Do not beat too long otherwise, they get foamy.
Gradually pour half of the warm coconut mixture into the egg yolks with a spoon.
Stir the yolk mixture constantly while adding the coconut mixture, otherwise, the yolks curdle easily.
Now pour the yolk and coconut mixture into the remaining coconut mixture while stirring to mix everything.
Add the prepared mixture into a saucepan. Gently cook over medium-low heat. Don’t cook it over high heat, as the yolks will curdle. Continue to stir until the mixture thickens. It will prevent making lumps and sticking the jam to the bottom of the pan.
At around 2 minutes, the jam can coat the spatula but is still runny.
When the kaya is getting thick enough (at about 8 minutes), remove the saucepan from the heat. It should coat the back of the spatula thickly but with a spreadable consistency. The kaya will continue to thicken once it cools down completely. So don’t cook it until it’s too thick.
The kaya will still get thicker when it cools. Discard the pandan leaves. If you see any lumps or curdled egg, press the curd through a strainer.
Once the kaya has cooled down completely, transfer to a clean glass jar and secure the lid. Keep it refrigerated and use within 1 week.