Quick Recipe Version (TL;DR)
Quick Ingredients
- 4 cups (600 g) cold cooked jasmine rice (day-old preferred)
- 1 lb (450 g) ground lamb
- 3 tbsp kecap manis (Indonesian sweet soy sauce)
- 1 tbsp soy sauce
- 1–2 tbsp sambal oelek (to taste)
- 3 tbsp neutral oil (plus more if frying shallots/eggs)
- 4 garlic cloves, minced
- 2 tsp grated fresh ginger
- 4 scallions, sliced (whites and greens separated)
- 1 cup (150 g) diced carrots
- 1 1/2 cups (120 g) shredded cabbage
- 3/4 cup (110 g) frozen peas
- 2 large eggs (optional topping)
- 1/2 cup (30 g) crispy fried shallots (store-bought or homemade)
- 1 tbsp fresh lime juice
- Salt and black pepper
Do This
- 1) Stir together kecap manis, soy sauce, sambal, and lime juice; set aside.
- 2) Brown ground lamb in a hot wok/skillet with oil (6–7 minutes); season lightly; remove.
- 3) Sauté scallion whites, garlic, and ginger (30 seconds).
- 4) Stir-fry carrots and cabbage (2–3 minutes), then add peas (1 minute).
- 5) Add cold rice; stir-fry on high heat until hot and a little toasted (4–5 minutes).
- 6) Return lamb, pour in sauce, and stir-fry until glossy and well-mixed (1–2 minutes).
- 7) Top with scallion greens, crispy shallots, and a fried egg if you like.
Why You’ll Love This Recipe
- Big flavor, minimal fuss: Sweet soy sauce, chilies, and ginger-garlic bring instant nasi goreng vibes.
- Perfect for leftover rice: Cold rice fries up fluffy, not soggy.
- Weeknight-friendly: One pan, quick cook time, and easy swaps for whatever vegetables you have.
- Great textures: Savory lamb, crisp-tender vegetables, and crunchy fried shallots on top.
Grocery List
- Produce: garlic, fresh ginger, scallions, carrots, green cabbage, lime (optional: cucumber and tomato for serving)
- Dairy: eggs (optional)
- Meat: ground lamb
- Pantry: jasmine rice, kecap manis (sweet soy sauce), soy sauce, sambal oelek, neutral oil (canola/peanut), crispy fried shallots, frozen peas, salt, black pepper
Full Ingredients
For the Nasi Goreng Sauce
- 3 tbsp (45 ml) kecap manis (Indonesian sweet soy sauce)
- 1 tbsp (15 ml) soy sauce
- 1–2 tbsp (15–30 g) sambal oelek (start with 1 tbsp for mild-medium heat)
- 1 tbsp (15 ml) fresh lime juice
- 1/4 tsp freshly ground black pepper
For the Stir-Fried Rice
- 4 cups (600 g) cold cooked jasmine rice, loosened with your fingers (day-old rice is ideal)
- 3 tbsp (45 ml) neutral oil (canola, avocado, or peanut), divided
- 4 scallions, thinly sliced (whites and greens separated)
- 4 garlic cloves, minced
- 2 tsp (about 10 g) fresh ginger, finely grated
- 1 cup (150 g) carrots, diced small (about 2 medium carrots)
- 1 1/2 cups (120 g) green cabbage, thinly shredded
- 3/4 cup (110 g) frozen peas, thawed under warm water and drained
- 1/2 tsp kosher salt, plus more to taste
For the Lamb
- 1 lb (450 g) ground lamb
- 1/2 tsp kosher salt
- 1/4 tsp freshly ground black pepper
To Finish & Serve
- 1/2 cup (30 g) crispy fried shallots (store-bought)
- 2 large eggs (optional, for topping)
- 1 tsp neutral oil (optional, for frying eggs)
- Optional sides: sliced cucumber and tomato, extra sambal, extra lime wedges

Step-by-Step Instructions
Step 1: Make the sauce and prep the rice
In a small bowl, stir together the kecap manis (3 tbsp), soy sauce (1 tbsp), sambal oelek (1–2 tbsp), lime juice (1 tbsp), and black pepper (1/4 tsp). Set aside.
Loosen the cold rice with clean hands so there are no big clumps. (Clumps are the enemy of evenly stir-fried rice.)
Rice note: This recipe assumes you’re using cold cooked rice. If your rice is freshly cooked, spread it on a sheet pan and refrigerate 45–60 minutes to dry out before frying (not included in the total time).
Step 2: Brown the lamb
Heat a wok or large skillet over high heat for 1 minute. Add 1 tbsp oil, then add the ground lamb, salt (1/2 tsp), and black pepper (1/4 tsp).
Cook, breaking it up with a spatula, until the lamb is deeply browned and no longer pink, 6–7 minutes. If you want to be precise, the lamb should reach 74°C / 165°F. Transfer lamb to a bowl and set aside. Leave any flavorful fat in the pan.
Step 3: Sauté the aromatics
Reduce heat to medium-high. Add 1 tbsp oil if the pan looks dry. Add the scallion whites, garlic, and ginger.
Stir constantly until fragrant, 30–45 seconds. Keep it moving so the garlic doesn’t burn.
Step 4: Stir-fry the vegetables until crisp-tender
Add the diced carrots and stir-fry for 2 minutes. Add the shredded cabbage and stir-fry for 1–2 minutes, until it starts to soften but still has some bite.
Add the peas and stir-fry for 1 minute to warm through.
Step 5: Fry the rice (this is where the magic happens)
Increase heat to high. Add the remaining 1 tbsp oil and then add the cold rice.
Stir-fry vigorously, pressing and tossing so the rice heats evenly and picks up a little toastiness, 4–5 minutes. You should hear a steady sizzle; if the pan feels crowded, cook for an extra 1–2 minutes to drive off moisture.
Step 6: Season with the sauce and return the lamb
Pour the prepared sauce around the edges of the hot pan (this helps it sizzle and caramelize quickly), then toss thoroughly.
Return the browned lamb and stir-fry until everything is glossy, evenly coated, and piping hot, 1–2 minutes. Taste and add an extra pinch of salt if needed (kecap manis can vary in saltiness).
Step 7: Top, garnish, and serve
Optional fried eggs: In a nonstick skillet, heat 1 tsp oil over medium-high heat. Crack in 2 eggs and fry until the whites are set but the yolks are still runny, 2–3 minutes.
Serve the lamb nasi goreng hot. Top each bowl with scallion greens and a generous sprinkle of crispy fried shallots. Add a fried egg on top if using, plus extra sambal and lime wedges at the table.
Pro Tips
- Cold rice is key: Day-old rice gives you distinct, chewy grains instead of a sticky pan of mush.
- Use high heat and work fast: Nasi goreng tastes best when the rice gets a little toasted and the sauce caramelizes quickly.
- Don’t drown the rice: Add the sauce at the end so it coats and glosses the grains rather than steaming them.
- Control heat easily: Start with 1 tbsp sambal, then add more at the table for spice-lovers.
- Crispy shallots go on last: Sprinkle right before eating to keep them crunchy.
Variations
- Leftover lamb version: Use 2 1/2 cups (about 350 g) chopped cooked lamb instead of ground. Add it in Step 6 just to warm through.
- Extra-vegetable version: Add 1 cup (150 g) sliced bell pepper or 1 cup (100 g) bean sprouts in Step 4.
- Seafood-style twist: Replace lamb with 1 lb (450 g) peeled shrimp; stir-fry shrimp for 2–3 minutes until just opaque, then proceed.
Storage & Make-Ahead
Cool leftovers quickly, then refrigerate in an airtight container for up to 4 days. Reheat in a skillet over medium-high heat with 1–2 tsp oil and a splash of water (about 1 tbsp) just to loosen, 4–6 minutes, stirring often. For best texture, store crispy shallots separately at room temperature in a tightly sealed container and sprinkle on after reheating. You can mix the sauce up to 3 days ahead and keep it refrigerated.
Nutrition (per serving)
Approximate, based on 4 servings and includes crispy shallots; fried egg not included: Calories: 640; Protein: 28 g; Carbohydrates: 72 g; Fat: 26 g; Fiber: 6 g; Sugars: 10 g; Sodium: 980 mg.

