Homemade Sapo Tahu: Silky Tofu Stir-Fry

2 servingsmediumIndonesian-Chinese fusion
Homemade Sapo Tahu: Silky Tofu Stir-Fry

Sapo tahu is an Indonesian Chinese-fusion stir-fry that celebrates delicate egg tofu as its star, cradled in a savory, umami-rich sauce studded with shrimp, chicken, and seasonal vegetables. This version balances tender proteins with crisp-tender produce—mushrooms, carrots, cauliflower, snap peas, and corn—bound by a silky cornstarch glaze infused with fish sauce, oyster sauce, and sesame oil. The dish is special for its textural contrast: creamy tofu against snappy vegetables, all held together by a glossy, deeply flavored sauce. Best for weeknight dinners when you want restaurant-quality results at home, or for impressing guests with an approachable yet refined Asian dish. Serve it over steamed rice to catch every drop of sauce. This homemade version lets you control sodium and customize vegetables to what's fresh, setting it apart from takeout versions that often rely on cornstarch alone and miss the aromatic garlic base that makes this sing.

Ingredients

2 servings
  • 2 batang egg tofu
    silken tofu1:1firmdairy-freeeggs-freeadds soy

    same texture, slightly less structure

  • 5 ½ oz chicken fillet
    pork loin1:1meat

    leaner than thighs, cook same time

    Full guide →
  • 5 ½ oz shrimp
    scallops1:1shellfishdairy-free

    sweet, slightly chewier

    Full guide →
  • 2 buah shiitake mushrooms
    cremini mushrooms1:1vegetarian

    earthier, less chewy

    Full guide →
  • 1 buah carrot
  • 1 bonggol cauliflower
  • 3 ½ oz snap peas
  • 3 ½ oz corn
    potato starch1:1gluten-free

    same thickening power, slightly glossier

    Full guide →
  • 3 siung garlic cloves
  • 1 batang scallion
  • 2 sdt sugar
  • ¼ sdt salt
  • 2 sdt mushroom stock powder
  • ½ sdt ground white pepper
  • 1 sdm fish sauce
    soy sauce3/4:1vegetarianveganfish-freeadds glutenadds soy

    loses umami depth but less pungent

    Full guide →
  • 1 sdm sesame oil
    neutral oil1:1dairy-free

    loses toasted aroma

    Full guide →
  • 1 ½ sdm oyster sauce
    soy sauce1:1veganvegetarianadds glutenadds soy

    less sweet, less body

    Full guide →
  • vegetable oil
  • water or broth
  • cornstarch slurry
    potato starch1:1gluten-free

    same thickening power, slightly glossier

    Full guide →

Instructions

  1. 1

    Heat oil in a wok or large pan and stir-fry minced garlic until fragrant.

  2. 2

    Add shrimp and chicken and stir-fry until the proteins change color.

  3. 3

    Add carrot, corn, and shiitake mushrooms, stirring gently to combine.

  4. 4

    Season with salt, sugar, mushroom stock, fish sauce, and oyster sauce.

  5. 5

    Pour in broth or water and bring to a boil. Add cauliflower, stir and cook until wilted halfway.

  6. 6

    Taste and adjust seasoning, adding water if needed.

  7. 7

    Add egg tofu and snap peas, then pour in cornstarch slurry while stirring until the sauce thickens and coats everything.

  8. 8

    Taste and adjust seasoning one more time. Remove from heat, stir in scallion and sesame oil, then serve.

Tips

Tip 1

Cut all vegetables and proteins to roughly the same size for even cooking. Prep everything before you start cooking, as the actual cooking moves quickly—this is a true stir-fry that demands attention and speed once the heat is on.

Tip 2

The cornstarch slurry (cornstarch mixed with cold water) is key to a silky, clingy sauce. Mix it just before adding to prevent it from settling and clumping. Stir constantly as you pour for a lump-free gloss.

Tip 3

Fish sauce and oyster sauce are non-negotiable for authentic depth. Taste after adding them and before the cornstarch—you'll adjust salt more easily in liquid than in thickened sauce.

Good to Know

Storage

Refrigerate in an airtight container for up to 3 days. Reheat gently in a wok or pan over medium heat, adding a splash of water if the sauce has thickened too much.

Make Ahead

Prep all vegetables and proteins up to 4 hours ahead. Keep in separate containers. Make the cornstarch slurry just before cooking. Do not thicken the sauce in advance—assemble and cook the full dish fresh.

Serve With

Serve over steamed white or jasmine rice, with a side of sliced fresh chilies and extra fish sauce for heat and depth.

Common Mistakes

Watch

Do not skip mincing the garlic fine; large pieces won't release their flavor in the short cooking time and create a harsh bite.

Watch

Do not add cornstarch slurry to hot liquid without stirring constantly; it will clump and create a grainy sauce instead of a silky one.

Watch

Do not overcook the cauliflower before adding tofu; it should be half-wilted, not soft, so it stays tender and does not release water that dilutes the sauce.

Substitutions

Dairy-Free Swaps

egg tofu
silken tofu1:1firmdairy-freeeggs-freeadds soy

same texture, slightly less structure

shrimp
scallops1:1shellfishdairy-free

sweet, slightly chewier

Full guide →
sesame oil
neutral oil1:1dairy-free

loses toasted aroma

Full guide →

Vegan Options

fish sauce
soy sauce3/4:1vegetarianveganfish-freeadds glutenadds soy

loses umami depth but less pungent

Full guide →
oyster sauce
soy sauce1:1veganvegetarianadds glutenadds soy

less sweet, less body

Full guide →

Gluten-Free Swaps

cornstarch
potato starch1:1gluten-free

same thickening power, slightly glossier

Full guide →

General Alternatives

chicken
pork loin1:1meat

leaner than thighs, cook same time

Full guide →
shiitake
cremini mushrooms1:1vegetarian

earthier, less chewy

Full guide →
Find more substitutions →

FAQ

Can I make this vegetarian or vegan?

Yes. Replace shrimp and chicken with tofu cubes or mushrooms. Swap fish sauce and oyster sauce for soy sauce, though flavor will be less complex. Use vegetable broth. The dish will be lighter but still satisfying with the sesame oil and vegetables.

What if I don't have egg tofu or shiitake mushrooms?

Silken tofu works if you handle it gently. For mushrooms, use cremini or button mushrooms, though you'll lose the earthy chew. Both subs are 1:1 by weight. Adjust cooking time slightly for cremini—they release water faster.

How long does sapo tahu keep and can I freeze it?

Refrigerate for up to 3 days in an airtight container. Freezing is not recommended because the tofu texture becomes spongy and the sauce separates. If you must, freeze only the broth and vegetables, then add fresh tofu when reheating.