Nasi goreng is Indonesia’s beloved fried rice dish, traditionally made with sweet soy sauce, shallots, and a fiery sambal. This vegan version keeps all the smoky, savory depth of the original by using a plant-based protein and a few clever umami boosters, making it a satisfying weeknight dinner that comes together in about 30 minutes. The key is using cold, day-old rice and a screaming-hot pan to get those signature charred bits.
Ingredients
- 3 cups (600 g) cooked jasmine or long-grain rice, preferably day-old and cold
- 3 tbsp (45 ml) neutral oil (like canola or sunflower), divided
- 1 block (14 oz / 400 g) firm tofu, pressed and cut into 1/2-inch cubes
- 1 tbsp (15 ml) soy sauce or tamari
- 4 shallots, finely chopped (about 1/2 cup / 80 g)
- 3 cloves garlic, minced
- 2 red bird’s eye chilies or 1 red jalapeño, finely sliced (adjust to taste)
- 1 tbsp (15 g) palm sugar or brown sugar, grated
- 2 tbsp (30 ml) sweet soy sauce (kecap manis) — if unavailable, mix 1 tbsp soy sauce + 1 tbsp brown sugar
- 1 tbsp (15 ml) soy sauce or tamari, for the rice
- 1 tsp (5 ml) sambal oelek or chili paste (optional, for extra heat)
- 1/2 tsp salt, or to taste
- 1/4 tsp white pepper
- 2 cups (80 g) shredded green cabbage or sliced bok choy
- 1 medium carrot, julienned (about 1 cup / 100 g)
- 2 green onions, sliced, for garnish
- 1/2 cup (60 g) fried shallots (available in Asian markets) or crispy onions, for topping
- 1 lime, cut into wedges, for serving
- 2 tbsp (30 ml) vegan sambal or chili sauce, for serving (optional)
Instructions
- Press the tofu: wrap the block in a clean kitchen towel and place a heavy pan on top for 10 minutes. Cut into 1/2-inch cubes.
- Heat 2 tablespoons (30 ml) of oil in a large wok or non-stick skillet over medium-high heat. Add the tofu cubes in a single layer. Cook, turning occasionally, until golden and crispy on all sides, about 6-8 minutes. Drizzle with 1 tablespoon (15 ml) soy sauce, toss to coat, and remove to a plate.
- Add the remaining 1 tablespoon (15 ml) oil to the same pan. Add the shallots, garlic, and chilies. Sauté for 2-3 minutes until fragrant and the shallots have softened.
- Add the shredded cabbage and carrot. Stir-fry for 2 minutes, until the vegetables are slightly tender but still crisp.
- Add the cold rice to the pan, breaking up any clumps with a spatula. Spread it out and let it sit undisturbed for 1 minute to get some char. Then toss and repeat 2-3 times, for a total of about 3 minutes.
- Add the palm sugar, sweet soy sauce, regular soy sauce, sambal oelek (if using), salt, and white pepper. Toss everything together until the rice is evenly coated and the sugar has dissolved, about 1-2 minutes.
- Return the crispy tofu to the pan. Toss to combine and heat through for 1 minute.
- Remove from heat. Taste and adjust seasoning with more soy sauce or chili if needed.
- Serve immediately, topped with green onions, fried shallots, and a lime wedge on the side.
Tips
- Use cold, day-old rice: Freshly cooked rice is too moist and will turn mushy. Spread cooked rice on a tray and refrigerate uncovered for at least 2 hours, or better, overnight. This dries it out and helps achieve the desired chewy, slightly crispy texture.
- High heat is non-negotiable: A wok over high heat gives the rice that smoky “wok hei” flavor. If using a regular skillet, let it heat up thoroughly before adding the rice. Don’t overcrowd the pan; cook in batches if necessary.
- Press the tofu well: The drier the tofu, the crispier it gets. Pressing for 10 minutes removes excess water that would otherwise make it steam instead of fry.
- Substitute kecap manis: If you don’t have sweet soy sauce, combine 1 tablespoon of regular soy sauce with 1 tablespoon of brown sugar. This mimics the sweet-savory balance closely, though the flavor will be slightly less complex.
Serving Suggestions
Nasi goreng is traditionally served with a fried egg on top. For a vegan version, try a crispy tofu egg substitute or simply enjoy it as is. Pair it with a side of fresh cucumber slices, tomato wedges, and a small bowl of sambal for extra heat. A simple side of stir-fried greens or a light soup like clear vegetable broth complements the rich rice beautifully.
Variations
- Add more protein: Swap the tofu for 1 cup (200 g) of cooked tempeh, cubed and fried, or add 1 cup (150 g) of frozen peas and edamame for a pop of color and texture.
- Make it a vegetable feast: Add 1 cup (100 g) of sliced mushrooms, bell peppers, or green beans along with the cabbage. Just make sure to cook them until tender before adding the rice.
- Spice level: For a milder version, remove the seeds from the chilies or omit them entirely. For a spicier kick, add an extra teaspoon of sambal oelek or a pinch of cayenne pepper with the seasonings.
- Gluten-free: Use tamari instead of soy sauce and ensure your sweet soy sauce is gluten-free (some brands contain wheat). Serve with gluten-free fried shallots if needed.
Storage and Reheating
Store leftovers in an airtight container in the refrigerator for up to 3-4 days. To reheat, place the rice in a hot skillet with a splash of water or oil over medium-high heat, tossing until heated through, about 3-4 minutes. Alternatively, microwave in 1-minute intervals, stirring in between, until hot. The texture will be slightly softer than fresh, but the flavor remains delicious. Freezing is not recommended, as the rice can become mushy upon thawing.
Frequently Asked Questions
Can I use fresh rice instead of day-old? Yes, but spread it on a baking sheet and refrigerate for at least 2 hours to dry it out. This helps prevent clumping and sogginess.
What is kecap manis and can I substitute it? Kecap manis is a thick, sweet soy sauce with a molasses-like consistency. It’s essential for authentic nasi goreng. If you don’t have it, mix 1 tablespoon of soy sauce with 1 tablespoon of brown sugar or maple syrup as a quick substitute.
Is this dish spicy? It has a mild to medium heat from the chilies and sambal. Adjust the amount of chilies to suit your preference. For a truly mild dish, omit the chilies and sambal entirely.
Can I add other vegetables? Absolutely. Nasi goreng is versatile. Try adding snap peas, corn, or even broccoli florets. Just make sure to cut them into small pieces and cook them until just tender.
How do I make it more smoky? The high heat and charring give it smokiness. You can also add a few drops of liquid smoke to the rice while stir-frying, but use it sparingly as it can be overpowering.
Can I make this oil-free? Yes, you can use a non-stick pan and a few tablespoons of water or vegetable broth to sauté the aromatics and rice. The tofu won’t be as crispy, but the dish will still be tasty.
Related
- Rasgulla Recipe: Soft Bengali Syrup-Soaked Cheese Balls
- Pink Kaju Katli Recipe: Easy Indian Cashew Fudge
- Paneer Butter Masala Recipe (Video)
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).