Chicken simmered in a pale, mild coconut curry built on coriander, galangal, lemongrass, and a paste of shallots, garlic, and candlenut. The sauce is deliberately white rather than red — no turmeric or much chili — so the flavor is gentle, fragrant, and creamy. It is the centerpiece of the Lebaran (Eid al-Fitr) table in Java, eaten with ketupat, the compressed rice cakes woven in palm-leaf pouches. Sambal and fried shallots are served on the side for those who want more bite.
Opor is a Javanese dish whose coconut-and-coriander style shows the layered influence on Indonesian cooking, blending native coconut-milk braising with the dried spices of the maritime trade. It is most strongly associated with the Lebaran feast that ends Ramadan, when households across Java prepare opor ayam with ketupat as the holiday's defining meal; the pairing is so fixed that the dish reads as a symbol of the festival itself. As an everyday home dish it is far older than any record can pin down, so it is best understood as a long-standing Javanese tradition rather than a dated invention.
Opor is soft-spoken next to Indonesia's fierier curries: the first taste is creamy coconut and warm coriander, then a floral lift from lemongrass and kaffir lime, then a faint nuttiness from the candlenut that thickens the sauce. The chicken is tender and saturated with the pale gravy. There is little chili heat in the dish itself — the warmth is aromatic, not burning — which is why the sambal on the side matters, letting each diner sharpen the gentle sauce to taste. Spooned over ketupat, it is comforting and quietly festive.
Building the sauce in stages is what keeps it pale and clean-tasting: the ground paste of shallots, garlic, and candlenut is fried in oil first so its raw edge cooks off and the aromatics bloom without browning. Candlenut, rich in oil, both thickens the sauce and emulsifies the coconut milk so it stays smooth. The coconut milk is added in two parts and kept at a bare simmer, stirred often, because a hard boil would split the fat and curdle the gravy. Whole aromatics — lemongrass, galangal, kaffir lime, salam leaf — steep their oils into the sauce during the long, gentle cook.
Variations
Opor ayam putih is the classic white version; some cooks add a little turmeric for a pale-yellow opor ayam kuning. Beyond chicken, the same sauce is used for opor telur (eggs), opor tahu tempe (tofu and tempeh), and opor ayam kampung made with firmer free-range birds and a longer simmer. Regional Lebaran tables pair it variously with ketupat, lontong, or sambal goreng ati (spiced liver and potato), and the chili level is adjusted to the household.
On the Palate
Where Opor Ayam sits in the Indonesian flavor cloud
Ingredients
Serves 6How it's made
8 steps · 35 min active + 40 min waiting
- 16 min
Joint the chicken into serving pieces and pat dry.
- 26 min
Grind shallots, garlic, candlenut, and coriander into a smooth paste.
- 35 min
Fry the spice paste in oil with bruised lemongrass, galangal, kaffir lime, and salam leaf until fragrant.
Watch outFry the paste until fragrant but hold it back from browning — opor has to stay pale and clean-tasting, so bloom the aromatics without letting them colour.
- 44 min
Add the chicken and turn to coat, searing lightly without browning the paste.
- 512 min
Pour in the thinner first portion of coconut milk and simmer gently until the chicken is nearly cooked.
- 612 min
Add the thick coconut milk and keep at a bare simmer, stirring often so it does not split.
Watch outAdd the thick coconut milk and keep it at a bare simmer, stirring often — a hard boil splits the fat and curdles the gravy, so watch it and never let it roll.
- 78 min
Season with salt and a little palm sugar and simmer until the sauce thickens and the chicken is tender.
- 82 min
Rest briefly, then serve with ketupat, sambal, and fried shallots.





