Nasi Goreng (Indonesian Fried Rice with Shrimp and a Fried Egg)
Cold rice fried with shallots, garlic, shrimp paste, coriander and cumin, shrimp, snow peas and bean sprouts, darkened and sweetened with kecap manis and sambal, then topped with omelet strips and a fried egg.

Nasi goreng simply means "fried rice". In September 2018, Indonesia's Tourism Ministry named five dishes as the national food: soto, rendang, nasi goreng, satay and gado-gado (The Jakarta Post). In 2011, Wikipedia says, a CNN International online poll with 35,000 votes ranked it second on a list of the world's 50 most delicious foods, after rendang.
What sets it apart is kecap manis, a thick sweet soy sauce made with palm sugar, which turns the rice golden brown and slightly sweet, and terasi, a fermented shrimp paste. Wikipedia says commentators trace the dish to Chinese fried rice, made so rice would not go to waste, while Fadly Rahman of Padjadjaran University has argued it was inspired by Middle Eastern pilaf. The early 19th-century Javanese text Serat Centhini names a "sekul goreng", which may not be the same dish. It traveled to the Netherlands with Indo-Dutch families and was printed in a Dutch cookbook by 1925. A fried egg on top is so common that Wikipedia says the version with one is sometimes called nasi goreng istimewa, "special" fried rice.
Why it works the kitchen science
Sweet soy as the seasoning
Kecap manis is thick and sugary, so it coats the rice, caramelizes in the hot pan and balances the salty, funky terasi.
Two kinds of egg
The spiced omelet strips season the rice from inside, and the fried egg on top adds a soft, rich layer you break into as you eat.
Step by step
- Step 1
Whisk the 2 eggs with 1/2 tsp sambal, 1/4 tsp each coriander and cumin, salt and pepper. Heat 1 tbsp oil in a small skillet over medium heat. Add 1/2 tsp of the shallots and 1/4 tsp of the garlic for 30 seconds, then 1 tsp of the onion, the scallion whites and half the scallion greens for 1 to 2 minutes. Pour in the eggs and cook about 3 minutes, until set. Slide onto a board and cut into 1/2-inch strips.
- Step 2
Break the cold rice apart with your hands so there are no big clumps.
- Step 3
Heat the remaining 3 tbsp oil in a wok or large skillet over medium-high heat. Add the rest of the shallots and garlic for 30 seconds to 1 minute, until fragrant, then the rest of the onion for 2 minutes.
- Step 4
Add the shrimp and terasi and stir-fry 3 minutes, until the shrimp are pink and opaque. Add the snow peas for 1 minute, then the rest of the coriander and cumin and the bean sprouts.
- Step 5
Add the rice and stir about 3 minutes, until it is heated through and steaming (165°F). Stir in the remaining sambal and the kecap manis until the rice is evenly brown, and season with salt and pepper.
- Step 6
Meanwhile, heat 1 tbsp oil in a nonstick skillet over medium heat. Crack in the 4 eggs and fry about 3 minutes, then cover the pan 1 to 2 minutes more, until the whites are set and the yolks are firm (or as you like them).
- Step 7
Pile the rice on plates, lay the omelet strips over it, top each plate with a fried egg and the rest of the scallion greens, and serve with cucumber, tomato and krupuk.
Nasi Goreng (Indonesian Fried Rice with Shrimp and a Fried Egg)
Serves 4 · 4 plates · 45 min total
Omelet
- 2 large eggs
- 1/2 tsp sambal oelek
- 1/4 tsp ground coriander
- 1/4 tsp ground cumin
- Salt and pepper
- 1 tbsp vegetable oil
- A little of the shallot, garlic, onion and scallion below
Fried rice
- 3 tbsp vegetable oil
- 2 shallots, minced
- 1 garlic clove, minced
- 1 medium onion, finely chopped
- 2 scallions, thinly sliced, whites and greens kept apart
- 4 cups cold cooked rice, from the refrigerator
- 1/2 lb medium shrimp, peeled and deveined
- 1/2 tsp terasi (Indonesian shrimp paste)
- 20 snow peas, sliced on the diagonal
- 1/2 tsp ground coriander
- 1/2 tsp ground cumin
- 1 1/2 cups bean sprouts
- 1 tbsp sambal oelek
- 3 tbsp kecap manis (Indonesian sweet soy sauce)
To serve
- 4 large eggs and 1 tbsp oil, for frying
- Cucumber and tomato slices
- Prawn crackers (krupuk), optional
Method
- Whisk the 2 eggs with 1/2 tsp sambal, 1/4 tsp each coriander and cumin, salt and pepper. Heat 1 tbsp oil in a small skillet over medium heat. Add 1/2 tsp of the shallots and 1/4 tsp of the garlic for 30 seconds, then 1 tsp of the onion, the scallion whites and half the scallion greens for 1 to 2 minutes. Pour in the eggs and cook about 3 minutes, until set. Slide onto a board and cut into 1/2-inch strips.
- Break the cold rice apart with your hands so there are no big clumps.
- Heat the remaining 3 tbsp oil in a wok or large skillet over medium-high heat. Add the rest of the shallots and garlic for 30 seconds to 1 minute, until fragrant, then the rest of the onion for 2 minutes.
- Add the shrimp and terasi and stir-fry 3 minutes, until the shrimp are pink and opaque. Add the snow peas for 1 minute, then the rest of the coriander and cumin and the bean sprouts.
- Add the rice and stir about 3 minutes, until it is heated through and steaming (165°F). Stir in the remaining sambal and the kecap manis until the rice is evenly brown, and season with salt and pepper.
- Meanwhile, heat 1 tbsp oil in a nonstick skillet over medium heat. Crack in the 4 eggs and fry about 3 minutes, then cover the pan 1 to 2 minutes more, until the whites are set and the yolks are firm (or as you like them).
- Pile the rice on plates, lay the omelet strips over it, top each plate with a fried egg and the rest of the scallion greens, and serve with cucumber, tomato and krupuk.
Adapted from Widjiono "Yono" Purnomo (Yono's and dp An American Brasserie, Albany, New York), "Nasi Goreng > Indonesian Fried Rice with Shrimp", James Beard Foundation (4 servings). We follow its amounts and method: an omelet seasoned with sambal, coriander and cumin and cut into strips; then shallots, garlic, onion, shrimp with terasi (3 minutes), snow peas, bean sprouts, 4 cups cold rice (3 minutes), sambal and 3 tbsp kecap manis. The fried egg on each plate is ours, following Wikipedia's description of nasi goreng istimewa, as are the cucumber and tomato garnish (Wikipedia names them as usual sides), the egg-frying times and the 165°F check. archive.jamesbeard.org. Ingredient list follows the source; the method is in our own words.
All sources (3)
Tips
- Purnomo favors day-old rice, which he finds less gummy than fresh.
- Terasi is strong: fry it with the shrimp so it cooks into the oil instead of staying in lumps.
- No kecap manis? It is sold in Asian groceries and many supermarkets; it is not the same as regular soy sauce, which is thin and salty.
- Wikipedia says versions in eastern Indonesia often leave out the kecap manis.
The rules people argue about
What the sources agree on, what they don't, and what is just a good story.
- Nasi goreng comes from Chinese fried rice. Disputed: commentators cited by Wikipedia trace it to Chinese fried rice; Fadly Rahman (via The Jakarta Post, February 2017) argues for a Middle Eastern pilaf.
- It is Indonesia's national dish. Documented: one of five national dishes named by the Tourism Ministry in 2018 (The Jakarta Post; Wikipedia cites Kompas).
- Real nasi goreng has kecap manis. Disputed: Wikipedia says most Indonesian versions use plenty of it, but eastern Indonesian versions often do not.
- The fried egg is part of the dish. Folklore: very common, and Wikipedia says the egg-topped plate is sometimes called nasi goreng istimewa; Purnomo's own recipe uses omelet strips instead.
Every other fried rice

Yangzhou Fried Rice (Young Chow Fried Rice)
China's most famous fried rice: day-old rice stir-fried with egg, shrimp, ham, roast pork, onion and peas, seasoned with salt, a pinch of sugar and Shaoxing wine instead of soy sauce, and finished with crisp lettuce and scallions.

Thai Crab Fried Rice (Khao Pad Pu)
Jasmine rice stir-fried with golden garlic and marbled egg, seasoned with fish sauce, soy and a little sugar, toasted in the wok, topped with sweet lump crab and served with cucumber, lime and chili fish sauce.

Chahan (Japanese Fried Rice with Chashu Pork)
Japanese short-grain rice stir-fried with fluffy egg, diced chashu pork belly and green onion, seasoned with soy sauce, white pepper and sesame oil, then packed into a rice bowl and turned out as a neat dome.

Kimchi Bokkeumbap (Korean Kimchi Fried Rice)
Steamed rice stir-fried with sour, well-fermented kimchi, its red brine and gochujang, finished with toasted sesame oil and topped with green onion, shredded gim, sesame seeds and a fried egg.

Arroz Chaufa (Peruvian Chinese Fried Rice)
The fried rice of Peru's chifa restaurants: chilled rice stir-fried with garlic and ginger-marinated chicken, ham, squares of thin omelet and green onions, seasoned with soy sauce and served with lime and ají.

Thai American Fried Rice (Khao Pad American)
Thailand's idea of an American plate: ketchup fried rice with carrots, peas, corn and raisins, molded into a dome and crowned with a sunny-side-up egg, with crisp fried chicken drumsticks, blooming hot dogs, tomato and cucumber around it.

Omurice (Japanese Omelet Rice)
Ketchup chicken rice with onion and peas, wrapped in a soft, custardy butter omelet, turned out seam side down into a neat football shape and finished with a zigzag of ketchup.

Chinese-American Pork Fried Rice
The takeout classic: jasmine rice darkened with soy and dark soy sauce, honey, sesame oil and Shaoxing wine, tossed with a full pound of red-edged char siu, onion, bean sprouts, scrambled egg and scallions.

Hawaii-Style Spam Fried Rice
Diced Spam fried until the edges crisp with ginger, onion and carrots, then tossed with rice, Shaoxing wine, soy and fish sauce, egg, peas and scallions, the local-style fried rice of Hawaii.

Hibachi Fried Rice (Japanese Steakhouse Garlic Butter Fried Rice)
The flat-top fried rice of America's Japanese steakhouses: freshly boiled long-grain rice fried until it sizzles and pops with soft egg and scallions, glazed with soy sauce and mirin and finished with garlic butter.

20-Minute Leftover Fried Rice
The weeknight method: leftover rice toasted in two batches in a smoking-hot wok, then tossed with onion, carrot, garlic and scallions, a little soy and sesame oil, one egg and a handful of frozen peas.

Hibachi Chicken Fried Rice, Inspired by Benihana
Inspired by, not official: jasmine rice fried with browned chicken, carrot, onion, garlic and soy sauce, crisped in a well of melting butter, then finished with scrambled egg, sesame seeds and scallions, the way the steakhouse chicken rice tastes.
Meatballs of the World

Italian-American Meatballs
Big, tender meatballs braised for an hour in red sauce over spaghetti. The one most Americans grew up with.

Pallottine (Abruzzo Meatballs)
Tiny meatballs, smaller than a marble, tossed right through square spaghetti alla chitarra. No bread at all.

Swedish Meatballs (Köttbullar)
Small, soft meatballs browned in butter, in a cream sauce made from the same pan, with lingonberry jam on the plate.

Danish Frikadeller
Pork meatballs shaped with a spoon and fried slowly in butter, crusty outside and soft in the middle.

Königsberger Klopse
German meatballs that are never fried: poached, then served in a creamy white sauce with capers.

Spanish Albóndigas in Almond Saffron Sauce
The tapas bar classic: small meatballs in a golden sauce thickened with fried almonds and bread.

Mexican Albóndigas with Chipotle and Mint
Soft meatballs with rice and fresh mint inside, simmered in a smoky tomato and chipotle broth.

Izgara Köfte (Turkish Grilled Meatballs)
Small, flat meatballs kneaded hard, rested cold, and charred on a hot grill pan.

Lion's Head Meatballs
Big, soft pork meatballs, stirred into a sticky paste, fried to set, then braised in a savory sauce.

Chicken Tsukune
Japan's chicken meatball: kneaded sticky, grilled on skewers, glazed with sweet soy tare, dipped in egg yolk.