Culinary Advisor

A cooking platform built around craft, culture, and the stories behind what we eat.

Explore Culinary Advisor
Isan Pork Rib Sour Soup (Tom Saep)

Isan Pork Rib Sour Soup (Tom Saep)

Created by

Isan bone soup that follows a different governing system: no coconut, no sweetness, no compromise. Padaek for depth, lime for assault, khao khua for body. The bones are the point.

Soups & Stews
Thai
Weeknight
Comfort Food
20 min
Active Time
1 hr cook1 hr 20 min total
Yield4 servings

Tom saep breaks every Central Thai assumption about soup. No coconut cream. No balanced sweet-sour harmony. No gentle aromatics floating in a polished broth. This is Isan. The rules are different here.

Ajarn always said the four pillars govern Thai cuisine: fish sauce for salt, palm sugar for sweet, lime for sour, chili for heat. That framework holds across the country, but Isan tilts the balance. In tom saep, sour dominates. Heat is relentless. Sweetness is almost absent. And the salt doesn't come from fish sauce alone. It comes from padaek (ปลาแดก), the chunky, funky fermented fish that is the backbone of Isan cooking. Padaek delivers salinity plus a deep, earthy umami that regular nam pla can't touch. Don't substitute with fish sauce alone. You'll get a thinner, cleaner soup, which is exactly what tom saep is not supposed to be.

The bones matter more than the meat. I need you to hear that. A lot of people treat tom saep like it's a pork soup with bones in it. Wrong. It's a bone soup where the meat is a bonus. Pork ribs get simmered until the marrow starts dissolving into the broth, until the cartilage goes soft, until the collagen gives the liquid a body that no amount of seasoning can fake. You chew on those bones. You suck the marrow. That's Isan eating.

Khao khua (ข้าวคั่ว), the toasted sticky rice powder you know from larb, shows up here too. Stir it into the finished soup and it thickens the broth just slightly, adds that signature nutty, smoky dimension. It's not a garnish. It's structural. Without khao khua, tom saep is just spicy bone water. With it, the soup has grip. My mother's family in Isan never made a bone soup without it.

Tom saep (ต้มแซ่บ) is a bone soup from Thailand's Isan (northeastern) region, closely related to Lao culinary traditions. The name "saep" (แซ่บ) is Isan-Lao dialect for "delicious" and specifically connotes the sharp, sour, spicy flavor profile that defines Isan soups. Unlike Central Thai soups such as tom yam, which evolved in court and urban kitchens with refined aromatics, tom saep is village food built on whatever bones were available after butchering, seasoned with padaek from the household jar. The dish traveled to Bangkok with Isan migrant workers in the 1970s and 1980s, becoming a staple of the Isan restaurants (ร้านอาหารอีสาน) that now outnumber every other regional cuisine in the capital.

The technique, the tradition, and the story behind every dish.

Discover Culinary Advisor

Ingredients

pork spare ribs

Quantity

800g

cut into individual rib pieces, about 2-inch segments

water

Quantity

6 cups

lemongrass (takhrai)

Quantity

3 stalks

cut into 2-inch pieces, bruised

galangal (kha)

Quantity

5 slices

1/4 inch thick

kaffir lime leaves (bai makrut)

Quantity

5

torn

shallots (hom daeng)

Quantity

5

peeled and halved

padaek (fermented fish, ปลาแดก)

Quantity

2 tablespoons

liquid strained

fish sauce (nam pla)

Quantity

2 tablespoons

lime juice (nam manao)

Quantity

4 tablespoons (about 4 limes)

dried bird's eye chilies (prik khi nu haeng)

Quantity

10

toasted and crushed

palm sugar (nam tan pip)

Quantity

1 teaspoon

khao khua (toasted sticky rice powder)

Quantity

2 tablespoons

green onion (ton hom)

Quantity

3 stalks

cut into 1-inch pieces

cilantro (pak chi)

Quantity

1/4 cup

leaves and stems roughly chopped

sawtooth coriander (pak chi farang)

Quantity

4 sprigs

cut into 1-inch pieces

Equipment Needed

  • Large stockpot or heavy-bottomed pot
  • Dry wok or skillet for toasting rice and chilies
  • Granite mortar and pestle (krok hin) for crushing rice and chilies
  • Fine mesh strainer for padaek

Instructions

  1. 1

    Parboil the ribs

    Put the pork ribs in a pot, cover with cold water, and bring to a rolling boil. Let them boil hard for 3 minutes. You'll see grey scum rising to the surface. That's blood proteins and impurities. Drain the whole pot, rinse the ribs under cold water, and scrub the pot clean. This step is non-negotiable. Skip it and your broth will be murky and have a sour, off taste that no amount of lime can fix. Clean bones make clean broth.

    Ask your butcher to cut the ribs into 2-inch segments across the bone. You want pieces that expose the marrow on both sides. The marrow is where the body of the broth comes from.
  2. 2

    Toast the rice powder

    While the ribs parboil, make the khao khua if you don't already have some. Take a handful of uncooked sticky rice (about 3 tablespoons dry) and toast it in a dry wok or skillet over medium heat. Keep it moving. Shake the pan. The grains will go from white to golden to deep amber over about 5 minutes. The smell shifts from nothing to popcorn to deeply nutty. Stop when they're the color of a monk's robe. Let them cool, then pound in a mortar or grind in a spice grinder to a coarse powder. Not fine flour. You want grit. That texture is part of the dish.

    Khao khua keeps for weeks in a sealed jar at room temperature. Make a big batch. You'll use it in larb, nam tok, tom saep, and every other Isan dish that needs that smoky, nutty crunch.
  3. 3

    Toast the dried chilies

    In the same dry pan, toast the dried bird's eye chilies over medium heat for 1 to 2 minutes, pressing them flat with a spatula. They'll blister, darken in spots, and release a sharp, smoky aroma that hits the back of your throat. Let them cool, then crush them roughly in a mortar or crumble by hand. You want flakes and seeds, not powder. The seeds carry heat. The flakes carry smoke. Both go in the soup.

  4. 4

    Build the bone broth

    Return the cleaned ribs to the clean pot. Add 6 cups of fresh water. Bring to a boil, then drop to a steady simmer. Add the lemongrass, galangal, kaffir lime leaves, and halved shallots. These go in whole, not pounded. Tom saep, like tom yam, is an infusion soup, not a paste-based dish. Simmer for 45 minutes to an hour. The meat should pull away from the bone easily. The broth should have a slight body from the collagen. If you can see a faint milkiness and the broth coats the back of a spoon just slightly, the bones have done their job.

    Don't rush this. A 20-minute simmer gives you cooked ribs in water. An hour gives you bone broth. The difference is structural. Collagen needs time to break down. Be patient and keep it at a gentle simmer, not a hard boil, or the broth goes cloudy.
  5. 5

    Season with padaek

    Add the strained padaek liquid to the simmering broth. Stir it in. The smell will be aggressive. That's correct. Padaek is fermented fish, chunks of freshwater fish preserved in salt and rice bran for months. It smells like it sounds. But in the broth, it transforms into a deep, rounded umami that fish sauce alone cannot deliver. Add the nam pla on top of the padaek. They work together: padaek for depth, nam pla for clean salinity. Two layers of salt, two different characters.

    Strain the padaek through a fine mesh sieve. You want the liquid, not the fish chunks, in this soup. Some cooks add the chunks too, but for your first time, the strained liquid gives you the flavor without the texture shock.
  6. 6

    Hit it with sour and heat

    Remove the pot from the heat. This is important: the lime juice goes in off the heat. Cooking lime juice kills it. You want that raw, aggressive acidity slamming into the hot broth. Add 4 tablespoons of lime juice. Add the crushed toasted chilies. Add the palm sugar, just a teaspoon, barely there, just enough to take the razor edge off the sour. Taste it now. The soup should be sour first, salty second, hot third, with the faintest whisper of sweetness way in the back. If it's not sour enough to make you wince slightly, add more lime. Tom saep is not polite.

    Ajarn always said: add sour last, add sour slowly. Lime juice changes the moment it hits. You can always add more. You can't pull it back.
  7. 7

    Add khao khua and herbs

    Stir in the khao khua. The toasted rice powder will cloud the broth slightly and give it a grainy body. That's what you want. It thickens without heaviness. Add the green onion, cilantro, and sawtooth coriander. Stir once. Ladle into bowls immediately, making sure each bowl gets ribs, broth, and a share of the herbs. Serve with sticky rice. Not jasmine. Sticky rice (khao niew). That's the only accompaniment. You tear off a piece, dip it, eat it, chase it with a bone. That's how Isan eats.

Chef Tips

  • Padaek (ปลาแดก) is the soul of this soup. Fish sauce alone will give you a cleaner, thinner flavor, which is exactly what this soup shouldn't be. Padaek delivers a fermented funk, a rounded depth that comes from months of fish breaking down in salt and rice bran. Find it at any Southeast Asian grocery store, usually in a jar with visible fish chunks. If you genuinely cannot find it, use 3 tablespoons of fish sauce plus 1 teaspoon of good shrimp paste (kapi) dissolved in the broth. It's not the same, but it gets you closer than fish sauce alone.
  • The bones matter more than the meat. Cut ribs expose marrow on both ends, and that marrow dissolves into the broth during the long simmer to give it body and richness that no seasoning can replicate. Pork neck bones (kraduk kho moo) work well too, often even better because they have more cartilage. This is a bone soup. Treat it like one.
  • Tom saep should taste aggressive. If your first sip is comfortable, something is wrong. The sour should hit first, hard and bright from the lime. The heat should build from the toasted dried chilies. The salt should come from two directions: the padaek underneath, the fish sauce on top. Bangkok versions often soften this balance with more sugar or less lime. That's not tom saep. That's Central Thai politeness applied to an Isan dish.
  • Khao khua is not a garnish. It's structural. Toasted sticky rice powder gives the broth a slight thickness and a smoky, nutty dimension that ties the whole soup together. Without it, you have hot and sour bone broth. With it, you have tom saep. Make a big batch and keep it in a jar. You'll use it constantly if you cook Isan food.
  • Sawtooth coriander (pak chi farang, ผักชีฝรั่ง) is the Isan herb. It looks like a long serrated leaf, not at all like regular cilantro, but it belongs to the same family with a stronger, more persistent flavor. Isan cooks use it in almost everything. If you can't find it, use extra cilantro stems (stems have more flavor thanleaves), but know you're losing a defining element.

Advance Preparation

  • Khao khua (toasted rice powder) can be made weeks in advance and stored in a sealed jar at room temperature. Make a large batch.
  • Ribs can be parboiled and refrigerated a day ahead. Bring to room temperature before simmering.
  • The broth can be simmered with the bones and aromatics up to a day ahead and refrigerated. Reheat gently, then add the padaek, lime juice, chilies, khao khua, and fresh herbs just before serving. The lime and herbs must be fresh. They don't survive reheating.

Frequently Asked Questions

Nutrition Information

1 serving (about 500g)

Calories
360 calories
Total Fat
24 g
Saturated Fat
9 g
Trans Fat
0 g
Unsaturated Fat
14 g
Cholesterol
100 mg
Sodium
1350 mg
Total Carbohydrates
13 g
Dietary Fiber
2 g
Sugars
4 g
Protein
22 g

Where cooking meets culture.

Culinary mentorship, cultural storytelling, and the editorial depth that makes cooking meaningful.

Explore Culinary Advisor