Salmon Fish Bone Tofu Soup (三文鱼骨豆腐汤)

Milky and light brown fish soup, full of flavor and packed with nutritious goodness. Not only the fish head, there’s alot of fish bones in it too! It’s suitable for who needs a lot of nutrients. Like Calcium, Omega and other goodness. All in this pot of soup.

On a side note… This soup is NOT FISHY all. It depends on how you cook it.


This soup is indeed nutritious, delicious and versatile. You may replace with your favorite vegetables in this recipe. Besides, having a warm fish soup is so comforting especially during the cold weather.

For those who often cook fish soup will know fish bones and head has lots of flavor.

And this is how I prepare this soup….

To prepare :

1. Gently, give the fish head and bones a quick wash. Drain them using kitchen towel. Yes, you will need quite alot of kitchen towels to do the work. But if you did it well, it would make pan-frying easier. Wet fish will makes your pan-frying fish experience turned disaster.

2. Heat up some oil in a wok, add in few slices of ginger, sprinkle some salt. Under medium fire, pan fry the fish head and bones until lightly browned. You don’t have to put too much oil. Salmon itself is oily. It will release oil on its own.

3. Let the fish rest on the paper towel to drain up some excess oil.

All above fish bones and head is definitely too much for today. I divided them into two portion. 1 portion eat fresh, another portion wrap well and freeze away for next week.

  • Some Salmon fish head and fish bones, or you can replace it with Red Snapper head, or Threadfin bones
  • 2 thumb sized ginger, sliced
  • 2 cloves garlic, smashed
  • 1 block of firm tofu
  • 6 stalks of dried mushrooms, soaked till soft
  • 1 stalk of leek
  • slices of daikon
  • 1 tbsp black peppercorn, crushed
  • 1 bird’s eye chilli
  • a kettle of hot boiling water… This is important
  • thumb sized rock sugar… This is important
  • 1 tbsp fish sauce
  • 2 tbsp Shao Xing Wine (Chinese cooking wine)
  • 3 tbsp Green Lime Juice or Calamansi Juice
  • dashes of pepper
  • Salt to taste
for garnishing
  • some Spring onions
  • some Coriander

As I mentioned earlier, you may replace with your preferred vegetables. If you don’t like Salmon, you can use Threadfin bones or Red Snapper too. Add in more ginger if your tolerance of fishy smell is low. But as I said right at the beginning, this fish soup is not fishy at all. But that’s provided you follow my instructions.

But I have to confess that pan-frying the salmon fish bones do makes your kitchen  smells fishy. It’s unavoidable. If you pan-frying fish at home before,  you will know what I mean. So, your kitchen do smells fishy after pan-frying the fish bones. But the soup won’t taste fishy. Is that clear now?



Method :

  1. Boil a pot of water. We need hot BOILING water. Don’t use room temperature water.
  2. In a pot or a casserole, heat up a tsp oil, fry the ginger and garlic till fragrant. Add in pan-fried fish bones and head. Cover up with lid, let it fry for 5 to 7 minutes or until the fish bones and head is well heated up. Keep an eye on it, and don’t burnt them.
  3. Add in the hot boiling water until the water covers the fish head and bones. This is important. You have to follow this if you wants milky looking fish soup.
  4. Add chinese mushrooms and black peppercorn. Turn fire to high heat and let it boil for 10mins. And then, add tofu, turn to medium low heat, and boil for another 10mins.
  5. Remove any scums and oil floated on top of the soup during boiling process. Don’t be lazy. Try to keep as little oil as you can in the soup.
  6. Add shao xing wine, rock sugar, fish sauce, green lime or calamansi juice and salt. Give it a stir. Taste.
  7. Add in daikon slices and bird’s eye chilli, cover lid, continue to boil for another 10mins. Taste the soup, add more salt if needed. Once it is okay, heat off, and leave it there.
  8. Until you are ready for the meal, reheat the soup, garnish with spring onions and coriander.

Add in the hot boiling water into the the pan-fried bones gives milky looking fish soup base. If you use room temperature water, you might not be able to achieve what you want. I need to re-emphasize, it is HOT BOILING WATER. Don’t give me lukewarm water or whatever nots.

Boil the fish head and bones under high heat at the first 10 minutes is also part of the trick that gives milky appearance soup result.

Ooohhh,.. Look at the milky and light brown color! Is this what you want to achieve? If yes, please DO NOT skip any steps that I mentioned earlier. My soup looked clean and very little oil.

Flavorful fish bones soup and some vegetables. Yes, this is simple, economical and absolutely delicious. You don’t have to dry up your wallet to eat well.

I still remember how my mother-in-law complaint to me about the fishy smell on her salmon fish bones soup that she tried cooking months ago while I’m away from home. Today, she’s actually savoring every last drop of broth in her bowl. I’m glad.


Crispy Skin Pan Seared Barramundi with Red Thai Curry

Have you ever tried Barramundi?  If not, this is most definitely a fish you want to include in your diet!  Think of Barramundi as “the Sustainable Sea Bass”.  It’s a firm-fleshed, meaty white fish, with a buttery texture and it’s super versatile when it comes to cooking.  It’s also high in protein, low fat, loaded with Omega-3s and has half the calories of salmon.  And, not only is Barramundi healthy for you, but it’s healthier for the planet, too…it’s sustainably farm raised using innovative Smart Aquaculture techniques.

You can find Barramundi at Fish Club:

I never eat the skin on fish…unless it’s seared and super crispy.  Then, it’s delicious!  So, since this fish comes with skin on, pan seared Barramundi was a no-brainer.

Kelli’s tips for super crispy skin:
(1) Use a paper towel to pat down the fish so that it’s totally dry before cooking.  If the skin is still moist, the fish will stick to the pan.

(2) You’ll get crispier skin using a cast iron or stainless steel pan, versus a non-stick pan.

(3) Use a hot pan.  Let the pan get hot over medium-high heat for a few minutes before you add oil or start cooking.  If the pan isn’t hot enough, the fish still stick.

(4) Once you add the fish to the hot pan, it naturally wants to seize up and contract.  Using a fish spatula, gently press down on the fillet for about 30 seconds.

(4) As tempting as it is, after adding the fish to the pan, don’t try to lift it up to check the doneness of the skin.  Just let it cook.  Once the skin has fully cooked and crisped up, it will naturally release from the bottom of the pan and you’ll notice a golden brown color around the edges.

This dish is an indecisive-food-lover’s dream.  Why choose between French and Thai when you can have them both on the same plate!

Beurre Blanc is a traditional French sauce, that literally translate to “white butter”, and is often paired with fish.  The red Thai curry paste  takes the “blanc” out of the “beurre”, and turns this sauce upside down, adding another dimension and deeper layers of spiced flavor.  This sauce can be a little on the heavy side, so just a few dollops do the trick.

The Cilantro Gremolata is such a small part of this dish, but huge at the same time because it’s what ties everything together.


Crispy Skin Pan Seared Barramundi with Red Thai Curry Beurre Blanc and Cilantro Gremolata

Yield: Serves 2


For the gremolata
    • 1/4 cup fresh cilantro, very finely chopped
    • 1 clove garlic, finely chopped
    • 1 teaspoon ginger, grated
    • 1/2 lime, zest & juice
    • salt
For the Beurre Blanc
    • 1 shallot, diced
    • 2 cloves garlic, minced
    • 1/2 cup dry white wine (I used sauvignon blanc)
    • 2 tablespoons red Thai curry paste
    • 1 tablespoon water, optional
    • 1 stick butter, cubed and cold
    • salt
For the fish
  • 2 4-ounce barramundi fillets
  • 2 tablespoons coconut oil
  • salt
  • fresh ground pepper


Remove the Barramundi from the refrigerator about 20-30 minutes before you’re ready to cook. This will bring it up to room temperature and help it cook evenly.

For the gremolata

In a small bowl, combine cilantro, garlic, ginger, lime zest & juice and a pinch of salt. Mix together, taste and season with additional salt, if necessary. Set aside.

For the beurre blanc

In a medium saute pan, combine shallot, garlic, white wine and a pinch of salt. Cook over medium heat until the wine is reduced by about 75%. Whisk in the red Thai curry paste and cook for another minute. The sauce should be a medium consistency, if it feels thick you can add a tablespoon of water. Add one cube of the cold butter and whisk constantly until it’s completely melted. Add a second cube of cold butter and whisk constantly until it’s melted. Repeat with the remaining cubes of butter. Once the last cube of butter has melted remove the pan from the heat. Pass the sauce through a fine mesh strainer. Set aside.

For the fish

Use a paper towel to pat the fish dry. Season both sides of the fish with salt and pepper. Heat a large pan (preferably cast iron or stainless steel, but non-stick also works) over medium high heat for a few minutes. Add the coconut oil to the pan, and let it heat for a minute so it’s very hot but not smoking. If it does start smoking, just remove it from the burner for a minute. Carefully add the Barramundi skin side down. The fish will naturally want to seize up and contract, use a fish spatula and press down on the fish for about 30 seconds.

Continue to cook the fish, undisturbed. As the fish cooks, you’ll notice the cooked portion slowly moving up the sides. When this is about 3/4 of the way up, about 5 minutes or so, depending on the thickness of the fish, flip the fish over and cook for 1-2 minutes. Remove the fish from the pan.

To serve

Transfer the fish to plates, add the beurre blanc sauce around the edge and top the fish with a spoonful of the cilantro gremolata.


This is great served with purple Thai rice, or any one of your favorite grains.