
Fish soup is one of those dishes you stop noticing until it stops being good. A watery broth, overcooked fish, a bowl that tastes of nothing in particular; most of us have had that version. A good bowl is different. It has body, clean flavour, and fish that still tastes like fish.
This guide breaks down how fish soup actually works in Singapore. Not the marketing version, the real one: the styles, the fish, the broth, the noodles, and the small things on the side that make a bowl feel complete.
Here's what you'll take away:
- The main styles of fish soup and how they differ
- The fish varieties you'll commonly see, and why they're used
- How a broth gets its body (with or without milk)
- Noodle choices and the accompaniments that matter
Let's start with the styles, because that's where most of the confusion sits.
The Main Styles of Fish Soup

Singapore fish soup mostly splits into two camps. Understanding the difference tells you a lot before the bowl even arrives.
Teochew-Style Clear Broth
The Teochew style keeps things clean. The broth is light, often built from fish and simple aromatics, and it lets the fish taste of itself. There's usually tomato for a little acidity, ginger to lift it, and sometimes salted vegetable or preserved plum for a savoury-sour edge.
The point of this style is restraint. Nothing hides the fish. If the fish is poor, you'll know immediately, there's nowhere for it to hide.
Milky and Collagen-Thickened Broths
The second style is thicker and cloudier. Many stalls get that white, creamy look by adding evaporated milk. It's comforting and popular, and there's nothing wrong with liking it.
But there's another way to build body, and it's worth knowing the difference. A broth can turn rich and slightly sticky from collagen; the natural gelatine drawn out of fish bones during a long simmer. Same creamy feel, no milk involved. The result tastes of the sea rather than the dairy.
This is the approach at Hup Lok's Havelock Road shopfront. Their broth gets its body from batang bones and a siput (shell) base, cooked down until the collagen thickens it naturally. It isn't thickened with milk. It's thickened with the fish itself.
Quick summary: clear broths show off the fish; thick broths add comfort. The key question is whether that thickness comes from milk or from the fish.
Fish Varieties You'll Commonly See

The fish makes or breaks the bowl. Different varieties bring different textures and flavours, so it helps to know what you're ordering.
Pomfret
Pomfret is prized for its soft, delicate flesh and clean taste. It's a favourite for special bowls because it feels a little more refined than everyday fillets. The flesh flakes easily, so it needs a gentle hand.
At Hup Lok, the signature is Grandpa's Pomfret Fish Soup, named after the founder's own father. More on how that bowl is built later.
Batang (Spanish mackerel)
Batang is the workhorse of Singapore fish soup. The flesh is firm, so it holds up in hot broth without falling apart. It's the slice you'll find in countless bowls across the island.
Its bones are also useful beyond the fillet. Simmered down, they give up plenty of flavour and body; which is exactly why they end up in the broth pot.
Grouper and Snapper
Grouper has a firm, meaty texture and a mild sweetness that suits both clear and thick broths. Snapper is slightly more delicate but still holds together well. Both are common choices when a stall wants a fuller-flavoured bowl.
So what does this mean for you? If you like firm bites, go for batang or grouper. If you want something softer and cleaner, pomfret or snapper is the way.
How the Broth Gets Its Body
This is the part most people skip, but it's where the real work happens. A broth's body comes from what's simmered in it and for how long.
Building Flavour from Bones and Shells
A proper broth usually starts with fish bones. Slow simmering pulls collagen from the bones, and that collagen is what gives a broth its weight and slight stickiness on the lips. Add a shell base (like siput) and you deepen the savoury, oceanic note.
This is exactly how Hup Lok builds its base: batang bones and a siput shell base, cooked until the broth carries body on its own. No milk needed to fake the richness.
Milk Versus Collagen
Milk is the quick route to a creamy look. It works, and plenty of people grew up on it. But it also softens the fish flavour and adds a dairy note that sits on top of everything.
Collagen does the opposite. It thickens the broth while keeping the flavour firmly in fish territory. Neither is "wrong"; but they taste noticeably different, and now you'll be able to tell which one you're drinking.
Micro-summary: thickness isn't one thing. It can come from dairy or from fish. The difference shows up in the flavour, not just the look.
A Closer Look at a Signature Bowl

To see how the details add up, look at one bowl built with intention. Grandpa's Pomfret Fish Soup at Hup Lok is finished with shiitake, julienned ginger, tomato, salted plum and hua tiao wine.
Each addition does a job. Shiitake adds a savoury depth. Ginger lifts the broth and cuts any heaviness. Tomato brings gentle acidity, salted plum adds a savoury-sour edge, and a splash of hua tiao wine rounds it off with warmth.
It's a modern recipe, created by Chef Kee Leng and inspired by family memory rather than passed down word for word. The founder's family has traded fish in Singapore for three generations: his father started as a street fish hawker before the trade grew into a wholesale seafood business. He later spent six years at BCG and ran a seafood restaurant in the CBD before opening this one. The bowl carries that background, but it stands on its own merits.
Noodles: Bee Hoon, Kway Teow and Mee
Fish soup rarely comes alone. The noodle you choose changes the whole bowl.
- Bee hoon (rice vermicelli): thin and light. It soaks up broth without turning heavy, which is why it's the most popular pick.
- Kway teow (flat rice noodles): wider and softer, with a slippery texture that carries a thick broth well.
- Yellow mee (egg noodles): springy and more filling, with a slight alkaline note some people love and others skip.
Not sure which to pick? Bee hoon is the safe default. It stays out of the way and lets the broth and fish lead.
You can also order the soup on its own, without noodles, if you want to focus entirely on the broth and fish. That's a common choice for anyone chasing the cleaner Teochew experience.
Common Accompaniments
The extras aren't just garnish. They shape each spoonful.
- Tomato and salted vegetable: acidity and savoury contrast to balance the broth
- Ginger: lifts the flavour and warms the bowl
- Preserved or salted plum: a sour-savoury note that cuts through richness
- Fried shallots and spring onion: aroma and a little crunch on top
- Chilli or a light dip: for those who want a bit of heat on the side
A small squeeze of lime or a dab of chilli can change the whole balance. Add slowly and taste as you go.
One Habit That Improves Every Bowl
Here's a simple mistake people make: they let the fish sit. In a hot broth, fish keeps cooking after it's served. Leave it too long and delicate flesh turns dry and firm.
So eat the fish early. Take the slices first, while they're still tender, then work through the broth and noodles at your own pace. It's a small habit that makes a real difference; especially with softer fish like pomfret.
If you're weighing up where to enjoy fish soup in Singapore, keep this in mind wherever you go. The best bowl still suffers if the fish overcooks in front of you.
Wrapping Up

Good fish soup isn't complicated, but the details decide everything. The style sets the mood, the fish sets the texture, and the broth's body (milk or collagen) sets the flavour. Add the right noodles and a few well-chosen sides, and you have a bowl worth sitting down for.
Next time you order, notice where the richness comes from. Pick your fish for the texture you want. Choose your noodle, then eat the fish early before it overcooks.
If you'd like to taste a collagen-built Teochew broth for yourself, drop by Hup Lok on Havelock Road and start with Grandpa's Pomfret Fish Soup.





