The aroma of coconut and lemongrass wafts through the air, transporting you to a dreamy, tropical paradise. You're walking down a winding alley in Jakarta, the capital city of Indonesia, and it's not all all uncommon to get hit with the intoxicating aroma of Nasi Uduk Betawi. It's part of what I consider to be the holy trinity of Indonesian rice dishes along with nasi kunyit and nasi minyak.

This is the ultimate Indonesian coconut rice. It can be enjoyed by everyone, regardless of dietary restrictions, because it’s 100% vegan and gluten-free. It makes the perfect bed for all your Indonesian favorites like tahu goreng, sambal goreng, as well as dishes like ensaladang talong, and vegan butter chicken.
You take your first bite, and it's a revelation. The rice is creamy and decadent, with a subtle sweetness from the coconut milk. The toppings add a burst of flavor and texture, from the crispy tempeh to the tangy sambal. You close your eyes and savor each bite, transported to a mystical realm of pure bliss.
Jump to:
- 🥰Why you are going to adore the ever-loving heck outta this recipe
- What is Nasi Uduk Betawi?
- 🍚Notable ingredients in this recipe
- 🤯Variations
- 📖 How to make perfect Nasi Uduk Betawi:
- 💡Serving Ideas
- Shaping the rice
- 👉Top tip
- 🤷♀️FAQ
- ✌️Here's the best stuff to serve over this rice:
- Nasi Uduk Betawi (Indonesian coconut rice)
🥰Why you are going to adore the ever-loving heck outta this recipe
More Flavorful than a Suitcase Full of Lemongrass: This Indonesian-style steamed rice is known for its bold and vibrant flavors. Even without the meat and gluten, this vegan version is packed with flavor from the coconut, lemongrass, and a variety of fresh herbs and subtle, aromatic spices.
Customizable Rice Options: Nasi Uduk Betawi traditionally uses white rice, but this recipe can be made with a variety of rices to suit individual preferences. You can use brown rice for a healthier option or jasmine rice for a more fragrant and aromatic dish.
Easy Rice Preparation: This recipe can be made in a rice cooker, making it even easier to prepare. Simply add the rice and coconut milk mixture to the rice cooker and let it do its magic while you prepare the toppings.
✅Tested and Approved Worldwide: Like all the recipes on my blog, this rice has been meticulously fine-tuned not only by me but by a team of dedicated recipe testers around the world, including in Indonesia where the dish is from. No matter where you are on the planet, rest assured it's been tested to work everywhere!
What is Nasi Uduk Betawi?
Nasi Uduk Betawi is a traditional Indonesian rice dish that originated in Jakarta, the capital city of Indonesia. The dish is believed to have been created by the Betawi people, an ethnic group native to Jakarta, who were known for their rich culinary heritage and unique blend of Indonesian, Chinese, and Indian influences.
The name "nasi uduk" translates to "mixed rice" in Indonesian and refers to the dish's unique preparation method. The rice is cooked with coconut milk, lemongrass, and other aromatics to infuse it with flavor and then mixed with various toppings and side dishes.
Nasi Uduk Betawi is typically served as a breakfast or brunch dish and is often sold by street vendors and at traditional markets throughout Jakarta. It is a popular and beloved dish in Indonesia and is considered a staple of Betawi cuisine.
Over time, the dish has evolved and been adapted to suit different tastes and dietary restrictions. This vegan and gluten-free version of Nasi Uduk Betawi is just one example of how this classic Indonesian dish can be customized and enjoyed by people all over the world.
There is an extremely similar dish in Malaysia and Singapore called Nasi Lemak. It often includes the same ingredients as this recipe, but is typically served with different sides and toppings, such as fried shallots and anchovies. (please spare the poor baby fishies and don't do that...)
Some traditional Nasi Uduk Betawi recipes contain ingredients that are not vegan, such as:
- Ayam: The dish often uses chicken (a.k.a. ayam), beef or eggs as a topping or side dish.
- Shrimp paste: Shrimp paste, or terasi in Indonesian, is a common ingredient in Indonesian cuisine, including Nasi Uduk Betawi. However, it is not vegan as it is made from fermented shrimp.
- Koya (dried shrimp flakes): Koya is a traditional topping for Nasi Uduk Betawi, made by drying and grinding small shrimp. It is not vegan-friendly.
- Sweet soy sauce: Sweet soy sauce, or kecap manis in Indonesian, is a common condiment used in Nasi Uduk Betawi. While soy sauce itself is vegan, some commercial brands may contain added animal products. If you would like to learn to make your own Kecap Manis, I have full instructions for making it in my (very yummy) blog post about Mie Goreng.
🍚Notable ingredients in this recipe

Rice
While you can totally make this dish using regular white or even brown rice, using jasmine rice adds an aromatic and slightly sweet flavor to the dish. Jasmine rice has a soft and fluffy texture that pairs well with the creamy and flavorful coconut milk mixture used in this recipe. In Balinese, rice is called "beras," while in Indonesian (the official language of the rest of Indonesia), it is called "nasi."
Pandan
Pandan is another key ingredient in this vegan and gluten-free Nasi Uduk Betawi recipe, and it adds a sweet and aromatic flavor to the dish. I also use it in making kuih dadar, klepon, and lontong. Traditionally, pandan leaves are tied into knots and added to the rice while cooking to infuse it with their unique flavor and fragrance.
If fresh pandan leaves are not available, frozen pandan leaves can be used as a substitute. Frozen pandan leaves are readily available in many Asian grocery stores and can be used in the same way as fresh leaves.
However, it is best to avoid using pandan extract or paste in this recipe, as they often contain artificial ingredients and overly strong coloring, which can affect the flavor and color of the dish. Fresh or frozen pandan leaves are the best options to use in this recipe to ensure that you get the authentic and natural taste of this classic Indonesian dish.
In Indonesian, pandan is called "daun pandan." In Balinese, it is called "suji."
Galangal
This gnarly-looking root packs a punch of spicy, sweet, and citrusy flavor that isn’t easily replicated. Your kitchen will be filled with the aromatic scent of this root, which is sure to impress your guests (or at least make your cat curious). Galangal is called “laos" in Balinese and is sometimes called “lengkuas” in Indonesian.
If you can’t find fresh galangal at your local Asian grocery store, you can use dried galangal, which is a bit milder in flavor, and more readily available online.
Lemongrass
Fresh lemongrass ("sere" in both Balinese and Indonesian) is an essential ingredient in this vegan and gluten-free Nasi Uduk Betawi recipe as it adds a distinctive citrusy and herbal flavor to the dish. If you are using fresh lemongrass, it should be chopped into thin slices and added to the coconut milk mixture while the rice is cooking.
If fresh lemongrass is not available, there are a few alternatives that can be used to add a similar flavor. One option is to use dried lemongrass, which can be found in many Asian grocery stores or online. Another alternative is to use lemon zest or a few drops of lemongrass essential oil. However, it's important to use these alternatives sparingly as they can be more potent than fresh lemongrass.

Indonesian bay leaves
These Indonesian bay leaves, also known as "daun salam" in Indonesian or "daun pandan wangi" in Balinese, are often used to add flavor to Nasi Uduk. These leaves have a slightly sweet and spicy flavor that pairs well with the other ingredients in the dish. If you can't find fresh or dried Indonesian bay leaves, you can substitute dried bay leaves or curry leaves, although the flavor will be slightly different. Alternatively, you can simply leave out the bay leaves and the dish will still taste delicious.
Coconut milk
Canned coconut milk is the cornerstone ingredient in this recipe, providing a rich and creamy base for the dish. When choosing coconut milk, it's important to look for a high-quality, ideally full-fat (not “light”) variety that doesn't contain any additives or artificial preservatives. Avoid coconut milk that contains added sugar, thickeners, or artificial flavors, as these affect the flavor and texture of the dish. Don’t use “cream of coconut” which is some straight-up garbage only good for making the type of piña coladas you would serve to your worst enemy!
In Indonesian, coconut milk is called "santan." In Balinese, it is also known as "jukut kelapa."
See the recipe card at the bottom of this page for the complete list of ingredients and their quantities.
🤯Variations
There are many interesting vegan variations of Nasi Uduk Betawi that you can try at home! Here are a few ideas to get you started:
👉Tempeh or tofu: For a protein-packed vegan version of the dish, consider adding fried tempeh or tofu to the recipe. These plant-based proteins are a great way to give the dish a hearty texture and satisfying flavor. Tempeh is a traditional Indonesian food. All over the country it is sold fresh, thick, actively fermenting, and wrapped in banana leaves. I loved tempeh before visiting Bali, but after having the it made the traditional way, the stuff I used at home in America seemed pretty darn sad.
👉Dat Purp: Use purple or black rice in the recipe for a beautiful, hearty, and unique version.
👉Veggies: Nasi Uduk Betawi can be made even more nutritious and delicious by adding a variety of vegetables to the rice while it cooks. Consider adding carrots, peas, green beans, or bell peppers to the mix.
👉Vegan meat substitutes: There are a variety of vegan meat substitutes on the market that can be used in place of traditional meat in the recipe. These include soya beef, grilled young green jackfruit, and vegan chicken. Heck, I even have a vegan chicken recipe here on this blog for you to try!
📖 How to make perfect Nasi Uduk Betawi:
You wanna see how this perfect aromatic rice gets made? I will walk you through the easy, delicious-smelling process. Or you can follow along with the easy-to-print recipe card towards the bottom of this page.

Step 1
Start by rinsing the rice in a fine mesh strainer until the water runs clear. Soak the rice in a large bowl of water for 30 minutes before draining.

Step 2
In a medium-sized pot, combine the drained rice with canned coconut milk, water, lemongrass stalk (bruised with the back of a knife), pandan leaves, Indonesian bay leaves, galangal slices, ginger, coriander powder, salt, and optional star anise. Stir everything together until well combined.


Step 3
Bring the mixture to a boil over medium heat, then reduce the heat to low and cover the pot with a tight-fitting lid. Cook the rice for 15-18 minutes or until the liquid has been fully absorbed and the rice is tender. If you are using a different kind of rice, such as brown or black rice, it will take longer than if using white or jasmine rice.
After the rice is cooked, remove the pot from the heat and let it sit covered for an additional 5 minutes to allow the flavors to meld and the rice to steam.

Step 4
While the rice is steaming, toast the peanuts. Heat the olive oil in a small pan over medium heat, then add the peanuts and toss to coat. Cook the peanuts for 3-4 minutes, stirring frequently, until they are lightly toasted and fragrant.
Once they are golden, drizzle with kecap manis, and continue to sauté for about 60 seconds until the sauce has caramelized.
To serve, fluff the rice with a fork and remove the lemongrass stalk, pandan leaves, Indonesian bay leaves, galangal slices, and optional star anise.
If desired, mold the coconut milk rice into a cone shape, or round shape. Top the rice with the toasted peanuts.
💡Serving Ideas
This rice is amazing served alongside the other Indonesian classics found on my blog such as Mie Goreng, or Bami Goreng. It’s also terrific, albeit non-traditional, topped with crispy tofu sisig (a dish from the Philippines), or tofu katsu (from Japan). A lot of stalls in Indonesia serve nasi uduk with sliced cucumbers, and I often serve it with spicy Korean cucumber salad, because heck, I am always down for more flavor rather than less!

You can totally use this rice to serve your favey Indian dishes with. Top it with some dal tadka, coconut milk gourd curry, dry bhindi, or saag aloo. You will not be mad 100%.
Shaping the rice
In Indonesia, the cone-shaped serving of nasi uduk is a traditional and visually striking way of presenting the dish. To achieve the cone shape, a small portion of cooked rice is placed onto a banana leaf or other pliable material such as parchment paper or foil. The rice is then shaped into a compact cone using the hands or a mold. The cone is often topped with a garnish such as fried shallots, sliced cucumber, or sliced tomato. This method of serving is not only aesthetically pleasing but also helps to keep the rice moist and warm.
To mold the rice into the traditional cone shape:
- Wet your hands with cold water to prevent the rice from sticking to your fingers.
- Take a small amount of rice and press it firmly into a cone shape.
- Use your hands to shape the cone and smooth out any bumps or unevenness.
- Repeat with the remaining rice until you have formed all the cones you desire.
To mold the rice into other shapes using a small round cup or ramekin:
- Wet the inside of the cup or ramekin with cold water to prevent the rice from sticking.
- Take a small amount of rice and press it firmly into the cup or ramekin.
- Use your fingers to press the rice into the edges and corners of the cup or ramekin.
- Invert the cup or ramekin onto a plate and gently tap the bottom to release the molded rice.
👉Top tip
Making this in a rice cooker:
When cooking rice in a rice cooker, the amount of water needed is typically less than when cooking on a stovetop. This is because rice cookers are designed to automatically adjust the cooking time and temperature to achieve perfectly cooked rice with minimal effort. Additionally, rice cookers are more efficient at trapping steam, which helps to cook the rice evenly and retain its moisture. It's important to follow the manufacturer's instructions and use the correct amount of liquid (water plus coconut milk) for the type and amount of rice being cooked.
The pandan:
Be gentle when stirring the rice with pandan leaves to avoid breaking them, which can result in the leaves releasing their color and flavor too quickly. You want to infuse the rice with the fragrance of pandan slowly and evenly throughout the cooking process.
🤷♀️FAQ
Nasi uduk can be made vegan by following my recipe, which uses only plant-based ingredients. Traditionally, the dish includes meat or fish as a side, but these are not essential ingredients.
The main ingredients of nasi uduk, such as rice, coconut milk, and spices, are all vegan. Some recipes call for using chicken stock as part of the cooking liquid or adding shrimp paste or fish sauce, which are not vegan.
❄️To refrigerate leftover Nasi Uduk
Let it cool down to room temperature before transferring it to an airtight container. You can keep it in the refrigerator for up to four days.
🔥For stovetop reheating
Add a splash of water or coconut milk to the rice to prevent it from drying out. Heat over medium heat, stirring occasionally until heated through.
☢️For microwave reheating
Transfer the rice to a microwave-safe container. Cover with a microwave-safe lid or damp paper towel and microwave on high for 1-2 minutes. Stir the rice and microwave for an additional 30 seconds to 1 minute, or until heated through.
✌️Here's the best stuff to serve over this rice:
❤️Love this recipe? It helps me out greatly if you leave a 5-star 🌟🌟🌟🌟🌟rating in the recipe card below and maybe even leave me a lovey-dovey comment too!

Nasi Uduk Betawi (Indonesian coconut rice)
Ingredients
- 2 cups jasmine rice
- 13.5 oz. coconut milk
- 1 ⅓ cups water
- 1 full stalk lemongrass dry external leaves and tips removed
- 2 pandan leaves fresh, or frozen and thawed
- 4 Indonesian bay leaves fresh, or dried
- 3 thin slices of galangal
- 2 thin slices of fresh ginger
- 1 teaspoon coriander powder
- ½ teaspoon salt
- Optional: 1 full star anise
For serving:
- ½ teaspoon olive oil
- ⅓ cup dry roasted peanuts
- 1 teaspoon kecap manis or plain tamari
Instructions
- Rinse the rice in a fine mesh strainer until the water runs clear. Transfer the rice to a large bowl and cover with water. Soak for 30 minutes, then drain the rice.
- In a medium-sized pot, combine the drained rice, canned coconut milk, water, lemongrass stalk (bruised with the back of a knife and cut into pieces that fit inside your pot), pandan leaves, Indonesian bay leaves, galangal slices, coriander powder, salt, and optional star anise. Stir well to combine.
- Place the pot over medium heat and bring the mixture to a boil. Once the liquid is boiling, reduce the heat to low and cover the pot with a tight-fitting lid.
- Simmer the rice for 15-18 minutes, or until the liquid has been fully absorbed and the rice is tender.
- Once the rice is cooked, remove the pot from the heat and let it sit covered for an additional 5 minutes to allow the flavors to meld and the rice to steam.
- While the rice is steaming, prepare the peanuts. In a small pan, heat the olive oil over medium heat. Add the peanuts and toss to coat. Cook the peanuts for 3-4 minutes, stirring frequently, until they are lightly toasted and fragrant.
- Once the peanuts are lightly golden brown, stir in the kecap manis (or tamari) and continue cooking for about 40 seconds until the peanuts are coated in the sauce.
- To serve, fluff the rice with a fork and remove the lemongrass stalk, pandan leaves, Indonesian bay leaves, galangal slices, and optional star anise. Top the rice with the toasted peanuts.
Notes
- Be careful not to break the pandan leaves when stirring the rice, as this can cause them to release their color and flavor too quickly.
- If you don't have a lemongrass stalk, you can use a tablespoon of lemongrass paste instead.
- Be sure to use a tight-fitting lid to prevent steam from escaping during the cooking process, which will help ensure that the rice is cooked evenly and perfectly.
- For the rice cooker method, simply combine all of the ingredients (except for the peanuts and olive oil) in the rice cooker, stir well, and cook according to the manufacturer's instructions.
HG
Great as a side dish, but I could eat this alone as a meal. Subtle coconut flavor with a real creamy feel to it, something that is usually lacking in vegan cooking. Leftovers heat up well too.