The dish is sauce, not ribs. That sounds strange until you cook it once. As the pork steams, a dark, glossy pool collects on the plate, slicked with rendered fat, salted black bean, garlic, and chili. You spoon it over rice. The ribs are the excuse. The juice is the point.
What trips people up at home is the texture. The restaurant version has that soft, almost custardy bite where the meat gives way with barely a tug. Most home attempts turn out leathery, the marinade sitting on the surface and the bone surrounded by tight, chewy flesh. I have served that version, and I have fixed it. The difference comes down to one step almost everyone skips, and it is not the marinade.
Soak the ribs in a baking-soda bath for 30 minutes, then rinse until the water runs clear. That single step is what separates tough home ribs from the silky dim-sum version. Steam a flat, single layer for 20 minutes over a hard boil, and never, ever pile the pieces.
What the dish is, and where it comes from
This is Chi Zi Zheng Pai Gu (豉汁蒸排骨), a Cantonese dim-sum staple that arrives in a shallow dish inside a bamboo steamer, often alongside black-bean chicken feet and sticky-rice parcels. The name tells you the method and the seasoning in one breath: chi means the fermented black-bean sauce, zheng means steam. In a Cantonese teahouse the portion is small, a few pieces to share, which is part of why people assume it is fussy to make. It is not. Scaled up for a family dinner it becomes a one-plate main that cooks itself while you sort out the rest of the meal. If you want to see it in context, it belongs firmly in any round-up of classic dim sum dishes worth making at home.
One honest caveat: this is not a weeknight-in-twenty-minutes dish. The active work is short, but the ribs want their soak and their rest. Plan an hour and a half start to finish, most of it unattended.
The science of the soft bite
Pork rib meat is loaded with connective tissue and lean muscle that tightens under heat. Steam it raw and you get the chewy result that disappoints everyone. Two things rescue the texture, and they work by different mechanisms.
The baking-soda soak raises the surface pH. Alkalinity weakens the bonds between protein strands so they cannot clamp together into a tough knot when they hit heat. This is the same trick used on velveted stir-fry meats, just longer and gentler. You must rinse it off completely afterward, or the meat tastes soapy. Skip the rinse and you will know immediately.
Cornstarch does something else. Coated on the surface, it gelatinizes in the steam and forms the faint, slippery film you recognize from the restaurant version. That film also holds the sauce against the meat instead of letting it run off into the pool. Between the alkaline soak and the starch coating, you have answered the texture question before the ribs ever see the steamer.
Ingredients
Ingredients at a glance

For 4 servings as a main, you need about 450 g (1 lb) of ribs. Most Asian butchers sell them already chopped to bite size, the small riblets you see at dim sum. A regular Western butcher can cut spareribs across the bone for you; ask for pieces roughly 3 to 4 cm. Baby back ribs also work and are a little leaner, so trim the cook time by a couple of minutes.
| Ingredient | Amount | Notes / substitute |
|---|---|---|
| Pork ribs, bite-sized | 450 g (1 lb) | Ask the butcher to chop across the bone |
| Baking soda | 1 tsp (5 g) | For the tenderizing soak only; rinse off fully |
| Water (for soaking) | 480 ml (2 cups) | Cool tap water is fine |
| Cornstarch | 1 tbsp (10 g) | Potato starch works equally well |
| Salt | ½ tsp | Kosher or fine sea salt |
| Neutral cooking oil | 1 tbsp | Grapeseed, canola, or peanut |
| Garlic, minced | 1 tbsp | About 3 medium cloves |
| Ginger, minced | 1 tsp | Peel first; older, fibrous ginger is more pungent |
| Fermented black beans (Douchi) | 1 tbsp, rinsed and chopped | Sold as salted black beans; rinse off the brine |
| Fresh red chili, minced | To taste | Thai bird's-eye for heat, red jalapeño for color |
| Light soy sauce | 1½ tsp | Use light, not dark; dark is too heavy here |
| Oyster sauce | 1½ tsp | Vegetarian mushroom stir-fry sauce is a fair sub |
| Shaoxing rice wine | 1½ tsp | Dry sherry is the closest Western substitute |
| Ground white pepper | ¼ tsp | Prefer white over black for the cleaner aroma |
| Sugar | ¼ tsp | Balances the salt of the beans; do not omit |
| Scallions, finely chopped | 2 stalks | For finishing only |
On the black beans specifically: these are salted fermented soybeans, not the black beans in a can. They come dry and wrinkled in a pouch, often labeled "salted black beans" or "preserved black beans with ginger." They are also the backbone of homemade black bean sauce and many other Cantonese dishes, so a pouch will not go to waste. Rinse them, drain them, then chop coarsely so each piece releases its flavor instead of staying a hard salty pellet.
Step-by-step method
- Soak the ribs in baking-soda water. Dissolve 1 tsp baking soda in 480 ml cool water in a bowl big enough to submerge the ribs. Drop them in, stir, and leave at room temperature for 30 minutes, or up to 2 hours in the fridge if you are prepping ahead. This is the texture step. Do not skip it and do not extend it past two hours, or the surface turns mushy.
- Rinse until the water is clear. Drain and run the ribs under cold water, rubbing each piece with your fingers. Change the water three or four times. Taste a rinse drop near the end; if it still tastes soapy, keep going. Pat every piece bone-dry with paper towels. Wet ribs will not hold the cornstarch coating.
- Coat with cornstarch and salt. Toss the dried ribs with 1 tbsp cornstarch and ½ tsp salt, massaging until each piece is evenly dusted and slightly tacky. This film is what gives the finished rib its slippery surface and locks the marinade in.

Pat every rib completely dry, then massage in 1 tablespoon cornstarch and ½ teaspoon salt until each piece has only a thin, even, slightly tacky film. A thick white layer or wet pool will not give the intended slippery finish.
- Bloom the aromatics. Heat 1 tbsp oil in a small pan or your wok over low heat. Add the garlic, ginger, and chopped black beans. Fry gently until fragrant, about 30 seconds. Low heat matters here; burnt garlic turns bitter and there is no rescuing it. Add the chili, light soy, oyster sauce, Shaoxing wine, white pepper, and sugar. Stir for 10 seconds, then pull off the heat. This quick bloom releases the fat-soluble aromas that a raw marinade never would.
- Marinate the ribs. Let the aromatic mixture cool for a few minutes, then pour it over the cornstarch-coated ribs and toss thoroughly. Rest at room temperature for 30 minutes, or refrigerate overnight for deeper flavor. If you chilled them, let the ribs sit out for 20 minutes before steaming so the cook time stays predictable.
- Arrange in a single layer. Pick a heatproof plate that fits inside your steamer with the lid closing properly. Spread the ribs out flat, no overlapping. Piled ribs steam unevenly, the top pieces pale and the bottom ones swimming in grey scum. A flat layer is non-negotiable.

After the aromatic marinade has cooled and coated the ribs, spread every piece flat on a wide shallow heatproof plate. Keep one strict non-overlapping layer so steam reaches each rib evenly and the bottom pieces do not sit in a deep pool.
- Steam over a hard boil. Bring the steamer water to a rolling boil first, then set the plate on the rack and cover. Steam over medium-high heat for 20 minutes. Starting over boiling water means the clock is honest from minute one. Check the water level at the halfway mark and top up with boiling water if needed; a dry steamer is the most common way this recipe fails.
- Finish and serve. Lift the plate out carefully, scatter scallions over the top, and bring it straight to the table. The dark juice on the plate is the prize, so do not drain it.
When it goes wrong, and how to fix it
The dish is simple, which means failures are simple too, and usually traceable to one cause. Here are the ones I have either made myself or been asked about most.
Tough, chewy ribs
You skipped or shortened the baking-soda soak, or you did not rinse. The soak is the whole texture program. If you are short on time, do 30 minutes minimum and never skip it. If the meat is still chewy after a proper soak, the pieces were cut too large; chop smaller next time so the alkali and the steam can penetrate.
A soapy or metallic off-taste
Leftover baking soda on the surface. Rinse harder and longer, and taste the rinse water. Once you have made this mistake you will not repeat it.
Pale, watery pool instead of dark glossy sauce
Two causes. The ribs were wet when you added the cornstarch, so the coating washed off into the juice. Or the steamer was not at a full boil when you started, so the meat wept grey liquid for the first ten minutes instead of cooking fast. Dry the ribs, start over boiling water, and the sauce comes right.
Burnt-garlic bitterness
The aromatics fried too hot. Low heat, 30 seconds, done. Garlic goes from golden to acrid in seconds, and there is no fixing it once it crosses over; start the bloom again.
Unevenly cooked pieces
You piled them. A single flat layer is the rule. If your plate is too small, use two plates and rotate them halfway, or steam in two batches.
Variations and what to serve alongside
The black-bean-and-rib pairing is forgiving. A few directions worth trying once you have the base down.
Add taro or pumpkin. Spread peeled taro cubes or kabocha squash under the ribs before steaming. They soak up the sauce, turn silky, and stretch the dish into a fuller meal. Taro is the classic dim-sum pairing.
Make it spicier. Double the chili, or add a teaspoon of chopped fermented chilies for a sharper, funkier edge. A spoonful of chili oil at the table also works, added per plate so nobody is ambushed.
Swap the meat. The same marinade and method work beautifully on boneless chicken thighs, cut into chunks; shave the steam time to 15 minutes. You are essentially making a black-bean cousin of steamed chicken with shiitake. For a deeper pork project on another night, the same cut shines in Mei Cai Kou Rou or a slow red-cooked pork belly.
For a balanced plate, serve over plain steamed jasmine rice and add something green and clean. Blanched Chinese broccoli (gai lan) with oyster sauce is the classic counterpoint, cutting through the rich rib juice. A bowl of clear pork rib soup turns the meal into a proper Cantonese-style spread. If you own a bamboo steamer already, the same kit handles a whole range of steamed dishes, so the equipment earns its keep.
Storing and reheating leftovers
Leftovers keep covered in the fridge for up to two days. The flavor actually deepens overnight. Reheat by steaming for 5 to 8 minutes, which keeps the texture intact. A microwave works in a rush but toughens the edges; if you must, cover tightly and go in short bursts. I do not recommend freezing, because the cornstarch film breaks down and the ribs weep on thaw. For a different leftover life, the same cut also stars in sweet and sour ribs or Cantonese char siu ribs, neither of which is a steamed dish.
Questions home cooks actually ask
Make this once and the recipe stops feeling like a restaurant imitation. The baking-soda soak, the cornstarch film, the flat single layer, the hard-boil start: those four decisions are the whole craft. Nail them and you will be serving the version that lives up to the memory, with a pool of juice on the plate that nobody wants to leave behind.



