Soups & Stews
The Bak Kut Teh soup transforms humble pork ribs into a fragrant, slow-simmered masterpiece that carries the soul of Singaporean hawker stalls.
This recipe captures the dish's essence: tender meat falling from the bone, infused with aromatic lemongrass, star anise, and cinnamon, all melded into a rich, savory-sweet broth that feels like a warm embrace.
The secret lies in the two-stage cooking process—first parboiling the ribs to remove impurities, then slow-simmering them for hours to develop deep, layered flavors.
What sets this authentic Bak Kut Teh apart is the balance of spices and the patience required to achieve that signature umami depth. We'll start with a fragrant spice paste of lemongrass, galangal, and chili, then build the broth gradually, allowing each ingredient to contribute its magic.
The result? A fragrant, velvety soup where every spoonful delivers both comfort and complexity—perfect for chilly evenings or when you crave a taste of home.
The final touch comes with traditional garnishes: bright green onions, zesty lime wedges, and a chili paste for heat. Serve it with steamed jasmine rice to soak up every drop of that slow-simmered goodness, or pair it with pickled vegetables for a tangy contrast.
This isn't just soup; it's a culinary experience that transports you to bustling street markets with every bite.
Ready to create a dish that's equal parts restaurant-quality and homey? Let's get started—your kitchen will soon smell like Singapore, and your taste buds will thank you.
Ingredients for bak kut teh soup
Six aromatic spices and tender pork ribs create this fragrant Singaporean masterpiece.
| Ingredient | Amount | Notes |
|---|---|---|
| Pork Ribs 🍖 | 3 lb | Bone-in, cut into 3-4 inch pieces |
| Lemongrass Stalks 🌿 | 4 whole | Bruised, bottom 6 inches only |
| Galangal 🌿 | 2 pieces | About 3 inches each, peeled |
| Star Anise 🌶️ | 4 whole | Lightly crushed |
| Cinnamon Sticks 🌿 | 2 whole | 2 inches each |
| Dried Chili Peppers 🔥 | 4 pieces | Bird's eye or Thai chili |
| Shallots 🧅 | 6 whole | Peeled, halved |
| Garlic Cloves 🧄 | 8 cloves | Peeled, smashed |
| Coconut Milk 🥥 | 2 cups | Full-fat, canned |
| Pork Bone Broth 💧 | 4 cups | Homemade or store-bought |
| Light Soy Sauce 🍶 | ½ cup | Kecap manis preferred |
| Dark Soy Sauce 🍶 | 2 tbsp | For color |
| Brown Sugar 🍚 | ¼ cup | Packed |
| Green Onions 🧅 | ¼ cup | Thinly sliced, for garnish |
| Lime Wedges 🍋 | 4 whole | For serving |
| Chili Paste 🌶️ | 1 tbsp | Sambal oelek or homemade |
| Jasmine Rice 🍚 | 2 cups | Uncooked, for serving |
The pork ribs are non-negotiable—bone-in, cut into 3-4 inch pieces for maximum flavor and texture. Look for well-marbled ribs at Asian markets or the meat section of Whole Foods—they’ll have that rich, fatty quality you need. Lemongrass and galangal are the soul of this dish; fresh is a must—no dried substitutes here. If you can’t find galangal, ginger at half the amount works in a pinch, but it won’t be the same. Star anise and cinnamon should be whole pods, not ground—lightly crush them to release their oils without turning into dust. For the chili peppers, bird’s eye or Thai chili gives that signature heat, but adjust to taste.
No lemongrass? Double the ginger and lime zest—it’s not perfect, but it’ll add brightness. Can’t find galangal? Ginger plus a splash of lime juice mimics its citrusy punch. The coconut milk matters—full-fat, canned is best (the kind with the thick cream on top). If you’re using light coconut milk, add 2 tbsp heavy cream to compensate. For the soy sauces, Kecap manis (Indonesian sweet soy sauce) is ideal—find it at Asian markets or online. No pork broth? Chicken broth with 1 tbsp fish sauce gets you close, but it’ll lack that deep umami. The brown sugar should be packed—light or raw sugar works too.
This soup tastes even better the next day—plan ahead. Store it in the fridge for 3-4 days or freeze for 3 months (portion into containers for easy reheating). The pork ribs will get even more tender after resting. For serving, steam jasmine rice separately—it soaks up all that fragrant broth like a dream. Garnish with green onions and lime wedges right before serving; chili paste on the side lets everyone adjust the heat to their liking. Make a double batch—this disappears fast.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this—just toss everything in a single pot (ribs, lemongrass, galangal) and let the broth do the work. No chopping boards, no extra pans, just hands-off simmering while I handle whatever else life throws at me.
- Aromatic Punch: That first whiff of star anise and cinnamon hitting the pot? It’s like a warm hug for your kitchen. The galangal adds a peppery kick without overpowering, and the lemongrass ties it all together—bright, herbal, and impossible to resist.
- Leftovers That Win: Between us, this soup only gets better the next day. The pork ribs fall off the bone easier, and the broth deepens into something richer. I make a double batch on Sundays just to avoid the "what’s for dinner?" panic midweek.
- Budget-Friendly Luxury: Pork ribs and spices might sound fancy, but they stretch across meals like nothing else. A few stalks of lemongrass and a couple of cinnamon sticks last for ages, and the ribs? I buy them on sale and freeze half—no waste, all flavor.
Step-by-step instructions for slow-simmered Bak Kut Teh soup
Here's how to create that signature aromatic broth and tender pork that defines this Malaysian classic.
Prepare the Aromatic Base
In a large Dutch oven or heavy pot, combine the 3 lb pork ribs, 4 whole lemongrass stalks (bruised), 2 pieces galangal (peeled and sliced), 4 whole star anise, 2 whole cinnamon sticks, and 4 pieces dried chili peppers. This aromatic bundle is the soul of bak kut teh—don't skip bruising the lemongrass or peeling the galangal, as their oils need to infuse properly.
Add the 6 whole shallots (halved) and 8 cloves garlic (smashed) to the pot. Pour in 4 cups pork bone broth and bring to a gentle simmer over medium-low heat. The broth should bubble softly—never a rolling boil, or the delicate aromatics will burn. Let this simmer uncovered for 30 minutes, stirring occasionally, until the pork begins to pull away from the bone slightly and the broth develops a rich, golden hue.
Build the Flavor Layers
After the initial simmer, add 2 cups coconut milk, 0.5 cup light soy sauce, 2 tbsp dark soy sauce, and 0.25 cup brown sugar. Stir gently to combine, then reduce heat to low. The dark soy sauce will give the broth its signature deep color, while the coconut milk adds a subtle creaminess that balances the savory notes. Let the soup simmer uncovered for another 45-60 minutes, skimming off any foam that rises to the surface to keep the broth clear.
You'll know it's ready when the pork ribs are fork-tender and the broth has reduced slightly, intensifying its flavor. The aroma should be intoxicating—lemongrass, galangal, and star anise working together in perfect harmony. If the broth seems too thin, simmer uncovered for an additional 15-20 minutes to concentrate the flavors.
Finish and Serve
Once the pork is tender, carefully remove the ribs from the broth and set them aside. Strain the broth through a fine-mesh sieve into a clean pot, pressing gently on the aromatics to extract every last drop of flavor. Return the broth to the heat and stir in 1 tbsp chili paste, simmering for 2-3 minutes to meld the heat evenly.
Slice the pork ribs into 1-inch chunks and return them to the broth. Divide 2 cups jasmine rice among bowls and ladle the hot broth and pork over the rice. Garnish each serving with 0.25 cup green onions and serve with 4 whole lime wedges on the side. The acidity of the lime brightens the rich, savory broth—don't skip this step!
Optional Garnish and Serving
For an extra layer of complexity, I like to add a drizzle of light soy sauce directly to each bowl before serving. This enhances the umami depth and ties all the flavors together. Serve immediately while the broth is steaming and the aromatics are still fragrant. The rice should be perfectly cooked—al dente but tender—so it soaks up the flavorful broth without turning mushy.
Each spoonful should deliver a perfect balance of spice, sweetness, and savory depth. The lemongrass and galangal add a bright, citrusy note that cuts through the richness of the pork and coconut milk. If you're serving this for a crowd, double the rice and prepare extra lime wedges—this soup disappears quickly!
Pro Tips For Making Bak Kut Teh Soup
- BLANCH THE RIBS FIRST: Toss the pork ribs in boiling water for 3-4 minutes before simmering—this removes blood and surface impurities, so your broth stays crystal clear instead of turning murky halfway through. I learned this the hard way after making a pot that looked like soup swill.
- SLICE GALANGAL THINLY: Peel and slice galangal no thicker than 3mm—thin slices release flavor faster and avoid a bitter, woody aftertaste that ruins the balance. Sounds tedious, but it’s the thing that matters most for that authentic aromatic punch.
- DON’T BOIL THE BROTH: Keep the heat low enough that the broth simmers gently—no bubbles breaking the surface. Boiling burns the lemongrass and star anise, turning your fragrant soup into a bitter, overcooked mess. Trust the process, even if it takes longer.
- TOAST THE SPICES: Dry-toast star anise and cinnamon sticks in a separate pan for 30 seconds until fragrant—this deepens their flavor and prevents them from floating like useless bobbers. Skip this, and your soup tastes like it’s missing half its soul.
Wine and beer pairings for bak kut teh soup
Brewed Tea Pairings
Bak Kut Teh’s aromatic depth pairs beautifully with jasmine tea or Pu-erh tea, both of which complement the lemongrass and star anise notes.
A hot cup of jasmine tea (lightly brewed with 2 tsp loose leaves in 8 oz boiling water for 3 minutes) enhances the dish’s floral undertones, while Pu-erh tea (steeped for 5-7 minutes) adds earthy complexity that mirrors the galangal’s depth.
I like to serve it in small porcelain cups to maintain the traditional hawker stall experience. 🌿
Light Beer Complements
A crisp, pale lager like Singapore Tiger or Asahi Super Dry cuts through the richness of the coconut milk and pork without overpowering the broth. The subtle maltiness balances the soup’s sweet-savory profile, while the carbonation cleanses the palate between bites.
For a local twist, try Malaysian Tiger Beer—its smooth finish and light bitterness make it a perfect match. 🍺
Rice Wine Elevation
For a more sophisticated pairing, Shaoxing wine (a Chinese rice wine) adds a layer of umami that deepens the soup’s flavor. Add 1 tbsp Shaoxing wine directly to the broth during the final 10 minutes of simmering, then serve with a small shot glass on the side for dipping rice.
The wine’s nutty, slightly sweet notes harmonize with the star anise and soy sauce. 🍶
Avoid Heavy Pairings
Skip heavy red wines or dark beers—they’ll clash with the dish’s delicate balance of spices and coconut milk. Even dark stouts or Cabernet Sauvignon can overpower the lemongrass and galangal.
Instead, stick to lighter options that let the soup’s natural flavors shine. A sparkling lychee wine (like Champagne with lychee juice) adds a festive touch for special occasions. ✨
Non-Alcoholic Options
For a refreshing non-alcoholic match, serve ginger tea with honey (steep 1 tbsp fresh ginger slices in 8 oz hot water for 5 minutes, then add 1 tsp honey).
The ginger’s spice echoes the galangal, while the honey’s sweetness mirrors the brown sugar in the broth. Alternatively, coconut water (chilled) highlights the dish’s tropical notes without competing flavors. 🥤
Nutrition facts
Frequently asked questions
Can I substitute pork ribs with chicken or beef?
While pork ribs are traditional, you can use chicken thighs (bone-in) or beef chuck for a similar texture. For chicken, increase simmering time to 1 hour—it cooks faster but needs more time to tenderize. Beef requires 2-3 hours of slow simmering. The broth will have a slightly different flavor profile, but the aromatic spices will still shine.
Why does my broth taste bitter? How do I fix it?
Bitterness usually comes from overcooking the aromatics (lemongrass, galangal) or using too much star anise. Reduce simmering time to 1.5 hours total and remove whole spices after 30 minutes (before adding coconut milk). For quick fixes, add 1 tbsp honey or brown sugar and a splash of coconut milk to balance the flavor.
What's the difference between Singaporean and Malaysian Bak Kut Teh?
The Malaysian version tends to be sweeter with more coconut milk and brown sugar, while Singaporean Bak Kut Teh often uses less sugar and more soy sauce for a deeper umami. Malaysian recipes may also include tao jing (fermented soybean paste) for extra funk, while Singaporean versions focus on the pork's natural richness.
Can I make this soup in an Instant Pot?
Yes! Use the "Soup" setting for 60 minutes on high pressure, then quick-release. Add coconut milk and soy sauces in the last 10 minutes to prevent curdling. The Instant Pot version cooks faster but may need an extra 30 minutes of simmering on the stovetop to develop deeper flavors.
How do I store and reheat leftovers?
Store in an airtight container in the fridge for 3-4 days or freeze for 3 months. Reheat gently on low heat, adding 2 tbsp water per serving to prevent drying. The pork will be even more tender after resting—perfect for sandwiches or fried rice the next day!
