The first time I tasted tongseng sapi, it was the contrast that stayed with me: tender beef, sweet cabbage, warm spices, and a broth that was both savory and slightly sweet. This Indonesian stew feels lively rather than heavy, especially once tomatoes and fresh herbs hit the bowl.

I love serving it steaming hot with rice, letting the sauce soak in while the vegetables still keep a little bite too.
Table of Contents
Why This Recipe Works
Tongseng sapi works because it layers richness, spice, sweetness, and freshness in the same pot. Beef simmers until tender in a fragrant broth flavored with aromatics, warm spices, and sweet soy sauce. Coconut milk gives the liquid body without making it overly thick, while cabbage and tomatoes are added later so they stay distinct instead of disappearing into the stew.
What makes this dish especially satisfying is the balance. The beef brings depth, kecap manis adds a caramel-like sweetness, and the vegetables lighten every spoonful. A little chile can bring gentle heat, but the recipe is easy to adjust depending on how spicy you like it. Served with steamed rice, the broth becomes part of the meal rather than just a cooking liquid. It is comforting, aromatic, and full of contrast, with enough texture to keep every bite interesting.

Ingredients
Beef Chuck: Beef chuck becomes tender and flavorful during simmering, making it ideal for this stew. Brisket or boneless short ribs can substitute, although cooking time may vary slightly.
Coconut Milk: Coconut milk adds richness and a smooth body to the broth without turning it into a heavy cream sauce. Light coconut milk can be used for a thinner result.
Kecap Manis: This Indonesian sweet soy sauce brings deep savory flavor and caramel-like sweetness. If unavailable, combine regular soy sauce with a little brown sugar or molasses.
Cabbage: Cabbage adds freshness, texture, and mild sweetness near the end of cooking. Napa cabbage works well if you prefer a softer, more delicate bite.
Tomatoes: Fresh tomatoes brighten the broth and balance the richer beef and coconut milk. Roma tomatoes hold their shape nicely, while regular vine tomatoes are an easy substitute.
Tips
- Brown the beef in batches so the pieces sear instead of steaming in their own juices.
- Add the cabbage near the end to keep some texture and prevent it from becoming too soft.
- Stir the coconut milk gently and keep the stew at a simmer rather than a rapid boil.
- Taste before adding extra salt because kecap manis and soy-based seasonings already contribute plenty.
- Adjust the chile gradually, especially if serving people with different spice preferences.

How to Serve
Tongseng sapi is best served hot, with plenty of broth ladled over the beef and vegetables. Steamed rice is the easiest partner because it absorbs the sweet-savory sauce and turns the stew into a complete meal. Add something crisp or acidic on the side if you want a little contrast.
- Serve it over jasmine rice with sliced cucumber and a squeeze of lime for a fresh finish.
- Pair it with sambal and fried shallots so everyone can add extra heat and crunch at the table.
- Spoon it alongside warm rice cakes or lontong for a more traditional-style serving that soaks up the fragrant broth beautifully.
Similar Recipes

TongsengSapi (Indonesian Beef Stew)
Ingredients
- 2 pounds beef chuck cut into bite-sized pieces
- 1 cup full-fat coconut milk
- 3 tablespoons kecap manis
- 3 cups roughly chopped cabbage
- 2 medium tomatoes cut into wedges
- 2 tablespoons neutral cooking oil
- 4 shallots finely chopped
- 3 garlic cloves minced
- 1- inch piece fresh ginger grated
- 1 stalk lemongrass bruised
- 2 kaffir lime leaves
- 1 cinnamon stick
- 2 whole cloves
- 1 teaspoon ground coriander
- ½ teaspoon ground cumin
- 1 small red chile sliced
- 3 cups beef broth
- 1 tablespoon regular soy sauce
- 1 teaspoon brown sugar optional
- ½ teaspoon black pepper
- Salt to taste
- Fried shallots for serving
- Lime wedges for serving
Instructions
- Heat the oil in a large pot over medium-high heat. Add the beef in batches and brown it well on all sides, then transfer it to a plate.
- Reduce the heat to medium. Add the shallots, garlic, ginger, and chile, and cook for 2 to 3 minutes until fragrant.
- Stir in the lemongrass, kaffir lime leaves, cinnamon, cloves, coriander, and cumin. Cook briefly to release the aroma of the spices.
- Return the beef to the pot and pour in the beef broth. Add the kecap manis, soy sauce, brown sugar if using, and black pepper.
- Bring to a gentle simmer, cover, and cook for about 1 hour 15 minutes, or until the beef is beginning to become tender.
- Stir in the coconut milk and continue simmering uncovered for 15 minutes.
- Add the cabbage and tomatoes and cook for another 8 to 10 minutes, just until the cabbage softens but still has some texture.
- Remove the lemongrass, lime leaves, cinnamon stick, and cloves. Taste and adjust the seasoning, then serve hot with fried shallots and lime wedges.
Nutrition
Notes
• Add the cabbage near the end to keep some texture and prevent it from becoming too soft.
• Stir the coconut milk gently and keep the stew at a simmer rather than a rapid boil.
• Taste before adding extra salt because kecap manis and soy-based seasonings already contribute plenty.
• Adjust the chile gradually, especially if serving people with different spice preferences.
I loved how the kecap manis balanced the warm spices, tender beef, and cabbage, making the whole bowl taste rich without feeling too heavy.