Nasi Goreng with Sweet Soy and Crispy Shallots
Indonesia's fried rice, caramelised dark with kecap manis

Contents
↓ Jump to recipeNasi goreng means, plainly, fried rice — but calling it “Indonesian fried rice” undersells it the way calling paella “Spanish rice” undersells a whole national identity wrapped around a pan. This version leans hard into the ingredient that actually separates nasi goreng from every other fried rice on earth: kecap manis, a thick, treacly sweet soy sauce that caramelises against the hot wok until the rice turns a deep mahogany-brown and smells faintly of burnt sugar. Piled with shallots fried until properly crisp, it’s a dish built on two kinds of controlled char.
Nasi Goreng with Sweet Soy and Crispy Shallots
Ingredients
- 800g cooked jasmine rice, cold, ideally cooked the day before
- 6 banana shallots or 10 small shallots, thinly sliced
- 200ml vegetable oil, for frying the shallots
- 4 garlic cloves, finely chopped
- 2 red bird's eye chillies, finely chopped (deseeded for less heat)
- 1 tsp shrimp paste (terasi/belacan), or 1 tbsp fish sauce as a substitute
- 300g chicken thigh, boneless and skinless, cut into 1.5cm pieces
- 150g raw peeled prawns
- 3 tbsp kecap manis (sweet soy sauce)
- 1 tbsp regular soy sauce
- 1 tsp ground white pepper
- 2 eggs
- 100g cabbage, finely shredded
- 3 spring onions, sliced, plus extra to finish
- 1 lime, cut into wedges
- Sliced cucumber and tomato, to serve
Method
- Break up the cold cooked rice with your hands so no clumps remain — this matters more than any other single step.
- Heat the 200ml oil in a small saucepan over medium heat and fry the sliced shallots, stirring often, for 8 to 10 minutes until deep golden and crisp. Watch closely in the final 2 minutes as they can burn fast once golden.
- Lift the shallots out with a slotted spoon onto kitchen paper to drain and crisp further; reserve 2 tablespoons of the flavoured shallot oil.
- Heat 1 tablespoon of the reserved shallot oil in a large wok over high heat and fry the garlic, chillies and shrimp paste for 30 seconds until fragrant, mashing the shrimp paste into the oil.
- Add the chicken and stir-fry for 3 to 4 minutes until just cooked through, then add the prawns and cook a further 2 minutes until pink.
- Push the chicken and prawns to one side of the wok, crack in the eggs, and scramble them in the cleared space for 1 minute until just set, then stir through the rest.
- Add the cold rice to the wok, breaking it up further with the back of the spatula, and stir-fry over high heat for 3 to 4 minutes until every grain is hot through.
- Pour in the kecap manis, soy sauce and white pepper, tossing constantly for 2 to 3 minutes until the rice takes on an even, dark mahogany colour and the edges start catching slightly at the base of the wok.
- Add the shredded cabbage and most of the spring onions and toss for a final minute until just wilted.
- Divide between plates, piling the crispy shallots on top, and serve immediately with lime wedges, sliced cucumber and tomato, and the remaining spring onion.
Where nasi goreng comes from
Fried rice as a category is ancient and geographically enormous — the basic logic of turning yesterday’s rice into today’s meal appears everywhere rice is a staple, and Indonesia’s version has clear roots in Chinese cooking, brought by Chinese traders and settlers centuries ago. What makes nasi goreng distinctly Indonesian rather than a regional cousin of Chinese fried rice is kecap manis, a sauce with no real Chinese equivalent. It’s a purely Indonesian invention — soy sauce sweetened heavily with palm sugar, a product of Indonesia’s colonial-era soy sauce industry adapting to local tastes for sweetness (the word “kecap,” incidentally, is one etymological ancestor of the English word “ketchup,” via a chain of Malay, Chinese and Dutch borrowings that has nothing to do with tomatoes).
Nasi goreng is eaten at every meal in Indonesia — it’s as common a breakfast as a dinner, sold from street carts (kaki lima) from dawn, and it was named one of the world’s most delicious foods in a widely cited 2011 CNN poll, tying with rendang for the top spot. President Obama has spoken fondly of eating it as a child during his years in Jakarta, and it remains the dish most Indonesians abroad name first when asked what they miss. Every region and every home cook has their own version — some add chicken liver, some make it fiery with sambal, some serve it under a fried egg (nasi goreng jawa very often is) — but the caramelised sweetness from kecap manis is the one constant.
The regional map is worth knowing because it shows how far the base idea stretches. Nasi goreng kampung (“village-style”) leans on dried anchovies (ikan bilis) and a rougher, spicier sambal rather than sweetness, popular across Malaysia and parts of Sumatra. Nasi goreng pete, found across Java, folds in the notoriously pungent stink bean, an ingredient that divides opinion the way durian does but has a devoted following. Nasi goreng kambing, sold at night markets in Jakarta, uses leftover goat curry meat and its spiced cooking fat instead of plain oil, giving a completely different, muskier depth. In Bali, seafood versions built on prawns and squid are common near the coast. What travels between all of them is the method: aromatics fried hard, cold rice added and separated, a sweet-savoury sauce reduced against the hot metal until it clings. Treat this recipe the same way — as a technique to build on with whatever you have to hand, rather than a fixed formula.
Why the caramelisation matters
Kecap manis is thick — closer to a light treacle than a thin soy sauce — because it’s reduced with palm sugar, garlic and sometimes star anise during its own production. When it hits a screaming-hot wok, that sugar content means it doesn’t just season the rice, it caramelises against the hot metal, particularly at the edges and base where direct contact with the wok is highest. That caramelisation is what gives good nasi goreng its characteristic dark colour and faintly smoky, slightly bitter-edged sweetness that plain soy sauce, however much you add, cannot replicate.
The failure mode here is a wok that isn’t hot enough, or rice added while wet or in clumps. Cold, day-old rice matters because freshly cooked rice holds too much surface moisture — thrown into a hot wok, that moisture steams rather than fries, and steaming a starch keeps it soft and gluey instead of letting individual grains separate and take on colour at the edges. Rice cooked and refrigerated overnight loses surface moisture and its starches firm up (a process called retrogradation), so the grains separate cleanly under the spatula and each one gets proper contact with the hot wok surface, which is where the actual caramelisation of the kecap manis happens.
Frying the shallots separately, low and slow enough to render properly crisp rather than merely soft, works on the same caramelisation principle at a smaller scale. Shallots are sweeter than onions and fry beautifully when the oil temperature is kept moderate — too hot and they burn on the outside before the inside cooks through; too cool and they turn greasy and limp instead of crisp. Frying them first, then cooking the whole dish in a spoonful of that infused oil, means the wok carries a base note of shallot through every subsequent step.
Equipment matters more here than in most stir-fries. A thin carbon steel wok holds and releases heat fast, which is exactly what the rice needs to fry rather than stew; a heavy nonstick pan, by contrast, is slow to recover heat once cold rice hits it, and the rice ends up steaming in its own moisture before the pan gets back up to temperature. If your hob is a domestic gas or induction ring rather than a restaurant wok burner, cook in two smaller batches instead of one large one — a crowded pan simply cannot generate the fierce, sustained heat that real caramelisation needs, and a half-hearted attempt gives you soft, pale rice rather than the mahogany colour you’re after. The rice is done when it smells faintly of caramel and the grains at the base of the wok make a light, dry hissing sound as you toss, rather than a wet sizzle.
The recipe
Break up cold cooked rice by hand so no clumps survive. Fry sliced shallots in oil until deep gold and crisp, then drain, reserving some of the oil. Fry garlic, chilli and shrimp paste in that oil until fragrant, then cook chicken and prawns through. Push everything aside, scramble in the eggs, then stir through. Add the rice and stir-fry hot until every grain is heated, then pour in kecap manis and soy sauce and keep tossing until the rice turns a deep, even brown and starts catching very slightly at the wok’s base — that faint catching is exactly what you’re after. Toss through shredded cabbage and spring onion for a final minute, then plate immediately, piled with the crispy shallots, with lime, cucumber and tomato alongside.
Tips, substitutions, make-ahead and storage
If you can’t find kecap manis, make a rough substitute by warming 4 tablespoons of dark soy sauce with 3 tablespoons of soft dark brown sugar until dissolved and slightly syrupy — it won’t have the full depth of the real thing, but it gets you close. Shrimp paste is pungent raw but mellows into savoury depth once fried; fish sauce is a reasonable stand-in if you can’t find or don’t want it. Day-old rice is genuinely non-negotiable for the right texture — if you only have fresh rice, spread it on a tray and refrigerate uncovered for at least an hour to dry the surface before using.
Sourcing genuine kecap manis is worth the small effort: ABC and Bango are the two Indonesian brands most widely stocked in Asian supermarkets outside Indonesia, and both are miles ahead of anything labelled generically “sweet soy sauce” on a supermarket shelf, which is often thinner and less complex. Check the ingredient list if you have a choice — the better bottles list palm sugar near the top rather than glucose syrup, and taste noticeably less one-dimensional once caramelised. Jasmine rice is the standard choice for the base, but leftover basmati or even short-grain rice both fry up perfectly well; the day-old, dried-out texture matters far more than the variety.
Leftover nasi goreng keeps in the fridge for up to 3 days in an airtight container; reheat in a hot wok or frying pan rather than the microwave, which will steam it soft again and undo the texture you worked for. The crispy shallots keep separately in an airtight container at room temperature for up to a week and are worth making in a double batch — they’re excellent scattered over almost anything.
Variations
For a vegetarian version, swap the chicken and prawns for firm tofu, pressed and cubed, and use a mushroom-based dark soy in place of any shrimp paste or fish sauce. Add a fried egg, sunny-side up with a crisp, lacy edge, on top of each portion for the classic street-cart presentation — pierce the yolk at the table so it runs into the rice. For more heat, serve with a spoonful of sambal oelek alongside rather than stirred through, so each diner controls their own level.
Nasi goreng sits comfortably alongside other rice and noodle dishes built on caramelised sauces — chicken adobo with coconut and charred garlic works the same sweet-savoury-charred territory with a braise instead of a stir-fry, and if you want another dish that lives or dies on crispy fried alliums, scallion pancakes with ginger-soy dip is worth a look. Once you’ve got the technique — hot wok, cold rice, confident caramelisation — this is a fifteen-minute weeknight dinner for life.




