Nasi Lemak: Coconut Rice with Sambal and Anchovies

Nasi lemak is the dish Malaysia wraps in banana leaves and eats at every hour of the day — a mound of rice cooked in coconut milk until it smells faintly sweet, a spoonful of deep-red sambal with real heat, and a tangle of crispy fried anchovies, peanuts, a hard-boiled egg, and cool cucumber slices on the side. Every component is simple. The magic is getting all of them right at once, and that is what this post is for: the rice ratio that keeps grains separate, the visual cue that tells you the sambal is done, and anchovies that stay crunchy instead of going limp.

Overhead nasi lemak on a banana leaf: a molded mound of coconut rice, a spoonful of deep brick-red sambal, crispy fried anchovies, roasted peanuts, halved boiled eggs with jammy yolks, and cucumber slices

What Is Nasi Lemak?

Nasi lemak means “fatty rice” or “rich rice” in Malay — rice simmered with coconut cream or milk and pandan leaves — and it is widely treated as Malaysia’s national dish. It started as a humble breakfast wrapped in banana leaf packets sold at morning markets; today it shows up everywhere from roadside stalls to hotel breakfast buffets, often with fried chicken, rendang, or extra sambal piled on.

A proper plate has five parts, and none of them is optional: coconut rice, sambal (chili paste), ikan bilis (crispy dried anchovies), peanuts, hard-boiled egg, and cucumber. Leave one out and it is still a nice meal, but it is not nasi lemak. What follows is the home version I cook when I want the full plate — each part on its own timeline, all landing together.

The Coconut Rice: A Ratio, Not a Guess

Coconut rice goes wrong in exactly one way: too much liquid, and you get a sticky, porridge-like clump instead of separate, glossy grains. The rule that works in my kitchen is a 1:1 ratio of rice to total liquid by volume. Two cups of jasmine rice get two cups of total liquid — 1 1/2 cups coconut milk (one standard 400 ml can, basically) plus 1/2 cup water. Coconut milk’s fat coats the grains and slows absorption, so anything above 1:1 pushes the rice past tender into mushy. I have tested this more times than I care to admit, and the line is sharp.

The method: rinse the rice, combine everything in a heavy pot with salt and two pandan leaves tied in a knot, bring it to a boil, stir once, clamp the lid on, and drop the heat to the lowest it will go. Twelve minutes, then off the heat for ten minutes more with the lid still on. Do not lift the lid during those twelve minutes — every peek lets steam escape and costs you texture. Fluff with a fork, not a spoon, and only after the rest. The knotted pandan is a small thing that matters: bruising the leaves by knotting them releases noticeably more aroma than laying them in whole, and you can taste the difference in the finished rice.

If you are new to cooking jasmine rice properly, my guide to cooking perfect jasmine rice covers the rinsing and resting details that carry over here.

Freshly cooked coconut rice in a pot: fluffy white jasmine rice with steam rising and a knotted green pandan leaf resting on top

The Sambal: Cook It Until the Oil Splits

The sambal is the soul of the plate, and raw sambal is the most common home-cook failure — a bright-red paste that tastes sharp and harsh because the chilies never actually cooked. A finished sambal looks different: it darkens from bright red to a deep brick-red, and the oil you started with visibly separates and floats to the surface. Malaysian cooks call this pecah minyak — “the oil splits” — and it is the one cue that matters. Plan on 15 to 20 minutes over medium-low heat, stirring regularly, and do not rush it.

Two more things that separate a good sambal from a mediocre one. First, toast the belacan (fermented shrimp paste). Untoasted belacan tastes raw and aggressively fishy; wrapped in foil and heated in a dry pan for about 3 minutes per side until the edges brown and it smells savory rather than funky, it melts into the sambal as pure umami depth. Second, balance at the end: tamarind for sour, palm sugar for sweet, salt to bring it forward. Taste the sambal on plain rice, not off the spoon — that is how it will actually be eaten, and it needs to be bold enough to season the mild coconut rice around it. For more on building chili flavor from scratch, my homemade chili oil guide uses the same patient-low-heat logic.

Malaysian sambal chili paste simmering in a dark wok: deep brick-red paste with glistening separated oil pooling on the surface, a wooden spatula mid-stir, steam rising

The Toppings: Crisp Anchovies, Golden Peanuts, Cool Cucumber

Ikan bilis (dried anchovies) are the crunch of the dish, and they only stay crisp if they go into the oil dry. Rinse them, then pat them genuinely dry with paper towels — a damp anchovy steams instead of fries and turns leathery within the hour. Into oil at about 175°C (350°F) in small batches for 3 to 4 minutes, until deep golden. They should sound like tiny twigs when you tap the bowl. Season with salt the moment they come out of the oil, while the surface is still glistening — salt bounces off dry anchovies.

Fry the raw peanuts in the same oil afterward for 4 to 5 minutes until golden; they continue darkening off the heat, so pull them a shade lighter than you think. The eggs can be jammy (6 1/2 minutes) or fully hard (10 minutes) — street stalls go fully hard, I go jammy. Cucumber goes on raw and cold, and that contrast is the point: something cool and fresh against the heat of the sambal.

Ingredients

For the coconut rice

  • 2 cups (400 g) jasmine rice, rinsed until the water runs mostly clear
  • 1 1/2 cups (400 ml can) full-fat coconut milk
  • 1/2 cup (120 ml) water
  • 1 teaspoon fine sea salt
  • 2 pandan leaves, tied in a knot (optional but recommended)

For the sambal

  • 12 dried red chilies, stems removed and soaked in hot water 20 minutes (or 8 dried + 2 Thai bird’s eye chilies for extra heat)
  • 6 shallots (about 150 g), roughly chopped
  • 4 garlic cloves
  • 1 teaspoon belacan (shrimp paste), toasted in foil until edges brown
  • 1 tablespoon tamarind paste dissolved in 3 tablespoons warm water
  • 1 tablespoon palm sugar, shaved (or brown sugar)
  • 1/2 teaspoon fine sea salt, plus more to taste
  • 1/3 cup (80 ml) neutral oil

For the toppings

  • 1 cup (about 100 g) ikan bilis (dried anchovies), rinsed and patted very dry
  • 1 cup (150 g) raw peanuts, skins on
  • 4 eggs
  • 1 small cucumber, sliced into rounds
  • Neutral oil for frying (about 2 cups)
  • Fine sea salt

Instructions

  1. Start the rice. Combine the rinsed rice, coconut milk, water, salt, and knotted pandan leaves in a heavy-bottomed pot. Bring to a boil over medium-high heat, stir once, cover with a tight lid, and reduce to the lowest heat. Cook 12 minutes without lifting the lid, then remove from the heat and rest 10 minutes, lid still on. Remove the pandan, fluff with a fork.
  2. Blend the sambal base. Drain the soaked chilies. Blend chilies, shallots, garlic, and toasted belacan with 2–3 tablespoons of the soaking water until you have a coarse paste. A little texture is good.
  3. Cook the sambal. Heat the 1/3 cup oil in a wok or deep skillet over medium heat. Add the paste and cook, stirring regularly, for 15 to 20 minutes. It will darken from bright red to deep brick-red; you are done when the oil visibly separates and pools on the surface (pecah minyak). Stir in the tamarind liquid, palm sugar, and salt; cook 2 minutes more. Taste on a spoonful of rice and adjust salt and sugar.
  4. Fry the ikan bilis. While the sambal cooks, heat the frying oil to 175°C (350°F). Fry the patted-dry anchovies in two batches, 3 to 4 minutes per batch, until deep golden and audibly crisp. Drain on a rack or paper towels and salt immediately.
  5. Fry the peanuts. In the same oil, fry the peanuts 4 to 5 minutes until golden, a shade lighter than your target color — they darken as they cool. Drain and salt lightly.
  6. Boil the eggs. Lower the eggs into boiling water: 6 1/2 minutes for jammy yolks, 10 for fully set. Chill in ice water, peel, halve.
  7. Assemble. Mound the coconut rice on each plate (banana leaf if you have it), spoon sambal alongside, and arrange the anchovies, peanuts, egg halves, and cucumber. Serve warm.

Tips and Variations

  • Make the sambal ahead. It keeps 2 weeks in the fridge in a clean jar with a thin layer of oil on top, and the flavor actually deepens. It also freezes well for 3 months — freeze it flat in a zip bag so it thaws fast.
  • Dried chilies vs. fresh. Dried red chilies give the sambal its classic brick-red color and a rounded, slightly smoky heat. All fresh chilies make it brighter and sharper but paler — a mix (dried base + a couple of fresh Thai bird’s eye) gives you both color and punch.
  • No belacan? Use 1 teaspoon of fish sauce plus 1/2 teaspoon of miso as a stand-in. It will not be identical, but it brings the same savory depth. Vegetarian readers can skip it entirely and add an extra pinch of salt.
  • Add a protein. Fried chicken is the classic upgrade; a spoonful of beef rendang on the side turns it into a feast. Even a fried egg with lacy edges works on a weeknight.
  • Coconut milk choice. Full-fat canned coconut milk only — “light” coconut milk is mostly water and the rice comes out bland. Shake the can well before measuring.

Troubleshooting: Fix My Nasi Lemak

Nasi lemak has more moving parts than most weeknight recipes, and each one has its own way of going sideways — wet rice, harsh sambal, limp anchovies. If something came out wrong, tell the troubleshooter what happened and it will walk you through the fix, straight from my kitchen.

HERB & LIME · KITCHEN HELP

Fix My Nasi Lemak

Choose what went wrong to see a practical next step.

What went wrong with your Nasi Lemak?

From Paul's kitchen. Results vary with chili heat, coconut milk brand, and stove heat — adjust timing to your setup.

Quick reference (also works without JavaScript)

The sambal tastes raw or harsh

Cause: The chili paste was pulled off the heat before it cooked through — the chilies are still raw-tasting because the sambal never reached pecah minyak, the point where the oil separates and the paste darkens.

Try: Put it back on medium-low heat and keep cooking, stirring regularly, until the oil visibly pools on the surface and the color turns deep brick-red — then season. You cannot fix raw sambal with more sugar; only cooking time fixes it.

Prevent: Budget a full 15 to 20 minutes over medium-low heat and do not season until the oil splits (pecah minyak) and the paste darkens. Stir regularly so it cooks through instead of just frying the edges.

The coconut rice is wet or mushy

Cause: Too much liquid went into the pot. Coconut milk does not behave like water — its fat coats the grains and slows absorption, so the 1:1 rice-to-liquid ratio has almost no slack.

Try: For this batch, spread the rice on a sheet pan and let it steam off uncovered for 10 minutes — it will not become separate grains again, but it will dry out enough to serve. Next pot, cut the liquid.

Prevent: Keep total liquid at exactly 1:1 with the rice by volume (2 cups rice to 2 cups total liquid: 1 1/2 cups coconut milk plus 1/2 cup water). Coconut milk's fat slows absorption, so extra liquid that would be fine with water alone turns the rice to porridge.

The ikan bilis went soft or leathery

Cause: The anchovies went into the oil wet, or the oil was not hot enough — surface moisture turns frying into steaming, and steamed anchovies are leathery instead of crisp.

Try: Spread them on a rack and give them 5 more minutes in a hot oven (200°C / 400°F) — oven heat drives off the surface moisture without more oil. They will not be as good as properly fried, but they will crisp up.

Prevent: Rinse the anchovies, then pat them genuinely dry with paper towels before they touch the oil, and fry in oil at about 175°C (350°F) in small batches. Damp anchovies steam instead of frying, and a crowded pan drops the oil temperature into the steaming zone.

The sambal tastes bitter

Cause: The paste scorched — high heat or an unstirred stretch let the chili-shallot sugars catch on the pan, and scorched sugars read as bitterness you cannot cook out.

Try: Pull the pan off the heat now, and try balancing: a little more palm sugar and tamarind can round the bitter edge, but scorched paste stays scorched — if it tastes burnt, start the paste over; nothing masks it.

Prevent: Keep the heat at medium-low, never high, and stir regularly the whole time — the paste has sugars from the shallots and caramelizing palm sugar that scorch fast over high heat. Fry gently until the oil splits; browning is wanted, blackening is not.

The rice burned on the bottom

Cause: The burner was too high for the covered simmer. Once the lid goes on, only the lowest heat keeps the bottom from scorching while the steam finishes the grains above.

Try: Do not stir or scrape — the scorched layer will taint everything. Scoop the unburnt rice off the top into a new bowl and serve that; leave the stuck layer behind.

Prevent: After the pot comes to a boil, drop the heat to the absolute lowest your burner holds before putting the lid on, and do not lift the lid during the 12-minute cook — lifting lets steam out and tempts you to crank the heat. A heavy-bottomed pot spreads the gentle heat evenly.

Overhead nasi lemak on a banana leaf: a molded mound of coconut rice, a spoonful of deep brick-red sambal, crispy fried anchovies, roasted peanuts, halved boiled eggs with jammy yolks, and cucumber slices

Nasi Lemak with Coconut Rice and Spicy Sambal

Malaysia's national dish at home: coconut rice cooked to separate glossy grains, a deep brick-red sambal cooked until the oil splits, crispy fried anchovies, golden peanuts, jammy eggs, and cool cucumber.
Prep Time 25 minutes
Cook Time 45 minutes
Total Time 1 hour 10 minutes
Servings: 4 servings

Ingredients
  

For the coconut rice
  • 2 cups jasmine rice 400 g; rinsed until the water runs mostly clear
  • 1 1/2 cups full-fat coconut milk one 400 ml can
  • 1/2 cup water 120 ml
  • 1 teaspoon fine sea salt
  • 2 pandan leaves tied in a knot; optional but recommended
For the sambal
  • 12 dried red chilies stems removed, soaked in hot water 20 minutes (or 8 dried + 2 Thai bird's eye for extra heat)
  • 6 shallots about 150 g, roughly chopped
  • 4 cloves garlic
  • 1 teaspoon belacan (shrimp paste) toasted in foil until edges brown
  • 1 tablespoon tamarind paste dissolved in 3 tablespoons warm water
  • 1 tablespoon palm sugar shaved, or brown sugar
  • 1/2 teaspoon fine sea salt plus more to taste
  • 1/3 cup neutral oil 80 ml
For the toppings
  • 1 cup ikan bilis (dried anchovies) about 100 g; rinsed and patted very dry
  • 1 cup raw peanuts 150 g, skins on
  • 4 eggs
  • 1 small cucumber sliced into rounds
  • 2 cups neutral oil for frying
  • fine sea salt

Method
 

  1. Start the rice. Combine the rinsed rice, coconut milk, water, salt, and knotted pandan leaves in a heavy-bottomed pot. Bring to a boil over medium-high heat, stir once, cover with a tight lid, and reduce to the lowest heat. Cook 12 minutes without lifting the lid, then remove from the heat and rest 10 minutes, lid still on. Remove the pandan, fluff with a fork.
  2. Blend the sambal base. Drain the soaked chilies. Blend chilies, shallots, garlic, and toasted belacan with 2–3 tablespoons of the soaking water until you have a coarse paste. A little texture is good.
  3. Cook the sambal. Heat the 1/3 cup oil in a wok or deep skillet over medium heat. Add the paste and cook, stirring regularly, for 15 to 20 minutes. It will darken from bright red to deep brick-red; you are done when the oil visibly separates and pools on the surface (pecah minyak). Stir in the tamarind liquid, palm sugar, and salt; cook 2 minutes more. Taste on a spoonful of rice and adjust salt and sugar.
  4. Fry the ikan bilis. While the sambal cooks, heat the frying oil to 175°C (350°F). Fry the patted-dry anchovies in two batches, 3 to 4 minutes per batch, until deep golden and audibly crisp. Drain on a rack or paper towels and salt immediately.
  5. Fry the peanuts. In the same oil, fry the peanuts 4 to 5 minutes until golden, a shade lighter than your target color — they darken as they cool. Drain and salt lightly.
  6. Boil the eggs. Lower the eggs into boiling water: 6 1/2 minutes for jammy yolks, 10 for fully set. Chill in ice water, peel, halve.
  7. Assemble. Mound the coconut rice on each plate (banana leaf if you have it), spoon sambal alongside, and arrange the anchovies, peanuts, egg halves, and cucumber. Serve warm.

Notes

Note 1: Keep total liquid at exactly 1:1 with the rice by volume — 2 cups jasmine rice to 2 cups total liquid (1 1/2 cups coconut milk plus 1/2 cup water). Coconut milk's fat coats the grains and slows absorption, so extra liquid that would be fine with water alone turns the rice mushy. The line is sharp.
Note 2: Do not lift the lid during the 12-minute cook, and knot the pandan leaves rather than laying them in whole. Knotting bruises the leaves and releases noticeably more aroma — you can taste the difference in the finished rice.
Note 3: The sambal is done only when the oil visibly separates and pools on the surface (pecah minyak) and the paste darkens to deep brick-red — plan on 15 to 20 minutes over medium-low heat. A bright-red paste that tastes sharp and harsh is simply undercooked.
Note 4: Toast the belacan in foil until the edges brown and it smells savory rather than funky. Untoasted belacan tastes raw and aggressively fishy; toasted, it melts into the sambal as pure umami depth.
Note 5: The ikan bilis must go into the oil genuinely dry — rinse, then pat bone dry with paper towels. A damp anchovy steams instead of frying and turns leathery. Salt them the moment they come out, while the surface is still glistening.
Note 6: Pull the peanuts a shade lighter than your target color — they keep darkening off the heat. Full-fat canned coconut milk only; the 'light' kind is mostly water and the rice comes out bland.

More Malaysian Recipes

If this plate sent you down the Malaysian rabbit hole, keep going — char kuey teow brings the same wok-driven energy to flat rice noodles, beef rendang is the slow-braised coconut-beef classic that pairs beautifully with the sambal here, mee goreng is the sweet-spicy Malay noodle stir-fry, and nasi goreng shows how the neighbors across the strait do their fried rice.

From the Garden

Sambal runs on dried chilies, and I dry mine from the same Thai chili plants I grow in pots on the balcony — a single plant puts out more than a household can eat fresh, so the surplus gets strung up and dried for sambal duty all year. If you want to try it, my guide to growing Thai chili peppers in pots covers the whole cycle.

Selamat makan — happy eating.

Leave a Comment

Recipe Rating