This is a vegan take on Nasi Campur, an Indonesian mixed-rice plate built around coconut rice, kecap manis-glazed tempeh, spiced tofu, peanut sauce, quick-pickled vegetables, and sambal. It takes real effort to pull together, but the payoff is a single bowl that covers protein, fat, and vegetables without feeling like a compromise. If you want a filling, genuinely satisfying plant-based dinner, this is a strong option.
Shopping notes
- Tempeh: Most grocery stores carry it refrigerated near the tofu. If yours looks gray or has a slight ammonia smell, skip it — fresh tempeh smells nutty and mild. Frozen tempeh works fine; thaw it fully before slicing.
- Kecap manis: This thick, sweet soy sauce is the backbone of the tempeh glaze. Look for it at Asian grocery stores or online. In a pinch, mix 2 tablespoons regular soy sauce with 1 tablespoon brown sugar and a small splash of molasses — it gets you close enough.
- White miso: Used here in place of shrimp paste to add fermented depth to the sambal. Any mild white or yellow miso works. Avoid dark red miso — it will overpower everything else.
- Coconut milk: Use full-fat canned coconut milk for the rice. Lite coconut milk produces noticeably thinner, less flavorful results.
- Fresh lemongrass: If you can only find dried or paste, use the paste (about 1 teaspoon per stalk). Dried lemongrass is not a good substitute here — the flavor is flat.
Why this recipe works
Two things make this bowl work as a complete meal rather than a pile of sides. First, cooking the rice in coconut milk instead of water gives it enough fat and body to anchor everything else — it holds up under the sauces without turning to mush. Second, the tempeh is simmered briefly in the kecap manis glaze before it hits the pan, which lets the sauce penetrate the dense interior rather than just coating the outside. That step is why the tempeh tastes seasoned all the way through and delivers real protein satisfaction, not just surface flavor.
What can go wrong
- Tempeh turns bitter: Tempeh has a natural bitterness that gets worse if you skip the simmer step or rush it. Give it the full time in the glaze over low heat before pan-frying.
- Peanut sauce seizes up: If the sauce thickens into a paste as it sits, whisk in warm water one tablespoon at a time. Cold water can make it clump further.
- Pickled vegetables are too sharp: If your quick pickle tastes more like straight vinegar than bright and tangy, the ratio is off or you didn’t let the sugar dissolve fully. Stir until the sugar is completely gone before adding the vegetables.
- Coconut rice scorches on the bottom: Coconut milk burns faster than water. Keep the heat at medium-low once it comes to a simmer and don’t lift the lid during cooking — steam loss causes uneven cooking and sticking.
- Sambal is too thin: If your sambal looks watery after blending, cook it in the pan a few extra minutes, stirring frequently, until it darkens slightly and the oil starts to separate at the edges. That’s when the flavor is fully developed.
Make-ahead notes
Every component stores separately, which makes this a practical meal-prep recipe. The glazed tempeh and spiced tofu keep in the fridge for up to 4 days in airtight containers; reheat them in a dry skillet over medium heat for 3–4 minutes to bring back some crispness — the microwave works but leaves them soft. The sambal and peanut sauce both keep refrigerated for up to 5 days; the peanut sauce will thicken in the fridge, so loosen it with a splash of warm water before serving. Coconut rice is best made fresh, but day-old rice reheated with a tablespoon of water in a covered pan is perfectly acceptable. Skip re-making the pickled vegetables — they actually improve after a day in the fridge and are the one component that genuinely benefits from being done ahead.

Vegan Indonesian Nasi Campur (Mixed Rice Bowl)
Equipment
- Rice cooker or heavy-bottomed pot with lid
- Wok or large skillet
- Small saucepan
- Baking sheet and parchment (or grill pan)
- Steamer basket or steaming setup
- Mortar and pestle (ulekan) or food processor
- Fine mesh strainer
- Mixing bowls
- Chef’s knife and cutting board
- Tongs and wooden spoon
Ingredients
For the Coconut Rice (Nasi Uduk):
- 2 cups jasmine rice, rinsed until water runs mostly clear choose fragrant, high-quality jasmine for best aroma
- 1 cup full-fat coconut milk, well shaken look for creamy, additive-free coconut milk
- 1 ½ cups water
- 2 pieces kaffir lime leaves optional but highly aromatic; sub 1 tsp lime zest
- 1 stalk lemongrass, trimmed and bruised sub 1 tsp lemongrass paste if needed
- 1 piece bay leaf Indonesian salam leaf if available
- ¾ tsp fine sea salt
For the Quick Acar (Pickled Cucumber & Carrot):
- 1 cup cucumber, thin half-moons choose firm, seedless if possible
- ½ cup carrot, matchsticks fresh, sweet carrots for best crunch
- ¼ cup rice vinegar
- 2 tbsp water
- 1 tbsp cane sugar or coconut sugar
- ½ tsp fine sea salt
- ⅛ tsp ground turmeric optional for golden hue
- 1 small red chili, thinly sliced optional heat
For the Peanut Sauce:
- ½ cup natural creamy peanut butter unsweetened, unsalted for control
- ½ cup coconut milk
- ¼ cup water, plus more as needed adjust to silky, spoonable consistency
- 2 tbsp kecap manis (sweet soy sauce) ensure vegan; Bango or ABC work well
- 1 tbsp low-sodium tamari or soy sauce use tamari for gluten-free
- 1 tbsp fresh lime juice
- 1 tsp palm sugar or brown sugar optional, balances heat
- 2 cloves garlic, finely grated
- 1 tsp fresh ginger, finely grated
- 1 ½ tsp sambal oelek or chili flakes adjust heat to taste
For the Tofu Satay:
- 14 oz extra-firm tofu, drained and pressed choose non-GMO, well-pressed for best texture
- 2 tbsp tamari or low-sodium soy sauce
- 1 tbsp kecap manis
- 2 tsp fresh lime juice
- 1 tsp toasted sesame oil
- ½ tsp garlic powder
- ½ tsp ground coriander
- 1 tbsp neutral oil (for baking or grilling) avocado, peanut, or canola
For the Tempeh Kecap (Sweet Soy Tempeh):
- 8 oz tempeh, cut into bite-size triangles traditional soybean or mixed-grain tempeh
- 1 ½ tbsp neutral oil
- 2 medium shallots, thinly sliced
- 2 cloves garlic, thinly sliced
- 2 tbsp kecap manis
- 1 tbsp tamari
- 2 tbsp water
- 2 pieces kaffir lime leaves, torn optional aroma
- 1 small red chili, sliced optional heat
- ¼ tsp freshly ground black pepper
For the Urap (Coconut Vegetable Salad):
- 1 ½ cups green beans, trimmed and cut 1-inch choose crisp, tender beans
- 2 cups green or Napa cabbage, thinly shredded
- 2 cups baby spinach
- ¾ cup unsweetened desiccated coconut fine shred for best cling
- 1 small shallot, very finely minced
- 1 clove garlic, very finely minced
- 1 piece kaffir lime leaf, rib removed and very finely sliced optional citrus perfume
- 1 tsp palm sugar or brown sugar
- 1 tbsp fresh lime juice added at the end for brightness
- ½ tsp fine sea salt plus more to taste
For the Vegan Sambal:
- 4 whole red chilies, seeded and sliced use fresno, red jalapeño, or bird’s eye to taste
- 1 small tomato, diced ripe but firm
- 2 cloves garlic
- 1 tbsp fresh lime juice
- 1 tsp coconut sugar
- ¼ tsp fine sea salt to taste
- 1 tsp neutral oil for sautéing if mellowing is desired
- 1 tsp white miso paste umami boost in place of shrimp paste
For the Garnishes:
- ½ cup crispy fried shallots store-bought or homemade
- ⅓ cup roasted peanuts unsalted, lightly crushed
- 4 wedges lime
- ½ cup extra cucumber slices for fresh crunch
- ¼ cup fresh cilantro or Thai basil leaves
- ¼ cup toasted coconut flakes optional
Instructions
Start the Coconut Rice (15 minutes simmer + 10 minutes rest):
- Combine rinsed jasmine rice, 1 cup coconut milk, 1 1/2 cups water, kaffir lime leaves, lemongrass, bay leaf, and 3/4 tsp salt in a pot. Stir once to distribute.
- Bring to a gentle simmer over medium heat, then reduce to low, cover, and cook until the liquid is absorbed and rice is tender, about 15 minutes. Rest off heat, covered, 10 minutes, then fluff and remove aromatics.
- Alternative: Use a rice cooker, adding aromatics to the pot; select the white rice setting.
Make the Quick Acar Pickles (5 minutes active + 20 minutes marinate):
- In a bowl, whisk rice vinegar, 2 tbsp water, 1 tbsp sugar, 1/2 tsp salt, and a pinch (1/8 tsp) turmeric until dissolved.
- Toss in cucumber, carrot, and optional chili. Marinate 20–30 minutes in the refrigerator for crisp, bright pickles.
Whisk the Peanut Sauce (3–4 minutes simmer):
- In a small saucepan over low heat (about 140–160°F / 60–71°C), whisk peanut butter, 1/2 cup coconut milk, 1/4 cup water, 2 tbsp kecap manis, 1 tbsp tamari, 1 tbsp lime juice, sugar, garlic, ginger, and sambal. Warm gently 3–4 minutes until glossy and spoonable, thinning with a splash of water as needed.
- Do not boil vigorously—gentle heat keeps the sauce silky.
Marinate and Cook the Tofu Satay (10 minutes marinate + 16–18 minutes bake):
- Slice pressed tofu into 12 batons. In a bowl, combine tamari, kecap manis, lime juice, sesame oil, garlic powder, and coriander. Toss tofu to coat; marinate 10 minutes (room temp) while the oven preheats.
- Roast: Arrange on a parchment-lined baking sheet, brush with neutral oil, and bake at 425°F / 220°C for 16–18 minutes, turning once, until edges are bronzed and slightly chewy.
- Alternative: Grill on a lightly oiled grill pan over medium-high heat for 3–4 minutes per side; or air-fry at 400°F / 205°C for 10–12 minutes, shaking halfway.
Prepare Tempeh Kecap (10 minutes steam + 10 minutes sauté):
- Steam tempeh for 10 minutes to soften and remove any bitterness (or microwave under a damp paper towel for 90 seconds). Pat dry.
- Heat 1 1/2 tbsp oil in a wok or skillet over medium heat. Sauté shallots and garlic 2–3 minutes until translucent and fragrant.
- Add tempeh; cook 2–3 minutes to lightly color. Stir in 2 tbsp kecap manis, 1 tbsp tamari, 2 tbsp water, optional lime leaves and chili, and black pepper. Simmer 2–3 minutes until the sauce reduces to a shiny glaze that clings to the tempeh.
Build the Urap (Toast 2–3 minutes; Blanch 2–3 minutes):
- In a dry skillet over medium heat, toast desiccated coconut 2–3 minutes until pale golden and nutty, stirring constantly.
- In a bowl, combine toasted coconut with minced shallot, garlic, sugar, salt, and very finely sliced kaffir lime leaf.
- Bring a pot of salted water to a rolling boil (212°F / 100°C). Blanch green beans 2 minutes; add cabbage for 30–45 seconds; add spinach for last 15 seconds. Drain well and gently squeeze out excess water.
- Toss warm vegetables with the coconut mixture and 1 tbsp lime juice. Season to taste—the urap should be savory, aromatic, and lightly sweet.
Make the Vegan Sambal (5 minutes; optional 1–2 minutes sauté):
- In a mortar and pestle, pound chilies, garlic, tomato, sugar, and salt to a coarse paste. Stir in lime juice and miso for umami. If using a food processor, pulse in short bursts to avoid a purée.
- Optional: Warm 1 tsp oil in a small pan and sauté the sambal 1–2 minutes to mellow the raw edge while keeping its brightness.
Final Assembly and Plating (5–10 minutes):
- Fluff the coconut rice and spoon a generous mound into each bowl.
- Arrange tofu satay, tempeh kecap, and a scoop of urap around the rice. Add a tangle of quick pickles and a spoon of sambal.
- Nappe tofu with warm peanut sauce. Finish with crispy shallots, roasted peanuts, fresh herbs, extra cucumber, and lime wedges.
- Visual Cues: Rice should be pearly and gently coconut-fragrant; tofu bronzed with light char; tempeh glossy; urap vibrant green with visible coconut flecks; sambal bright red and aromatic.
- Timing Reference: Prep ~35 minutes; Cook ~45 minutes (some steps run in parallel); Total ~1 hour 20 minutes.
Notes
Michelle’s Tips:
- Kecap Manis Substitute: Mix 2 tbsp low-sodium soy sauce or tamari with 2 tsp molasses and 1 tsp maple syrup; simmer 1 minute to thicken slightly.
- Perfect Coconut Rice: If the surface looks wet but tunnels are forming, cut heat and rest covered 10–12 minutes—the steam will finish cooking without sticking.
- Tofu Texture: A 10–15 minute press creates a pleasantly chewy bite. For extra chew, freeze the tofu overnight, thaw, then press before marinating.
- Sambal Heat Control: Remove chili seeds and white pith for a milder sambal; add a touch more sugar to round sharper heat.
- Gluten-Free: Use certified gluten-free tamari and a gluten-free kecap manis or the substitute above with GF tamari.
- Nut-Free: Swap peanut butter for sunflower seed butter; garnish with toasted pumpkin seeds.
- Soy-Free Protein: Replace tofu/tempeh with roasted oyster mushrooms and spiced chickpeas; keep the peanut sauce for richness.
- Shallot Shortcut: Store-bought fried shallots are reliably crisp and save time without compromising flavor.
Serving Suggestions:
- Plate with a centered rice mound; nestle small, colorful piles of each component around it for contrast. Spoon peanut sauce over tofu, not the rice, to keep the grains fluffy.
- Garnish with a scatter of fried shallots, crushed roasted peanuts, bright herbs, and a wedge of lime. A final whisper of toasted coconut adds aroma and shimmer.
- Pair with icy lemongrass tea, a tamarind-lime cooler, or a crisp pilsner. The ideal plate smells citrusy and toasty, with gentle coconut perfume and a whisper of smoke from the tofu.
Culinary Context:
Nasi Campur appears across Indonesia—Bali, Java, Lombok—each region expressing its own character in the “campur” (mix). This vegan take swaps shrimp paste for white miso and leans on tempeh, a Javanese invention, to honor local tradition while keeping the spirit vibrant, abundant, and plant-forward.Optional Advanced Instructions:
- Make-Ahead: Cook rice and cool quickly; reheat by steaming 5 minutes. Peanut sauce and sambal keep 3–4 days refrigerated. Pickles improve overnight.
- Parallel Cooking: Start rice first; as it simmers, marinate tofu and make pickles. Bake tofu while you cook tempeh. Toast coconut and blanch vegetables while tofu finishes.
- Tempeh Bacem Alternative: For deeper Javanese flavor, braise tempeh 15 minutes in coconut water with bay leaf, coriander, and garlic before glazing with kecap manis.
Timing:
- Prep Time: 35 minutes (0 hours 35 minutes)
- Cook Time: 45 minutes (0 hours 45 minutes)
- Total Time: 80 minutes (1 hour 20 minutes)
Course & Cuisine:
- Course: MainCourse
- Cuisine/Origin: Indonesian, Southeast Asian
Nutrition
FAQ
Is this recipe actually filling enough as a main meal?
Yes — between the tempeh, tofu, peanut sauce, and coconut rice, this bowl has substantial protein and fat. A full serving with all the components provides a complete, satisfying meal without needing anything on the side.
Can I use store-bought peanut sauce instead of making it from scratch?
You can, but most store-bought versions are sweeter and thinner than what this bowl needs. If you go that route, taste it first and consider adding a squeeze of lime and a small spoon of white miso to get closer to the right depth.
I’ve never cooked tempeh before — is it hard to work with?
It’s straightforward once you know the key step: simmer it in the glaze before pan-frying, don’t skip that. Raw tempeh straight into a hot pan tends to stay bitter and dry on the inside even when the outside looks done.
Can I make this gluten-free?
Yes, with two swaps. Use tamari instead of regular soy sauce throughout, and confirm your kecap manis is gluten-free — some brands use wheat. Most other ingredients in this recipe are naturally gluten-free.
If you liked this one
- Indonesian Gado-Gado Peanut Salad
- Korean BBQ Tempeh Bowl
- Vegan Malaysian Laksa Soup
- Vegan Mushroom Bulgogi Bibimbap
