Indonesian Cuisine
Nasi Uduk
Betawi-style coconut rice with lemongrass, pandan, and bay leaves, served with egg strips, crispy anchovies, and roasted peanuts
Nasi uduk is breakfast in Jakarta. It is sold from roadside carts and warung stalls in the early morning hours, wrapped in banana leaves or brown paper, and eaten standing up or carried to a desk. The name comes from the Betawi word "uduk," meaning mixed, a reference to the coconut milk that is stirred into the rice before cooking. It is a dish of quiet elegance, the kind of food that seems unremarkable until you taste one made properly and realize how much the aromatics matter.
The technique is straightforward. Rice is cooked in a mixture of water and coconut cream, infused with lemongrass, pandan, bay leaves, and galangal. The result is rice that is subtly rich, fragrant without being heavy, and just barely sweet from the coconut. What makes a plate of nasi uduk complete are the accompaniments: thin omelette strips cut into ribbons, crispy fried anchovies, dry-roasted peanuts, fresh cucumber, and a spoonful of sambal. Each element adds a different texture and flavor, turning plain rice into a composed meal.
Nasi uduk shares a family resemblance with Nasi Lemak, the coconut rice of Malaysia, though nasi uduk tends to be lighter in body and more aromatic, leaning on lemongrass and galangal where nasi lemak relies on pandan alone. It is a natural companion to heartier Indonesian dishes. Serve it alongside Ayam Bakar for a satisfying lunch, or pair it with Tempeh Goreng and a simple vegetable side for something quieter. It belongs on the same table as Gado-Gado or Opor Ayam, dishes that share its gentle, coconut-laced character.
At a Glance
Yield
6 servings
Prep
15 minutes
Cook
25 minutes
Total
40 minutes
Difficulty
Easy
Ingredients
- 1¼ lbjasmine rice (about 3 rice-cooker cups)
- 3 cupwater
- ½ cupcoconut cream (thick coconut milk)
- 1 stalklemongrass, bruised with the back of a knife and tied into a knot
- 3 cmgalangal, peeled and thinly sliced
- 4Indonesian bay leaves (daun salam), or substitute regular bay leaves
- 2pandan leaves, tied into a knot
- ⅞ tspfine salt (about 1 tsp)
- 4large eggs
- ⅓ tspground black pepper (about 1/8 tsp)
- ⅓ tspfine salt (about 1/4 tsp)
- 1 tbspneutral oil (such as vegetable or peanut oil)
- 2 ozdried anchovies (ikan teri), rinsed
- 2¾ ozdry-roasted peanuts (skin-on if available)
- 2 tspneutral oil, divided
- 1small cucumber (about 150 g), sliced into thin rounds
- —Sambal of your choice
- —Kerupuk (shrimp crackers, optional)
Method
- 1
Rinse the rice in several changes of cold water, swirling the grains with your hand until the water runs mostly clear. This usually takes three or four rinses. Drain thoroughly through a fine mesh strainer and let it sit for a minute to release excess water.
- 2
Combine the water, coconut cream, and salt in your rice cooker or a heavy-bottomed saucepan. Stir until the coconut cream dissolves into the water and the liquid looks evenly milky. Add the lemongrass knot, galangal slices, bay leaves, and knotted pandan leaves. If using a saucepan, bring the liquid to a gentle simmer over medium heat. You will smell the lemongrass first, sharp and citrusy, followed by the softer, floral note of the pandan.
- 3
Add the rinsed rice to the aromatic liquid and stir once to distribute the grains evenly. If using a rice cooker, close the lid and select the white rice setting. If using a saucepan, bring the mixture back to a simmer, then cover tightly, reduce the heat to the lowest setting, and cook for 5 minutes. Stir once to prevent the bottom layer from sticking, cover again, and cook for another 5 minutes. Turn off the heat without removing the lid and let the rice rest undisturbed for 10 minutes. The steam trapped inside finishes the cooking. When you lift the lid, the surface of the rice should look dry with small craters where the steam escaped.
- 4
Remove and discard the lemongrass, galangal, bay leaves, and pandan leaves. Fluff the rice gently with a rice paddle or fork, lifting from the bottom and turning the grains over rather than pressing down. The grains should be distinct, glossy, and carry a faint coconut sheen.
- 5
While the rice cooks, prepare the omelette strips. Crack the eggs into a bowl and beat with the pepper and salt until the yolks and whites are fully combined. Heat a non-stick skillet over medium heat and add the oil, tilting to coat the base. Pour in the egg mixture and swirl the pan so it spreads into a thin, even layer. Cook without stirring until the surface is nearly set, about 90 seconds. The edges will pull away from the pan slightly when ready. Flip carefully and cook the second side for 30 seconds until lightly golden. Slide onto a cutting board, roll the omelette loosely into a cylinder, and slice crosswise into thin strips about 5 mm wide.
- 6
Prepare the crispy accompaniments. Heat 5 ml of oil in a small skillet over medium heat. Add the rinsed and drained anchovies and pan-fry, stirring frequently, until they turn golden and feel light and crisp when tapped with a spatula, about 3 to 4 minutes. Transfer to a plate. Add the remaining 5 ml of oil to the same pan, add the peanuts, and toast over medium-low heat until they darken slightly and smell nutty, about 2 minutes. Combine the peanuts with the anchovies.
- 7
Assemble each plate. Mound the warm coconut rice in the center. Arrange the omelette strips over or beside the rice. Place a small pile of the anchovy-peanut mixture alongside, followed by the cucumber slices. Add a spoonful of sambal on the side or in a small dish. Serve with kerupuk if you like.
Key Ingredient Benefits
Coconut cream: The thick layer that rises to the top of canned coconut milk, coconut cream has a higher fat content (roughly 20 to 25 percent) than regular coconut milk. It provides the richness that defines nasi uduk without making the rice heavy. Coconut cream contains lauric acid, a medium-chain fatty acid. Shake the can before opening if you want a more uniform consistency, or scoop from the top if the can has separated and you want the richest result.
Lemongrass: The pale, woody stalk used across Southeast Asian cooking. Its flavor is bright and citrusy, concentrated in the lower bulb. Bruising the stalk before adding it to the pot cracks the fibrous layers open and releases the essential oils more quickly. Lemongrass has a long history in traditional medicine for digestive comfort, though it is used here purely for flavor.
Galangal: A rhizome related to ginger but sharper, more resinous, and less sweet. It is not interchangeable with ginger in this recipe. If galangal is unavailable, 5 ml (1 tsp) of galangal powder can substitute, though the fragrance will be less vivid. Galangal contains compounds studied for anti-inflammatory properties in preliminary research, though the amounts used in cooking are small.
Daun salam (Indonesian bay leaves): These are not the same as European bay laurel, though they are often translated simply as "bay leaves." Daun salam has a milder, slightly more astringent flavor. Regular bay leaves work as a substitute but contribute a stronger, more herbal note. Use two regular bay leaves in place of four daun salam.
Pandan leaves: The long, blade-shaped leaves that give Southeast Asian cooking its distinctive floral, almost vanilla-like fragrance. They are used tied in a knot for easy removal. Fresh or frozen pandan leaves are available at most Asian grocery stores. There is no good substitute. If unavailable, omit rather than attempt a replacement.
Why This Works
Cooking rice in a mixture of water and coconut cream introduces fat into the starch matrix during the absorption phase. The fat coats the exterior of each grain, which keeps the grains separate and slightly glossy rather than clumped together. Because coconut cream is an emulsion of fat and water, it integrates smoothly without pooling, unlike butter or oil added after cooking.
The aromatic bundle of lemongrass, galangal, bay leaves, and pandan does more than add flavor. Lemongrass contains citral and geraniol, volatile compounds that are released by heat and absorbed into the rice as it steams. Galangal contributes a sharper, more peppery note that prevents the coconut from tasting flat. Pandan leaves release 2-acetyl-1-pyrroline, the same compound responsible for the natural fragrance of jasmine and basmati rice, which amplifies what is already present in the grain. Together, these aromatics create a layered scent that no single herb could achieve alone.
The 10-minute rest with the lid on is not optional. During this period, residual heat redistributes moisture from the wetter bottom layer to the drier top, evening out the texture. Lifting the lid early releases steam and leaves the top layer undercooked while the bottom turns mushy.
Substitutions & Variations
Rice type: Jasmine rice is traditional and preferred for its natural fragrance. Long-grain white rice works if jasmine is unavailable, though the aroma will be less pronounced. Basmati absorbs liquid differently; reduce the water by about 45 ml and expect a drier, fluffier grain.
Coconut cream: Full-fat coconut milk can replace coconut cream. Use the same volume but expect a slightly less rich result. Light coconut milk will produce a more subtle coconut flavor. Avoid coconut cream from a carton, which is often sweetened.
Galangal: If fresh galangal is unavailable, substitute 5 ml (1 tsp) of galangal powder mixed into the liquid before adding the rice. A 2 cm piece of fresh ginger will change the flavor profile noticeably but still produces pleasant rice.
Instant Pot method: Place all rice and aromatic ingredients in the inner pot. Seal the lid and cook on high pressure for 5 minutes. Allow a natural pressure release for 10 minutes before opening. Fluff, close the lid again, and rest for an additional 5 minutes.
Rice cooker method: Place all ingredients in the rice cooker pot, stir once, and use the standard white rice setting. After the cycle finishes, let the rice rest for 10 minutes before opening and fluffing.
Accompaniments: The egg, anchovies, and peanuts are traditional but flexible. Fried shallots, shredded chicken, Tempeh Goreng, or a slice of fried tofu are all common additions in Jakarta. For a more substantial plate, serve alongside Ayam Bakar or Opor Ayam.
Vegetarian version: Omit the dried anchovies. Replace with fried tempeh cubes or crispy fried shallots for textural contrast. The coconut rice itself is naturally vegan.
Serving Suggestions
Nasi uduk is a complete breakfast on its own, but it scales into lunch or dinner with very little effort. Ayam Bakar, the sweet soy-glazed grilled chicken, is one of the most popular pairings in Jakarta, its smoky char balancing the gentle coconut rice. Opor Ayam, chicken braised in a mild coconut curry, doubles down on the coconut theme in a way that feels comforting rather than redundant. For a vegetable-forward meal, Gado-Gado with its peanut dressing provides a different kind of richness and plenty of texture. Tempeh Goreng, fried until golden and slightly crispy, adds protein and a nutty bite that complements the soft rice. A simple clear soup with tofu and vegetables on the side keeps things light. Sambal is essential. Whether you use a fresh chili sambal, sambal terasi, or sambal oelek from a jar, the heat and acidity cut through the coconut and tie everything together.
Storage & Reheating
Coconut rice: Store in an airtight container in the refrigerator for up to 2 days. Reheat by sprinkling a tablespoon of water over the rice, covering loosely with a damp paper towel, and microwaving in 30-second intervals until steaming. Alternatively, reheat in a steamer basket for 5 to 7 minutes. The aromatic fragrance will fade after the first day, but the coconut flavor holds well.
Omelette strips: Best made fresh, but they keep in the refrigerator for 1 day in a sealed container. Bring to room temperature before serving or warm briefly in a dry pan.
Fried anchovies and peanuts: Store together in an airtight container at room temperature for up to 2 days. They will lose some crispness. A brief toss in a dry pan over medium heat for a minute will restore some crunch.
Cucumber: Slice fresh each time you serve. Cut cucumber turns soft and watery within hours.
Freezing: The plain coconut rice freezes well for up to 1 month. Thaw in the refrigerator overnight and reheat as above. The accompaniments should not be frozen.
Nutrition Facts
Calories: 604kcal (30%)|Total Carbohydrates: 80g (29%)|Protein: 24g (48%)|Total Fat: 22g (28%)|Saturated Fat: 8g (40%)|Cholesterol: 125mg (42%)|Sodium: 680mg (30%)|Dietary Fiber: 2g (7%)|Total Sugars: 1g
You Might Also Like
Ratings & Comments
Ratings & Comments
Ratings
Share your thoughts on this recipe.
Sign in to rate and comment

