Peninsular Malaysia — the mamak stalls of Penang, Kuala Lumpur and the Klang Valley, with the same bread sold across the causeway in Singapore as roti prata · Malaysian
Roti Canai (Malaysian Mamak Flatbread with Kuah Dhal)
The flaky, layered flatbread of Malaysia's mamak stalls: a soft enriched dough rested overnight, stretched translucent and coiled, griddled in ghee until it shatters, then clapped between the palms to open its layers — served with a thin, fragrant kuah dhal.
Published September 11, 2026
Cultural context
Roti canai is the Malaysian descendant of the South Indian parotta, carried to British Malaya by Tamil Muslim migrants from the Coromandel coast in the late nineteenth and early twentieth centuries. It took root in the mamak — Indian Muslim — coffee shops and hawker stalls of Penang and Singapore, and by the 1920s was sold the length of the peninsula. It is not a single-nation dish: Singapore knows the identical bread as roti prata, and its ancestor is still cooked daily in Tamil Nadu and Kerala as parotta. Even the name is contested, read variously as a nod to Chennai (then Madras), the port most of those migrants sailed from, and as the Malay verb canai, to roll or knead something thin.
Roti canai is what a Malaysian night sounds like: the slap of dough hitting a steel bench, the ring of a spatula on a griddle, and then the double clap of two palms crushing a hot bread into a heap of flaky leaves. It is sold at mamak stalls — the open-fronted, fan-cooled, frequently twenty-four-hour coffee shops run by Indian Muslim Malaysians — and it is eaten at breakfast, at supper, and at two in the morning after everything else has closed. One ringgit or so, torn by hand, dipped in thin dhal.
The bread arrived with people. Through the late nineteenth and early twentieth centuries, Tamil Muslim traders and labourers came to British Malaya from the Coromandel coast, and they brought with them the layered, ghee-laminated parotta of Tamil Nadu and Kerala. In the coffee shops of Penang and Singapore it picked up local habits — a slug of condensed milk in the dough, a thinner and gentler dhal, a faster flip — until it had become something that was no longer quite Indian. By the 1920s it was on stall griddles the length of the peninsula.
It is not one country’s dish, and the honest version of the story says so. Cross the Johor Strait and the same bread is roti prata, a name taken straight from paratha; its ancestor is still cooked every morning in Tamil Nadu; and the origin of the word canai itself is unsettled, read by some as a memory of Chennai, the port most of those migrants sailed from, and by others as the plain Malay verb meaning to roll something out thin. All three readings are plausible. None of them is a border.
The recipe is mostly waiting
There are only two things that make roti canai difficult, and neither is the flip.
Rest the dough properly, or don’t bother
The dough is simple — flour, salt, water, condensed milk, an egg, ghee — and the kneading is ordinary. What is not ordinary is the rest. The portioned balls go into a bath of oil, covered, and sit for at least six hours, ideally overnight. During that time the gluten network that kneading built relaxes completely, which is the only reason a 110 g lump can later be pushed out into a sheet half a metre across without snapping back or tearing. The oil keeps the surface from drying into a skin while it happens.
Home cooks routinely cut this to an hour, then conclude they can’t stretch dough. They can. Their dough just wasn’t ready.
Lamination is folding, not skill
Once the sheet is thin enough to read a newspaper through, brush it with melted ghee, fold the long edges in, and coil the resulting band into a loose spiral like a snail shell. That is the whole trick. You have just stacked dozens of dough layers with a film of fat between each one, and when the coil hits a medium-hot griddle the water inside turns to steam and forces those layers apart — puff pastry’s physics, compressed into ninety seconds.
Coil it loosely. A tight spiral has nowhere to expand and cooks into a dense knot. Rest the coils fifteen minutes before you flatten them, and press from the middle outward so the spiral edges stay intact.
About the flip
The theatrical overhead spin you have seen on a stall griddle is a fast way to thin a lot of dough when you are making four hundred a night. It is not required, and attempting it on a well-rested dough over a kitchen floor is how people end up with dough on the ceiling. Press the sheet out with oiled palms instead; it is slower, more controllable, and produces exactly the same bread.
Medium heat, then the clap
Two mistakes end an otherwise good roti. The first is a griddle set too high: the surface colours and sets before the interior steam has done its work, and you get a browned, solid disc. Medium heat and roughly ninety seconds a side gives the layers time to open. The second is skipping the clap. Straight off the heat, hold the roti at both edges and concertina it between your palms two or three times. This is kepuk, and it shears the still-soft inner layers apart from one another. It is the difference between a flatbread and roti canai.
Serve it within five minutes, torn by hand, with the thin fennel-scented dhal alongside — or, at a stall, with kuah campur: dhal and curry and sambal all poured onto the same plate at once.
If you want the bread’s South Indian ancestor, cook a Malabar parotta and taste the family resemblance. For the plate roti canai shares a griddle with most mornings, make nasi lemak — and the Southeast Asian cooking guide maps the wider table.
Ingredients
For the dough
- 500 g (4 cups) plain (all-purpose) flour Ordinary mid-protein plain flour is what mamak stalls use. Bread flour makes a dough that fights back when you stretch it; cake flour tears. If your plain flour is very soft, swap 100 g of it for bread flour.
- 1 tsp fine salt
- 60 ml (1/4 cup) sweetened condensed milk The distinctly Malaysian addition, and not interchangeable with plain milk — its sugar and milk solids are what let the roti brown to a freckled gold in the short time it spends on the griddle. Substitute 60 ml whole milk plus 2 tbsp sugar if you must.
- 1 egg, lightly beaten Optional but common at stalls. It gives a slightly richer, more tender crumb; leave it out for a leaner, crisper roti and add 2 tbsp more water.
- 240–270 ml (1–1 1/8 cups) warm water Hold back the last 30 ml and add it only if the dough feels tight. Flour absorbency varies more than recipes admit.
- 40 g (3 tbsp) ghee or unsalted butter, softened Ghee is traditional and its higher smoke point matters later at the griddle. Malaysian stalls often use margarine or a vegetable ghee (planta) — cheaper, and the flavour many Malaysians actually associate with the dish.
For coating and stretching
- 120 ml (1/2 cup) neutral oil, plus more for the worktop Sunflower, rice bran or any flavourless oil. This is not frying oil — it is a coating, and nearly all of it stays on the dough or the bench.
- 60 g (4 tbsp) ghee, melted, for brushing and griddling
For the kuah dhal (to serve)
- 200 g (1 cup) yellow split peas or toor dal, rinsed Mamak dhal is traditionally made with split peas (kacang dhal), which hold a little more body than toor dal. Either works; split peas need about 10 minutes longer.
- 1 litre (4 cups) water, plus more as needed
- 1/2 tsp ground turmeric
- 3 tbsp ghee or oil
- 1 tsp brown mustard seeds
- 1 tsp cumin seeds
- 1/2 tsp fennel seeds Fennel is the quiet marker of mamak cooking — it is what makes a Malaysian dhal taste different from a North Indian one. Do not skip it.
- 1 sprig curry leaves
- 2 dried red chillies, broken
- 1 onion, finely sliced
- 3 cloves garlic, sliced
- 2 tsp mild curry powder (a Malaysian 'kari ikan' or meat curry powder)
- 1 tomato, chopped
- 1 small potato and 1 small carrot, diced (optional) Stall dhal almost always carries a few soft vegetable cubes. They are there to make the gravy go further and to give something to catch on the bread.
- 1 1/4 tsp salt, or to taste
Method
Tap a step’s number to check it off as you go.
-
Whisk the flour and salt in a large bowl. Stir the condensed milk and egg into 240 ml of the warm water, pour it into the flour, and bring it together into a shaggy mass. Let it sit, covered, for 15 minutes before you knead.
Why: This short unworked rest is an autolyse: the flour hydrates fully and gluten begins forming on its own, so the kneading that follows takes half as long and the dough ends up more extensible. Roti canai lives or dies on extensibility — a dough that will not stretch thin cannot laminate.
-
Knead for 8–10 minutes, adding the remaining water only if the dough is stiff. Then work in the softened ghee a little at a time and knead another 4–5 minutes, until the dough is smooth, glossy, elastic and no longer sticky. It should stretch to a translucent window without tearing.
Why: The fat goes in after the gluten is built, not before. Added at the start it coats the flour proteins and blocks them from linking up, giving a short, crumbly dough. Added late it lubricates an already-strong network, which is exactly what you want for a bread you intend to pull to tissue thinness.
-
Divide into 8 pieces of about 110 g. Roll each into a tight ball, seam underneath. Put them in a wide dish or tray, pour over the neutral oil so each ball is fully submerged or at least thoroughly coated, cover, and rest at room temperature for at least 6 hours — overnight, or up to 24 hours in the fridge, is better.
Why: This is the single most important step and the one home cooks shorten. The long rest lets the gluten relax completely so the dough stops springing back, and the oil bath keeps the surface from drying into a skin while it does. A ball rested one hour will tear the moment you stretch it; a ball rested overnight will pull to the size of a tablecloth. If the dough went into the fridge, bring it back to room temperature for an hour before shaping.
-
Make the dhal while the dough rests. Simmer the split peas with the water and turmeric, part-covered, for 40–50 minutes, until completely soft and starting to break down. Add the diced potato and carrot for the last 15 minutes. Top up with hot water if it gets thick — you are after a pourable gravy, not a purée.
Why: Kuah dhal is deliberately thin. It has to run into the folds of a torn piece of roti rather than sit on top of it, which is why mamak dhal looks watery beside an Indian dal and is meant to.
-
Heat the 3 tbsp ghee in a pan. Add the mustard seeds and let them pop, then the cumin, fennel, curry leaves and dried chillies — 20 seconds, until fragrant. Add the onion and garlic and fry until soft and pale gold, stir in the curry powder for 30 seconds, then the tomato, and cook until it collapses.
Why: The whole spices go into hot fat first because their aromatics are fat-soluble and are released by heat, not by water. Ground curry powder goes in later and only briefly — it scorches in seconds and turns bitter, and its job here is perfume, not body.
-
Tip the tempering into the dhal, add the salt, and simmer 10 minutes more. Taste: it should be gently spiced, savoury and loose. Keep warm.
Why: Ten minutes of simmering together is what turns two separate things — cooked pulses and a fried tempering — into one gravy. Poured over at the last second, the tempering tastes like a garnish sitting on the surface.
-
Oil a large smooth worktop generously — a stainless bench, a marble slab or a big oiled baking tray. Take one ball and press it out with oiled palms into a rough 15 cm disc, then keep pressing and pushing outward from the centre until it is a very thin sheet, 40–50 cm across, so thin you can see the worktop through it. Small holes at the edges are fine and expected.
Why: Oil, not flour, is the release agent. Flour would be absorbed into the dough and dry it out; the oil film lets you push the sheet outward indefinitely and is also the fat that will separate the layers later. Push from the centre outward rather than pulling from the edge — pulling is what tears it.
-
Brush the sheet with melted ghee. Fold the near and far edges in to make a long band about 12 cm deep, then roll or coil that band up loosely into a spiral like a snail shell, tucking the end underneath. Set aside and repeat. Rest the coils 15–20 minutes.
Why: This is lamination by hand. The coil traps dozens of ghee-separated sheets in a spiral, and in the pan the water in the dough turns to steam and forces those sheets apart — the same physics as puff pastry, done in thirty seconds instead of a day. Coil loosely: a tight spiral cannot expand and bakes into a dense knot. The second rest lets the newly stressed gluten relax so the coil flattens without fighting.
-
Heat a heavy flat pan, tawa or cast-iron griddle over medium heat — not high. Flatten one coil with your palm, then press it out to a 20 cm round, working from the middle so you do not crush the spiral edges.
Why: Medium heat, counter-intuitively, is right. Too hot and the outside sets and colours before the interior steam has had time to push the layers apart, so you get a browned but solid bread. You want about 90 seconds a side, not 30.
-
Griddle the roti dry for about a minute, until it puffs in patches and the underside is freckled, then flip. Add a teaspoon of ghee around the edge, flip once more, add a little more ghee, and cook until both sides are mottled deep gold and the bread feels light. Total 3–4 minutes.
Why: Starting dry sets the surface so the roti does not absorb ghee like a sponge; the ghee goes on once the structure is already forming, where it fries the outside crisp instead of soaking through. This is a griddled bread, not a fried one — it should be greaseless enough to hold in your fingers.
-
Take the roti straight off the heat, hold it at both edges and clap your palms inward two or three times, concertina-ing it against itself. Then shake it out.
Why: This is the mamak flourish — kepuk — and it is functional, not theatrical. The clap cracks the crisp shell and shears the still-soft internal layers apart from each other, turning a flat disc into a mass of loose, feathery leaves. A roti canai that has not been clapped is a perfectly good flatbread and not really roti canai. Do it while it is hot; a cooled roti just breaks.
-
Serve immediately, torn by hand, with a bowl of the kuah dhal for dipping.
Why: Roti canai has a working life of about five minutes. The layers that steam opened will reabsorb their own moisture and soften as it cools, which is why stalls cook to order and nobody stacks them.
A quick, anonymous tap — no review needed.
Variations
- Roti telur (egg roti)
Stretch and coil as usual, flatten the coil, then crack an egg onto the griddled first side, spread it thin, season with salt and pepper and fold the roti's edges over it into a square parcel before finishing both sides. The most-ordered variant at any mamak, and the one that turns a bread into a meal.
- Roti bawang (onion roti)
Scatter a generous handful of very finely chopped onion (and, if you like, green chilli) over the stretched sheet before you fold and coil it. The onion sweetens and half-fries inside the layers.
- Roti tisu
The showpiece: the sheet is stretched even thinner, dusted with sugar and dotted with ghee, griddled flat until brittle, then rolled into a metre-tall crisp cone. Requires a bigger griddle than most home kitchens have, but a flat, sugared, cracker-thin version on a large pan is achievable and delicious.
- Roti planta
Margarine and sugar spread over the sheet before coiling, so the roti comes off sweet and caramelised at the edges. Named for the Planta brand of vegetable margarine and unapologetically a children's order.
- Vegan
Leave out the egg and add 2 tbsp more water; swap the condensed milk for a sweetened condensed oat or coconut milk, and use a neutral oil or vegan block in place of ghee throughout, including in the dhal. The flavour shifts — ghee is a real part of the taste — but the lamination is unaffected.
- Roti canai banjir
'Flooded roti' — the bread is left whole on the plate and drowned in a mix of dhal, fish curry and sambal (kuah campur) rather than served with the gravy alongside. Eat it fast.
Serving & Storage
Serve hot off the griddle, torn with the fingers of the right hand and dipped. At a mamak stall you would be asked which gravy you want, and the correct answer is kuah campur — a pour of dhal, a pour of fish or chicken curry, and a spoon of sambal, all on the same plate. A glass of teh tarik is not optional. Roti canai is eaten at breakfast, at supper and at two in the morning, and rarely at lunch.
Pairs with: Teh tarik (pulled milk tea), Kopi O, Kari ayam (Malaysian chicken curry), Beef rendang, Sambal ikan bilis, Fresh lime juice.
Storage: The dough is the make-ahead component: oil-coated balls keep 24 hours at room temperature or 3 days refrigerated, and improve for the first day. They also freeze well for 2 months — thaw overnight in the fridge, then 2 hours at room temperature before stretching. Stretched and coiled roti can be frozen raw between sheets of greaseproof paper and griddled from frozen over medium-low heat. Cooked roti does not keep in any meaningful sense; a reheat on a dry pan for a minute a side, followed by the clap, recovers perhaps three-quarters of it. The kuah dhal keeps 4 days refrigerated and improves overnight — loosen with hot water when you reheat, as it thickens in the fridge.
Nutrition
Per serving (2 roti with a ladle of kuah dhal)
- Calories
- 690
- Protein
- 19 g
- Carbs
- 94 g
- Fat
- 26 g
- Fiber
- 9 g
- Sugar
- 11 g
- Sodium
- 890 mg
Notable micronutrients: Iron, Folate, Thiamine, Magnesium, Selenium, Vitamin A
Estimated using standard ingredient data. Values vary with brands and substitutions.
Frequently Asked Questions
Why does my dough tear when I try to stretch it?
Almost always because it has not rested long enough. Gluten needs hours — not minutes — to relax to the point where it will thin out instead of snapping back, and six hours is the realistic floor with overnight being noticeably better. The other two causes are underkneading, which means there is not enough gluten network to carry the stretch, and using bread flour, which builds a network too strong and springy for this particular job. If a sheet tears mid-stretch, do not panic: patch it by folding that section under, or simply accept the hole. Holes disappear inside the coil.
Is roti canai the same as roti prata?
Essentially yes — the same bread, made the same way, under two names on either side of the Johor Strait. Malaysia calls it roti canai; Singapore calls it roti prata, from the Indian paratha. Enthusiasts on both sides will tell you the textures differ, with Malaysian roti tending softer and fluffier inside and Singaporean prata a little denser and chewier, and there is something to that as a generalisation about house styles. But it is one dish with two histories running in parallel, and both descend from the parotta of Tamil Nadu and Kerala.
Can I make roti canai without a huge worktop?
Yes. Use a large oiled baking sheet turned upside down, or an oiled silicone mat, and stretch a smaller ball — 80 g rather than 110 g — to whatever size the surface allows. You lose some layers, since fewer folds go into the coil, but the method is identical. What you cannot do is roll it with a rolling pin: a pin compresses the sheet and presses the ghee into the dough instead of leaving it as a separating film between layers.
What is the clapping at the end actually for?
It is called kepuk, and it separates the layers. Inside a just-cooked roti the leaves of dough are still soft and lightly stuck to one another; clapping the hot bread between your palms shears them apart so the roti opens into loose, flaky sheets rather than staying a compact disc. It is the last real step of the recipe, not a piece of showmanship — though at a stall it is both.
Why condensed milk in a flatbread?
It is the Malaysian fingerprint on an Indian bread. Condensed milk was cheap, shelf-stable and everywhere in colonial Malaya — the same tin that sweetens teh tarik — and its sugars and milk solids brown fast under a griddle, giving roti canai the freckled golden surface and faint sweetness that distinguish it from a plain South Indian parotta. Plenty of stalls use only flour, water, salt and fat; the version with condensed milk is the one most people now recognise.
Can I use a stand mixer?
Yes, and it makes the enriched dough considerably easier. Use the dough hook on low-medium for 6 minutes, add the softened ghee in three additions, then run another 4 minutes until the dough clears the bowl and passes a windowpane test. Finish with a minute by hand to feel whether it is right — the dough should be soft and satiny, closer to a brioche than a bread dough.
What to drink with this
All drinks →Hand-picked pours to match this dish. Alcoholic pairings are for adults of legal drinking age (21+ in the US) — please drink responsibly.
21+ Kuala Lumpur, Malaysia · Malaysian
Jungle Bird (Dark Rum, Campari & Pineapple)
The tiki drink with a bitter backbone: dark rum and Campari shaken with fresh pineapple and lime. Tropical and lush but grown-up and dry — the 1970s Malaysian classic that bridges tiki and the aperitivo world.
21+ Singapore (the Raffles Hotel Long Bar) · Singaporean
Singapore Sling (The Raffles Hotel Classic)
The tropical gin classic born at Raffles Hotel: gin, cherry liqueur, Bénédictine, citrus and pineapple, shaken into a frothy, ruby long drink. The full original build, not the sugary shortcut.
Thailand (street and market drink) · Thai
Thai Iced Tea (Cha Yen)
The bright-orange, creamy-sweet Thai street drink: strong spiced black tea sweetened with condensed milk and poured over ice with a float of cream. How to brew it strong and why it's so orange.
From our kitchen community
Ratings & Reviews
My Rating
Tap a star to rate — no sign-in, no form needed.
My Review
0 Ratings
🥣 0 home cooks made it!
Be the first to rate Roti Canai (Malaysian Mamak Flatbread with Kuah Dhal).
Further reading
- Cultural Story · Southeast AsiaA Cook's Map of Southeast AsiaSoutheast Asia isn't one cuisine but a dozen, bound loosely by rice, fish sauce, fresh herbs, and the pounded paste. A guide to how Thai, Vietnamese, Indonesian, Filipino, Malaysian, and Singaporean cooking differ, what they share, and where to start cooking.
- Cultural Story · InternationalWorld Classics: A Cook's Tour Beyond IndiaTable & Traditions is India-first, but the world has a place at this table too. A guide to our curated international slice — the European, East Asian, Southeast Asian, Middle Eastern and North African, and American dishes worth cooking, and where to begin with each.