You lay a crepe flat on your palm. It is so thin the light comes through it, white or pale pandan green. You set a loose tuft of sugar threads across the middle, roll it up and tuck in both ends. The first bite is soft and faintly chewy, and then the sugar inside dissolves on your tongue almost before you notice it. That is roti sai mai, the sweet that people carry home from Ayutthaya, the old capital north of Bangkok. It has two parts, a plain crepe and fine strands of cooked sugar. The fun lies in rolling them together yourself just before you eat.
From Ayutthaya's Stalls: Crepes, Threads and a Legend
The name joins two words. Roti links the crepe to the roti flatbreads of the Indian subcontinent, and the dish is widely described as a Thai sweet shaped by Indian influence. Sai mai is the second element, the thread-like sugar that fills the crepe. The two parts are rolled together only just before eating, so the threads stay dry until then.
Where it began is not settled. A legend in Ayutthaya credits a Muslim cook known as Bang Pia (Salem Saenarun) with creating it, about sixty years ago as the story goes. What is documented is the place it is sold. The main cluster of shops sits in Ayutthaya's Muslim quarter, in front of the hospital, and by 2012 those shops had been gathering there for about twenty years. That date tells you when the trade settled in that street, not when the sweet was born.
How it is made and eaten there
Shop production runs in five stages: spreading the crepe batter, dotting it, preparing a starter for the sugar, cooking the sugar down and pulling the threads. The traditional crepe is just wheat flour, salt and water, cooked into small, thin rounds. The stall crepe tastes lightly of flour and egg, and its colours vary. The oldest look is a white crepe with light brown threads. Today you also see green pandan crepes and pink strawberry ones, and banana-flavoured versions too.
You eat it by spreading a crepe over a pinch of threads and wrapping it, Thai-style, much like a popiah skin: roll it and fold in both ends. A set feeds a small group. A 30-baht set has held about ten crepes, with bigger sets at 50 and 100 baht, though prices move over time. The sweet also turns up in Bangkok. Traditional roti sai mai has to be eaten within a few days, which is a large part of why it stays hard to find outside Ayutthaya.
The crepe is moist and the cotton candy is sugar. Put them together and the moisture melts the threads, so the roll is made just before eating.
The threads at home
The shop threads are skilled work. Sugar is cooked down over the heat, the pot is set into a larger pot of cold water to cool a little, and the sugar is poured onto an aluminium tray and pulled again and again until it turns to fine strands. At home, plain store-bought cotton candy takes its place. The texture comes close and the melt on the tongue is the same.
Cooked-down sugar is far hotter than boiling water and sticks to skin, so it burns deeply. Pulling sugar threads by hand is not a home project. Use cotton candy.
To see the rest of the country's cooking, browse Thai recipes.
Ingredients

The water goes in by consistency, not by volume. You want a batter that pours off the whisk in a thin, continuous ribbon. Stop adding water as soon as you see that.
The crepe contains wheat. Check the labels on the sweet rice flour, vanilla extract, pandan extract and cotton candy, since ingredients and processing differ by product. The batter itself contains no egg or dairy.
Equipment
- Small nonstick frying pan, about 8 inches (20 cm)
- Mixing bowl and a second small bowl
- Whisk
- Measuring cups and spoons
- Tablespoon or small ladle for the batter
- Thin spatula
- Cooling rack
- Board for rolling
Buying and Substituting
Sweet rice flour is in most Asian grocers and many supermarkets, sold as glutinous rice flour or mochiko. Buy the fine powder. Regular rice flour, potato starch and coarse shiratamako-style granules all behave differently. The sweet rice flour gives the crepe its gentle stretch, so it is the one ingredient to hunt down.
Pandan extract usually means an Asian grocer or an online order. It gives the green crepes their colour and their grassy, vanilla-like scent. Without it you make white crepes only. They taste just as good, but the plate loses its two colours.
For the flour, all-purpose or a soft cake flour both work. Vanilla is part of this batter, though the traditional stall crepe has none, so leave it out if you want the plain, old-style taste. For the cotton candy, choose plain, uncoloured or pale cotton candy so the delicate sugar taste stays in front. White or pale tan matches the oldest Ayutthaya look, and pale pink is another option.
Method: Thin Crepes, Then a Last-Minute Roll
The work runs in one line at the stove. Make the batter, cook the white crepes until half the batter is gone, tint the rest green and finish. The only waiting comes at the end, while the crepes cool. Leave the cotton candy in its bag until then.
When It Goes Wrong
| What you see | Why | What to do |
|---|---|---|
| The cotton candy shrinks into a sticky line | The crepe's moisture melts the sugar threads | Roll each crepe just before eating, and only after the crepes have cooled |
| The crepe tears when you lift it | The rim had not yet pulled away from the pan | Wait until the edges pull away on their own, then slide the spatula under |
| The crepe is thick and heavy | It was not spread thin enough | Stay at 2–3 tbsp and tilt the pan quickly so the batter runs into a very thin round |
| Small lumps in the crepe | Too much water went in before the paste was smooth | Whisk harder, and next time get the thick paste lump-free first |
| Yesterday's crepes have turned | The crepe is moist and spoils quickly | Cook only what you will eat the same day |
Serving, Variations and Keeping

At the table
Roti sai mai is a sweet for sharing. Set out the stacks of white and green crepes with the cotton candy in a bowl, and let everyone roll their own, the way a stall set is eaten. A plate disappears fast between a few people.
Variations
- All white. Skip the pandan extract and cook the whole batter white. The taste stays the same and the plate becomes one colour.
- Old Ayutthaya style. Leave out the vanilla and use white or pale tan cotton candy. The crepe tastes plainer and the colours match the oldest look.
- Pink threads. Pale pink cotton candy against white and green crepes makes a different colour combination. The sugar taste stays the same.
- Stall flavours. In Ayutthaya you also find pink strawberry and banana-flavoured crepes. At home, the white and pandan batters in this recipe are the reliable pair.
Keeping
Eat the crepes the same day you cook them. The crepe holds a lot of water. Even in a shop it is no longer fit to eat by the third day at room temperature. Whether the crepes keep in the refrigerator or freezer has not been verified, so eat them the same day. Keep the cotton candy sealed in its bag and away from the crepes until the moment you roll.
Frequently asked questions
Is it still roti sai mai if I use cotton candy?
Yes. Plain cotton candy gives the same fine strands and the same melt as stall threads, and it is how roti sai mai is made in a home kitchen. Keep it pale and plain so the crepe and sugar stay the focus.
Do I need oil in the pan?
No. The recipe uses no oil, only a nonstick pan. The batter goes straight into the preheated pan, and the crepe lets go once its edges lift.
Why does my crepe taste plainer than the one from Ayutthaya?
Stall crepes have a light egg flavour, and this batter has no egg. Its flavour comes from the two flours, a little sugar and the vanilla, and that gives a cleaner, milder crepe.
How much cotton candy goes in each crepe?
A small tuft, laid across the middle without packing it down. It should sit loose enough to fold the ends over easily. Spread the cotton candy across all the crepes in the batch.













