Home › Recipes › Savory Millet Congee with Fish (Xiao Mi Yu Pian Zhou)

Savory Millet Congee with Fish (Xiao Mi Yu Pian Zhou)

There is a special category of food in Chinese culture known as “healing food.” It isn’t necessarily medicine, but it nourishes the body in a way that feels restorative. I first encountered this specific version of Savory Millet Congee with Fish (Xiao Mi Yu Pian Zhou) when visiting my wife at a yuezi center (a traditional postpartum confinement center).

Savory Millet Congee with Fish

I watched her eating this golden, creamy porridge dotted with snow-white fish slices. It smelled incredibly savory—a stark contrast to the bland plain congee many of us grew up eating when we were sick. It was made with Basa fish (a type of catfish), which is affordable and convenient, and millet, an ancient grain powerhouse.

I went home to my kitchen, researched the technique, and tweaked the ratios to make it workable for the home cook. Whether you are recovering from a cold, looking for a nutritious breakfast, or just tired of plain white rice porridge, this recipe is a game-changer.

Why This Recipe Works

  • Nutrient Density: Unlike white rice congee, which is mostly starch, millet is rich in fiber, iron, and B vitamins.
  • Velveting Technique: We treat the fish with a classic Chinese marinade of starch and vinegar to ensure it remains silky and tender, never rubbery.
  • Digestibility: Soaking the millet and slow-cooking it breaks down the grains, making this dish incredibly easy on the stomach.

What is Millet Congee?

Millet (Xiao Mi) has been a staple in Northern China for thousands of years. It has a mild, corn-like flavor and a naturally yellow color. In the West, it is often associated with birdseed, but in Chinese medicine and culinary tradition, it is highly regarded for “warming the stomach.”

Savory Millet Congee with Fish

Typically, millet porridge is eaten plain or with sugar. However, this savory version borrows from the Cantonese tradition of Fish Congee, bridging the gap between Northern grains and Southern flavors.

About the Author & Recipe Development

I’m Lin, a culinary instructor and chef born in Sichuan. My journey began in my parents’ restaurant kitchen, peeling garlic and watching my father work the wok. I later formally trained at the Sichuan Culinary Institute and spent over a decade cooking in professional kitchens.

This recipe was developed in my home kitchen using a standard gas stove. I tested the water-to-millet ratios three times to ensure the consistency was creamy but not gluey. I also tested the marinade time for the fish to ensure the vinegar removed the “fishy” odor without making the meat sour.

Key Ingredients & Substitutions

  • Millet (Foxtail Millet): Look for yellow millet in Asian grocery stores. It is small and round.
    • Substitution: If you cannot find millet, you can use broken jasmine rice, though the nutritional profile and flavor will change.
  • Fish Fillet: The original recipe uses Basa fish (Pangasius), which is very soft and inexpensive.
    • Substitution: In the US or Europe, you can easily substitute Tilapia, Cod, Flounder, or Swai. Any mild, white-fleshed fish works perfectly. Avoid oily fish like salmon or mackerel for this delicate soup.
  • Vinegar: The secret weapon. A splash of vinegar in the marinade neutralizes amines (the compounds that cause fishy smells) and tenderizes the meat.
  • White Pepper: Essential for any Asian fish soup. It provides a distinct, earthy heat that pairs perfectly with seafood.

Ingredients

Ingredients

For the Porridge:

  • 1/2 cup (100g) Yellow Millet (Foxtail Millet)
  • 7-8 cups (1.7-2 Liters) Water (use less for a thicker porridge, more for a thinner soup)

For the Fish & Marinade:

  • 10 oz (300g) Basa fish fillet (or Tilapia/Cod), thawed if frozen
  • 1/2 tsp Salt
  • 1 tsp Cornstarch (or potato starch)
  • 1 tsp White Vinegar or Rice Vinegar
  • 1/4 tsp White Pepper (optional, for marinade)

Seasoning to Taste:

  • Salt
  • Ground White Pepper
  • Chopped Scallions (Green Onions) for garnish

Recipe Notes Before You Start

  • The Ratio: Millet expands significantly. A 1:12 ratio (millet to water) yields a fluid, soup-like consistency. A 1:8 ratio yields a thick, oatmeal-like porridge.
  • Fish Prep: If using frozen fish, ensure it is fully thawed and patted dry with paper towels before marinating. Excess water will dilute the marinade.

Mise en Place

  • Soak the Millet: Wash the millet under cold water until the water runs mostly clear. Soak it in a bowl of clean water for 30 minutes. This allows the grain to absorb water, reducing cooking time and ensuring a fluffier texture.
Soak the Millet
  • Prep the Fish: Slice the fish fillet into thin slices (about 1/4 inch thick). Place in a bowl.
Prep the Fish: Slice the fish fillet into thin slices (about 1/4 inch thick). Place in a bowl.
  • Marinate: Add salt, cornstarch, and vinegar to the fish. Use your hand to gently mix until the fish feels slightly tacky. Let it marinate for 20 minutes to 1 hour.

Chef’s Note: The vinegar helps firm up the fish proteins slightly so they don’t disintegrate in the hot porridge.

Marinate: Add salt, cornstarch, and vinegar to the fish.

How to Make Millet Fish Fillet Porridge

Step 1: Boil the Millet Drain the soaked millet. In a pot (or a clay pot if you have one), bring the water to a rolling boil. Add the millet. Reduce heat to medium-low, cover partially (to prevent boil-over), and simmer for 20-30 minutes.

  • Visual Cue: The millet grains should bloom (split open) and the liquid should thicken.

Step 2: Add the Fish Once the millet is fully cooked and the porridge is creamy, turn the heat down to low. Gently slide the marinated fish slices into the porridge.

  • Tip: Do not dump them in a clump. Drop them piece by piece or gently separate them with chopsticks.
Add the Fish Once the millet is fully cooked and the porridge is creamy, turn the heat down to low.

Step 3: Simmer Gently Stir gently once to ensure the fish is submerged. Let it simmer for 3-5 minutes.

  • Important: Do not stir vigorously! Fish fillets are delicate and will break apart into mush if over-handled. The residual heat of the thick porridge is almost enough to cook them.
Simmer Gently Stir gently once to ensure the fish is submerged. Let it simmer for 3-5 minutes.

Step 4: Season and Serve The fish is cooked when it turns opaque white and flakes easily. Turn off the heat. Taste the porridge. The fish is salted, but the porridge likely needs more. Add salt and a generous shake of white pepper powder to taste. Ladle into bowls and serve immediately.

Savory Millet Congee with Fish

Common Mistakes When Making Fish Congee

  • Over-stirring: As mentioned, stirring aggressively after adding the fish will result in a fish-paste soup rather than fish slices. Stir only to combine.
  • Skipping the Soak: If you don’t soak the millet, it takes much longer to cook, and you may need to add more water during the process.
  • Adding Fish Too Early: Fish cooks in seconds. If you boil it for 20 minutes with the millet, it will become tough and dry. Always add it at the very end.

Variations & Serving Suggestions

  • Vegetables: You can add shredded lettuce, diced carrots, or even Stir-fried Lettuce with Garlic on the side.
  • Flavor Boost: For a more traditional route, add fine julienned ginger with the fish to add warmth.
  • Pairings: This congee is light. It pairs beautifully with savory sides like Smashed Cucumber Salad or crisp Spring Rolls for texture contrast.
  • Protein Swap: You can adapt this for Century Egg and Pork Congee flavors by adding century egg, though millet gives it a nuttier profile than rice.

Food Safety and Preparation

  • Fish Safety: Ensure the internal temperature of the fish reaches 145°F (63°C). The flesh should be opaque and separate easily with a fork. (Source: USDA Safe Minimum Internal Temperature Chart).
  • Bone Warning: If buying whole fillets, always run your fingers along the center line to check for pin bones before slicing.

How to Store and Reheat

  • Storage: Store leftovers in an airtight container in the refrigerator for up to 2 days. Fish porridge does not freeze well, as the texture of the fish degrades.
  • Reheating: Reheat on the stovetop over low heat. Millet congee thickens significantly as it cools (it turns almost into a gel). You will need to add a splash of water or stock to loosen it up. Heat until steaming hot.

Authoritative References

For more information on the nutritional benefits of millet, refer to the Harvard T.H. Chan School of Public Health’s guide on Whole Grains.

For guidelines on selecting sustainable seafood alternatives to Basa, check the Monterey Bay Aquarium Seafood Watch.

Savory Millet Congee with Fish

Savory Millet Congee with Fish (Xiao Mi Yu Pian Zhou)

Lin
A comforting, nutritious Chinese millet porridge with tender fish fillets. Developed by Lin, this recipe uses a velveting technique to keep the fish silky and tender. Perfect for breakfast or a healing meal.
Prep Time 10 minutes
Cook Time 30 minutes
Soaking & Marinating 1 hour
Total Time 1 hour 40 minutes
Course Breakfast, Soup
Cuisine Chinese
Servings 3 bowls
Calories 280 kcal

Equipment

  • 1 Medium Pot or Dutch Oven For boiling the porridge
  • 1 Chef’s knife For slicing fish

Ingredients
  

The Porridge

  • 100 g yellow millet (foxtail millet) rinsed
  • 1.7 L water adjust for desired thickness

The Fish & Marinade

  • 300 g Basa fish fillet (or Tilapia/Cod) sliced thinly
  • 1 tsp white vinegar or rice vinegar
  • 1 tsp cornstarch
  • 0.5 tsp salt for marinade

Seasoning

  • 0.5 tsp white pepper powder to taste
  • 1 pinch salt to taste at the end

Instructions
 

  • Prep the Millet: Rinse the millet thoroughly. Soak it in a bowl of clean water for 30 minutes. This helps it cook faster and become creamier.
    Soak the Millet
  • Marinate the Fish: Slice the fish fillet into thin, bite-sized pieces. In a bowl, combine the fish with 1/2 tsp salt, cornstarch, and vinegar. Mix gently by hand to coat. Let marinate for 20 minutes to 1 hour.
    Marinate: Add salt, cornstarch, and vinegar to the fish.
  • Cook the Porridge: Drain the millet. In a pot, bring the 7 cups of water to a boil. Add the millet. Reduce heat to medium-low, cover partially, and simmer for 20-30 minutes until the millet is soft and the soup has thickened.
  • Add Fish: Reduce heat to low. Gently place the marinated fish slices into the porridge. Stir very gently once to distribute. Do not over-stir or the fish will break.
    Add the Fish Once the millet is fully cooked and the porridge is creamy, turn the heat down to low.
  • Finish: Simmer for 3-5 minutes until the fish turns opaque white and is cooked through. Season with white pepper and additional salt to taste. Serve hot.
    Simmer Gently Stir gently once to ensure the fish is submerged. Let it simmer for 3-5 minutes.

Notes

Nutrition Info (Estimate per serving):
Calories: 280 kcal | Protein: 22g | Fat: 4g | Carbs: 38g | Sodium: 450mg
(Disclaimer: Nutrition information is calculated using an ingredient database and should be considered an estimate. Garnishes and optional ingredients are not included.)
Chef’s Notes:
– Vinegar: The vinegar in the marinade is crucial for neutralizing any fishy odor and keeping the fish texture firm yet tender.
– Fish Choice: Basa is traditional for this budget-friendly dish, but Cod or Tilapia are excellent alternatives.
– Texture: Millet porridge thickens as it cools. If reheating, add a splash of water.
Keyword Chinese fish congee, easy fish recipe, healthy, Healthy Breakfast, savory millet porridge, Xiao Mi Yu Pian Zhou
Lin Avatar

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe Rating




Lin

Hi! I’m Lin!

I’m Lin, a professional chef with over a decade of experience, and I grew up in my family’s Sichuan restaurant. On my blog, Woks of Love, I share the authentic Chinese recipes I’ve spent my life learning, and I’m currently writing my debut cookbook.

Search


You’ll also love