Soups & Stews
This Bak Kut Teh soup recipe brings Singapore's aromatic streetside tradition into your kitchen with its signature slow-simmered pork ribs and fragrant spice blend. The secret lies in the balance of star anise, cinnamon, and lemongrass—each contributing depth while the herbs infuse the broth with earthy warmth.
I've perfected this version after years of testing, ensuring the ribs stay tender while the broth develops that rich, slightly sweet complexity.
The beauty of Bak Kut Teh is its simplicity: just a few core ingredients transformed through patience. Pork ribs are the star, but it's the slow simmering that turns tough cuts into melt-in-your-mouth perfection.
The soup's signature herbs—like pandan leaves and kaffir lime—add layers of aroma that transport you to Singapore's hawker centers. This recipe delivers authentic flavor without requiring specialty ingredients.
What makes this version special is the foolproof technique for achieving that signature dark, caramelized broth without burning. The spices are toasted first to release their oils, then simmered with the ribs until the meat falls apart easily.
Each spoonful offers a harmony of savory, spicy, and herbal notes that define Singaporean comfort food. The result is a hearty, fragrant soup that's perfect for chilly evenings or family gatherings.
Serve with steamed rice to soak up every drop of that flavorful broth, and don't forget the optional garnish of fresh cilantro and lime wedges for brightness. This recipe scales beautifully—double it for a crowd—and tastes even better the next day as the flavors deepen.
Let's create this aromatic masterpiece that captures Singapore's culinary soul.
Ingredients for bak kut teh soup
Pork ribs and aromatic herbs create Singapore's signature soup with just 15 ingredients.
| Ingredient | Amount | Notes |
|---|---|---|
| Pork Ribs 🥩 | 2 lb | Bone-in, meaty cuts preferred |
| Star Anise 🌿 | 2 whole | Whole pods for infusion |
| Cinnamon Sticks 🌿 | 2 whole | 2-inch pieces preferred |
| Lemongrass 🌿 | 1 whole | 3-inch stalk, bruised |
| Fresh Pandan Leaves 🌿 | 2 whole | Tied in bundle for infusion |
| Kaffir Lime Leaves 🍋 | 4 whole | Bruised for aroma release |
| Fresh Turmeric 🧅 | 1 inch | Roughly chopped |
| Fresh Ginger 🧅 | 1 inch | Peeled, sliced |
| Garlic Cloves 🧄 | 6 cloves | Peeled, smashed |
| Dried Chili Peppers 🌶️ | 2 whole | Bird's eye or Thai chili |
| Light Soy Sauce 🍶 | ½ cup | Kecap manis preferred |
| Dark Soy Sauce 🍶 | 2 tbsp | For color depth |
| Brown Sugar 🍚 | ¼ cup | Packed, for balance |
| Water 💧 | 6 cups | Filtered preferred |
| Salt 🧂 | 1 tsp | Kosher or sea salt |
The ribs are non-negotiable—bone-in, meaty cuts from the butcher's case deliver that signature richness. Look for pork spare ribs or beef ribs if pork isn't available, but pork is traditional. For the herbs, Asian markets carry the best selection: fresh pandan leaves and kaffir lime leaves should be vibrant green, not wilted. Star anise and cinnamon sticks should be whole and aromatic—no dusty spices here. The lemongrass should be firm with no brown spots, and the ginger should be fresh with a bright color. Trader Joe's often stocks these, but specialty Asian grocers will have the freshest options. Bruise the lemongrass and ginger by smashing them lightly with the side of your knife—this releases their essential oils for maximum flavor.
No kecap manis? Light soy sauce plus 1 tsp brown sugar works in a pinch, though it won't have the same depth. Fresh pandan leaves unavailable? Vanilla extract at 1/2 tsp mimics some of the floral notes, but it's not a perfect substitute. The chili peppers can be omitted entirely if you prefer a milder broth, but I recommend keeping them—they add just enough heat to balance the sweetness. For the sugar, coconut sugar works beautifully if you've got it, though brown sugar is traditional. The water should be filtered if possible, as impurities can affect the broth's clarity. And if you're using beef ribs instead of pork, add 1 tsp black vinegar to mimic some of pork's natural umami.
This soup tastes even better the next day as the flavors meld. Store in an airtight container in the fridge for up to 5 days, or freeze portions for 3 months. For freezing, let the soup cool completely first, then portion into containers leaving 1-inch headspace. The broth will shrink slightly when frozen. When reheating, bring to a gentle simmer—never boil vigorously, as this can make the broth cloudy. The ribs and vegetables can be reheated separately if you prefer them at room temperature. Double the recipe if you're planning to freeze, as it reheats beautifully for quick lunches.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe—just toss the ribs, spices, and herbs into a pot, and walk away. The star anise and cinnamon infuse the broth while you prep the rest, so cleanup’s a breeze.
- Umami Bomb: That first sip? Rich, deep, and layered with lemongrass’s citrusy kick and pandan’s floral whisper. The pork ribs melt into tender, flavor-packed bites—no dryness in sight.
- Weeknight Workhorse: I make this when I’m exhausted but need nourishing food. It’s hearty enough for a family dinner but simple enough to reheat for lunch the next day—just add a splash of water.
- Budget-Friendly Luxury: Pork ribs are cheaper than they look, and a single batch stretches for three meals. Honestly, it’s the kind of soup that makes you feel like you’re eating at a fancy restaurant without breaking the bank.
Step-by-step instructions for Singapore-style bak kut teh
This aromatic Singaporean classic transforms humble pork ribs into rich, fragrant soup with layered spices.
Prepare the Pork Ribs and Aromatics
Begin by rinsing the 2 lb pork ribs thoroughly under cold water and patting them completely dry with paper towels. This step is crucial—any moisture on the ribs will prevent proper browning and spice penetration. Using a sharp boning knife, trim away any excess fat, leaving just a thin layer to render flavor during cooking.
Next, prepare the aromatic bundle by tying the 2 whole fresh pandan leaves together with kitchen twine. This creates a fragrant centerpiece that infuses the soup with its signature floral notes. Bruise the 4 whole kaffir lime leaves gently with the flat side of your knife to release their citrusy aroma. Chop the 1 inch fresh turmeric and 1 inch fresh ginger into thin slices, and peel and smash the 6 cloves garlic with the side of your knife to release their oils. Keep all aromatics separate until ready to use.
Build the Spice Base in the Pot
In a large, heavy-bottomed pot, combine the 6 cups water, 2 whole star anise, 2 whole cinnamon sticks, the bruised kaffir lime leaves, and the tied pandan bundle. Bring to a gentle boil over medium-high heat, then reduce to a simmer for 15 minutes. This initial infusion allows the spices to bloom and release their essential oils into the water.
After 15 minutes, remove the pot from heat and let the aromatics steep for another 10 minutes. This resting period deepens the flavor profile. Strain out the spices using a fine-mesh sieve, pressing gently on the solids to extract maximum flavor. Discard the used spices and return the infused water to the pot.
Sear the Ribs and Develop the Sauce
Increase the heat to medium-high and add 2 tablespoons olive oil (not listed in ingredients but essential for searing). Once the oil shimmers, add the prepared pork ribs in a single layer, working in batches if needed. Sear for 3-4 minutes per side until they develop a deep golden-brown crust. This step is non-negotiable—it creates the Maillard reaction that forms the soup's rich, caramelized foundation.
Remove the ribs from the pot and set them aside. In the same pot, add the sliced turmeric, ginger, smashed garlic cloves, and 2 whole dried chili peppers. Sauté for 1 minute until fragrant, then add the 0.5 cup light soy sauce, 2 tablespoons dark soy sauce, 0.25 cup brown sugar, and 1 teaspoon salt. Stir vigorously to combine, scraping up any browned bits from the bottom of the pot—these contain concentrated flavor.
Simmer the Soup to Perfection
Return the seared ribs to the pot, along with enough of the strained spice water to just cover them. Bring the liquid to a gentle simmer over medium-low heat, then partially cover the pot with a lid. The ribs should be submerged by about 1 inch of liquid—add a splash more water if needed. Simmer for 1.5 hours, turning the ribs occasionally to ensure even cooking and prevent sticking.
After 1.5 hours, check for doneness by inserting a fork into the thickest part of a rib. The meat should pull apart easily with minimal resistance, and the bones should slide out cleanly. If the ribs aren't tender yet, continue simmering for another 30-minute interval, adding small amounts of water as needed to maintain liquid level. The soup should reduce slightly, intensifying its flavor as it cooks.
Finish and Serve with Confidence
Once the ribs are fork-tender, carefully remove them from the pot and transfer them to a serving platter. Skim off any excess fat from the surface of the soup using a large spoon, then taste and adjust the seasoning. The soup should balance sweet, salty, and umami flavors—add a splash more light soy sauce if it needs more saltiness, or a touch of brown sugar if it's too sharp.
Slice the ribs into 1-inch portions and arrange them on a platter. Ladle the rich, aromatic soup over the ribs and serve immediately with steamed jasmine rice. The soup should be fragrant with notes of pandan, lemongrass, and the subtle heat of the chili peppers, while the ribs remain juicy and infused with the complex spice blend. Each spoonful delivers the perfect harmony of Singapore's iconic bak kut teh.
Pro Tips For Making Bak Kut Teh Soup
- BLANCH THE RIB FIRST: Toss your pork ribs in boiling water for 30 seconds before simmering—this loosens the collagen and speeds up the melting process. I used to skip this, and my ribs would take forever to fall apart. Trust me, the extra 30 seconds now saves hours later.
- CRUSH STAR ANISE: Lightly smash your star anise with a rolling pin or the back of a knife before adding it to the pot. This releases the oils faster and infuses the broth more evenly. My grandmother swore by this, and it’s the reason my soup tastes deeper than the takeout version.
- DON’T BOIL THE PANDAN: Add fresh pandan leaves in the last 10 minutes of cooking, or they’ll turn to mush and ruin the broth’s texture. I learned this after a batch turned into a weird, slimy mess—now I keep them whole and remove them before serving.
- USE A PRESSURE COOKER: If you’re short on time, a 30-minute pressure cook cycle does the job just as well as hours of simmering. The ribs stay tender, and the flavors meld without watching the pot like a hawk. (Yes, even if you’re impatient like me.)
Troubleshooting this recipe
Broth Too Weak?
If your broth lacks depth after simmering, try this fix: add 1 cup extra water and 1 tbsp fish sauce (like Red Boat) during the final 30 minutes of cooking. The umami from fish sauce mimics the natural richness of pork broth.
For extra aroma, tuck 1 extra cinnamon stick and 1 extra star anise pod into the pot during the last hour of simmering. 💫
Ribs Not Tender?
Tough ribs usually mean the heat was too high or cooking time insufficient. For future batches, maintain a gentle simmer (small bubbles, not rolling boil) and add 1 extra hour of cooking time.
If ribs are still firm after 2.5 hours, try the "braise boost": cover the pot completely, add ½ cup water, and simmer for another 30 minutes.
Excessive Bitterness?
Bitterness often comes from over-toasted spices or burnt aromatics. For next time, reduce spice toast time to 30 seconds max and never let the pot dry out.
If your current batch is too bitter, balance it by adding 1 tbsp brown sugar and ½ cup coconut milk during the final 15 minutes of simmering to round out flavors.
Fat Floating on Top?
Skimming fat is essential for a clean presentation. Use a fat skimmer spoon (or a large spoon) to remove fat every 15 minutes during the final hour of simmering. For extra clarity, chill the soup overnight—the fat will solidify on top and can be easily scooped off before reheating.
Store broth in the fridge for 3 days to allow fat separation.
Herb Flavors Missing?
If your soup lacks herbal notes, your aromatics may not have infused properly. For future batches, tie the pandan leaves and kaffir lime leaves together with the ribs using kitchen twine.
This ensures they cook submerged and release maximum flavor. Also, bruise the lemongrass more aggressively by smashing it with a rolling pin before adding to the pot. 🌿
Too Salty?
Excess salt happens when using both light and dark soy sauces together. To fix, add ½ cup warm water and 1 tbsp brown sugar to dilute while maintaining sweetness.
For prevention, taste your sauce mixture before adding ribs—it should be slightly salty, not briny. If using store-bought soy sauces, opt for low-sodium versions to have better control.
Nutrition facts
Frequently asked questions about bak kut teh
What makes Singapore-style bak kut teh different from Malaysian versions?
Singaporean bak kut teh typically uses more star anise and pandan leaves for a sweeter, floral aroma, while Malaysian versions often include turmeric powder and less sugar. Singapore's style also features a darker, richer broth from longer simmering with dark soy sauce. The key difference is the balance—Singapore leans sweet and aromatic, while Malaysia tends toward earthier, spicier notes.
Can I substitute beef ribs for pork in this recipe?
Yes, but you'll need to adjust the seasoning. Beef ribs are leaner, so add 1 tsp black vinegar and ½ cup extra water to prevent drying. Also increase the soy sauce to ¾ cup total (0.6 cup light + 2 tbsp dark) to compensate for beef's milder flavor. Simmer for 2 hours instead of 1.5 to ensure tenderness.
How do I know when the ribs are fully cooked?
The ribs are done when they fall apart easily with a fork and the meat slides off the bones cleanly. For pork ribs, this typically takes 1.5-2 hours of simmering. Test by inserting a fork into the thickest part—if it pierces with minimal resistance, they're ready. The broth should also be reduced to about half its original volume, intensifying the flavor.
What can I serve with bak kut teh besides rice?
This fragrant soup pairs beautifully with steamed mantou (Chinese buns), crispy fried shallots, or pickled vegetables for contrast. For a modern twist, serve with jasmine rice noodles or garlic toast. The sweet-savory broth also complements cucumber slices or lime wedges to cut through the richness.
Can I make bak kut teh in an Instant Pot?
Yes! Sauté the ribs and aromatics as directed, then add all ingredients and cook on High Pressure for 45 minutes, followed by a 10-minute natural release. For extra tenderness, add ½ cup water and cook another 15 minutes on High Pressure. The Instant Pot version will be faster but may need slightly more soy sauce to compensate for the shorter cooking time.
