Shunde, the Cantonese town that cooks fish and milk by hand
By half past eight, the first tray of double-skin milk at the old shop on Huagai Road (华盖路, Huágài Lù) has set and sold through, and the woman at the counter is already ladling warm buffalo milk into the second. She works without a menu board because everyone in the queue grew up eating this. You order by pointing — hot or cold, plain or with red bean — and you eat standing if the four marble tables are taken.
Where the chefs come from
Shunde (顺德, Shùndé) is less a city you arrive at than one you fold into. It is a district of Foshan (佛山, Fóshān), southwest of Guangzhou in the everyday reckoning of the Pearl River Delta, and its old centre is Daliang (大良, Dàliáng), once called Fengcheng (凤城, Fèngchéng). Cantonese cooks quote a line about it the way other trades quote scripture.
Food is in Guangzhou; the cooks come from Fengcheng.
顺德人把这句话挂在嘴边:食在广州,厨出凤城。
Getting there is undramatic, which is the point. Intercity trains on the Guangzhou–Zhuhai line (广珠城际, Guǎng-Zhū chéngjì) reach Shunde station from Guangzhou South in about twenty-five minutes, fares around ¥25; Foshan Metro Line 3 now runs into Daliang, and Guangzhou Metro Line 7 reaches Beijiao (北滘) and Shunde College on the town's edge. Once out at Daliang, the first thing to do is nothing — walk to Qinghui Garden (清晖园, Qīnghuī Yuán), a Qing merchant's garden open roughly 9 a.m. to 5.30 p.m., and let the pace reset before lunch.
Milk you eat with a spoon
The dish Daliang is known for is not a fish but a dessert. Double-skin milk (双皮奶, shuāngpí nǎi) is made from water-buffalo milk cooked until a skin forms, set twice, and served with a faint eggy wobble; a bowl runs about ¥10 to ¥16 at the two names locals argue over, Minxin (民信) and Renxin (仁信), both with counters on or near Huagai Road. Cold in summer, hot in winter, plain if you want to taste the milk rather than the topping.
The savoury cousin is stir-fried milk (大良炒鲜奶, Dàliáng chǎo xiān nǎi), where milk is thickened just to the edge of setting and folded over high heat with egg white, shrimp, and slivers of fried dough for crunch. It reaches the table pale and barely holding together, closer to a warm custard than anything fried, and a plate is around ¥60 to ¥80. Order it early in the meal, before the fish, because it slumps if it waits.
The fish comes from the pond behind
Shunde sits on fish ponds. The old dyke-and-pond farms that once fed silkworms now raise grass carp and the prized crisp-flesh grass carp (脆肉鲩, cuì ròu huàn), fattened on broad beans until the flesh turns firm enough to slice thin. The town's signature is yu sheng (鱼生, yúshēng), raw freshwater fish cut almost to translucence and dressed at the table with more than a dozen shreds — ginger, spring onion, taro crisp, peanut, sesame, pickled shallot, lemongrass, a spoon of peanut oil — which you toss yourself.
Because the fish is freshwater and raw, this is the one dish to weigh honestly: reputable houses raise the fish in clean flowing water and chill it hard, but the safety margin is not the same as ocean sashimi, and if that gives you pause, order it cooked. The steamed and blanched versions lose nothing. A whole fish steamed with ginger and scallion, or the same fish blanched slice by slice in a clay pot of stock, is what most tables actually eat, and a farmhouse restaurant out toward Xingtan (杏坛) or Chencun (陈村) charges by weight — expect ¥60 to ¥120 for a fish that feeds three.
Cakes, noodles, and a whole pig
Beyond milk and fish, Shunde keeps a bench of small specialties that rarely leave the district. Lunjiao cake (伦教糕, Lúnjiào gāo), from the town of the same name, is a steamed rice cake leavened until it is springy and faintly sour, sold in translucent white slabs for a few yuan. Chencun rice noodle (陈村粉, Chéncūn fěn) is rolled nearly sheer, steamed and eaten with soy or stir-fried with beef, and the town that makes it also runs a centuries-old flower market worth an hour.
The banquet dish is Jun'an steamed pig (均安蒸猪, Jūn'ān zhēng zhū), a whole pig salted, pricked all over, and steamed for a full table of a dozen — traditionally cooked for ancestral rites, now for anyone who books ahead. You do not stumble into it. Restaurants in Jun'an (均安) cook it to order, usually needing a day's notice and a group to finish it, though a portion sold by the plate at a larger place runs around ¥40 to ¥60.
Coming to eat
Give Shunde a full day, better a weekday, when the dessert counters are not thirty deep. From Guangzhou, take the intercity train to Shunde station or the metro to Daliang; from within Foshan, Line 3 puts you a short ride from Huagai Road. Base yourself in Daliang for the milk and the garden, then taxi or ride-hail the fifteen to twenty minutes out to Xingtan, Chencun, or Jun'an for the fish and the pig, since the best farmhouse tables sit among the ponds, not on the main streets.
Two things to plan. If you want Jun'an steamed pig, phone ahead or have your hotel call, and bring people — it is not a solo dish. And treat the raw fish as a choice rather than a dare: eat it where the room is full of locals and the fish is killed to order, or eat it cooked and lose none of the town's point, which was never spice or spectacle but the plain difficulty of cooking something fresh well.
Drafted with AI assistance · published daily · reviewed by the Welcl Buddy editorial collective on a rolling basis. Corrections welcome at designloversko@gmail.com.