Method
- Combine rinsed rice, coconut milk, water, lemongrass, salam leaves, pandan, ginger and salt in a heavy pot or rice cooker. The liquid should sit 1.5cm above the rice — slightly less than for plain rice, since coconut milk is thicker.
- Bring to a boil over medium-high heat, uncovered. The moment it boils, drop the heat to the lowest possible flame and cover tightly.
- Steam 18 minutes without lifting the lid. The rice is cooked when you can smell the coconut clearly and the sound of bubbling has stopped.
- Off the heat, rest covered another 10 minutes. The rest is what allows the rice to absorb residual moisture and turn fluffy rather than wet.
- Remove the lemongrass, salam, pandan and ginger. Fluff the rice with a fork — the grains should be separate, slightly translucent, and perfumed with coconut.
- To serve: mound nasi uduk in the centre of each plate. Arrange the lauk (side dishes) around: a piece of fried tempeh, a small mound of crispy anchovies, a scattering of peanuts, a fried egg, sambal kacang, sliced cucumber, fried shallots scattered everywhere. Each diner takes a bit of everything in each bite.
Common questions
Can Nasi Uduk be made ahead?
Nasi Uduk is best made and eaten the same day, but the components can be prepped earlier — chop and measure the ingredients up to a day ahead, refrigerated separately. Final cooking takes about 30 minutes.
Is Nasi Uduk spicy?
Nasi Uduk as written is mild to mildly warming — the heat comes from aromatics rather than chili. Add fresh sliced chili or chili oil at the end if you'd like to push it spicier.
Is Nasi Uduk vegetarian or gluten-free?
This recipe is suitable for most diets. If you have specific restrictions, the substitutions section in each ingredient note covers the most common swaps.
How hard is Nasi Uduk to make at home?
Nasi Uduk is approachable for a home cook with basic stove skills — total time about 45 minutes, no special technique required.
Can Nasi Uduk be scaled up or down?
This recipe is written for 6 servings. To scale, multiply each ingredient proportionally; the cooking times stay the same up to about double the volume. Beyond that, expect to cook in batches because of pan size and heat distribution.
Cultural Note
Nasi uduk is Jakarta's contribution to the Indonesian rice canon — a Betawi (Jakarta-native) breakfast and street-food dish. The classic morning warung sets out nasi uduk with two dozen small dishes; the customer pays for what they take. The pandan-and-lemongrass scenting is the signature; without those aromatics the rice tastes only of coconut. Nasi liwet is the Solo (Central Java) cousin made differently; nasi lemak is the Malay equivalent. Each Indonesian island has its preferred coconut rice, and arguments about which is the best are perennial.