Roti jala is a Malaysian lacy crepe, traditionally made by drizzling an egg-and-coconut-milk batter into a net pattern on a hot pan. Served with a gently spiced potato curry, it makes a comforting meal: the soft, delicate crepes are ideal for scooping up the thick curry. Recipes vary by region and household, so this version keeps the batter and curry straightforward while leaving room to adjust the spice.
Ingredients
- 2 cups (250 g) all-purpose flour
- 2 large eggs (about 100 g without shells), at room temperature if convenient
- 1 cup (240 ml) full-fat coconut milk, well stirred
- ¾ cup (180 ml) water, plus 1–3 tablespoons (15–45 ml) more if needed
- 1 tablespoon (15 ml) neutral oil, such as canola or sunflower oil, for the batter
- ½ teaspoon (1.5 g) ground turmeric
- ¾ teaspoon (4 g) fine salt, for the batter
- 2 tablespoons (30 ml) neutral oil, for the curry
- 1 medium yellow onion (about 150 g), finely chopped
- 3 garlic cloves (about 9 g), minced
- 1 tablespoon (15 g) finely grated fresh ginger
- 2 tablespoons (about 14 g) Malaysian meat curry powder or Malaysian curry powder
- 1 teaspoon (2 g) cumin seeds, optional
- 1½ pounds (680 g) waxy or all-purpose potatoes, peeled if desired and cut into 1-inch (2.5 cm) cubes
- 2 cups (480 ml) water
- 1 cup (240 ml) full-fat coconut milk, well stirred
- 1 teaspoon (6 g) fine salt, for the curry, plus more to taste
- 1 teaspoon (4 g) sugar, optional, to round out the curry
- 1 tablespoon (15 ml) lime juice
- ¼ cup (10 g) chopped cilantro, for serving, optional
Instructions
- Prepare the ingredients. Chop the onion, mince the garlic, grate the ginger, and cut the potatoes into evenly sized cubes. Measure the remaining curry ingredients and set them beside the stove. This preparation takes about 10 minutes; allow a few more minutes to measure and organize the batter ingredients so both parts of the meal are ready to cook.
- Mix the roti jala batter. In a large bowl, whisk the flour, turmeric, and ¾ teaspoon (4 g) salt. In another bowl, whisk the eggs, 1 cup (240 ml) coconut milk, ¾ cup (180 ml) water, and 1 tablespoon (15 ml) oil. Pour the wet mixture into the flour and whisk until smooth. The batter should be loose enough to pour in fine threads but not watery. If it falls from the whisk in a thick ribbon, whisk in water 1 tablespoon (15 ml) at a time. Strain through a fine sieve to remove lumps, then cover and leave it to rest for 15 minutes. Resting hydrates the flour and makes the batter easier to drizzle; it is not a long fermentation.
- Start the potato curry. While the batter rests, heat 2 tablespoons (30 ml) oil in a medium saucepan over medium heat. Add the onion and cumin seeds, if using, and cook for 4–5 minutes, stirring often, until the onion is soft and translucent but not deeply browned. Add the garlic and ginger and stir for about 30 seconds. Add the curry powder and stir for another 30 seconds, just until fragrant. If the pan looks dry, add a spoonful of water so the spices do not scorch.
- Simmer the potatoes. Add the potato cubes, 2 cups (480 ml) water, 1 teaspoon (6 g) salt, and the optional sugar. Bring to a gentle boil, then lower the heat, cover, and simmer for about 12 minutes. Stir in the coconut milk and simmer uncovered for 5 more minutes, or until the potatoes are tender when pierced with a knife and the sauce has thickened slightly. Avoid a hard boil after adding coconut milk, which can make the sauce look separated. Stir in the lime juice, taste, and add more salt if needed. Keep the curry warm over very low heat while you cook the crepes. The curry takes about 25 minutes of cooking in total.
- Set up the crepe pan. Give the rested batter a good stir. If it has thickened, add a little water until it flows easily through the openings in your roti jala mold or squeeze bottle. Heat a 8- or 9-inch (20–23 cm) nonstick skillet over medium-low heat. Lightly wipe the surface with oil; too much oil can make the strands slide instead of setting. Test the pan with a small drizzle: it should begin to set gently without browning immediately.
- Make the lacy crepes. Pour some batter into a roti jala mold, or use a squeeze bottle fitted with a multi-hole nozzle. Hold it a few inches above the pan and move your hand in overlapping circles and cross-lines to form a loose net. Cook for about 60–90 seconds, until the surface looks set and dry and the edges lift easily. Roti jala is usually cooked on one side; there is no need to flip it. For egg safety, USDA FSIS recommends that egg dishes reach 160°F (71°C); cook each thin crepe fully until set, and check a folded sample with a food thermometer if you are unsure.
- Fold and finish the batch. Transfer each crepe to a plate. Fold the left and right sides toward the middle, then roll it into a loose bundle, or fold it into quarters; either shape is easy to serve and scoop with. Keep finished crepes covered with a clean towel so their edges do not dry out. Repeat with the remaining batter, lightly oiling the pan only when needed. The batch generally takes about 20 minutes, depending on your pan and how quickly you can drizzle each net. Stir the curry once more and garnish with cilantro if you like.
Tips
- Choose the right curry powder. Malaysian curry powder has a particular warm, aromatic blend and is sold at many Southeast Asian groceries. If it is unavailable, use a mild Indian-style curry powder and add a pinch of ground coriander or cumin if you have it. The substitute makes a tasty curry, but its flavor will not be exactly the same. Check the label before adding extra salt, since some blends are salted.
- Adjust batter by how it flows. Flour absorbs liquid differently depending on the brand and how it was measured. The batter should pass through the mold in uninterrupted fine streams. If the lines break, thin it with a tablespoon of water; if they spread into a solid sheet, whisk in a teaspoon of flour at a time. Straining is more effective than whisking endlessly when small lumps remain.
- Keep the heat moderate. A pan that is too hot sets the batter before you can finish the net and may brown it before the top is cooked. If strands turn crisp or brown quickly, lower the heat and let the pan cool briefly. If the batter pools without setting, raise the heat a little. The first crepe is a useful test, not a reason to discard the batch.
- Cut the potatoes evenly. Similar-sized pieces become tender at roughly the same time. Waxy potatoes hold their shape especially well, while floury potatoes soften more and can thicken the sauce. If using floury potatoes, stir gently and check them early so they do not break down completely.
Serving Suggestions
Serve the roti jala warm beside a bowl of potato curry, with the folded crepes arranged so guests can pull off a portion and dip it into the sauce. A shallow serving bowl makes it easier to reach the potatoes and gravy together. The curry should be thick enough to cling to the crepe but loose enough to spoon; stir in a small splash of hot water if it has reduced too far while waiting.
For a fuller Malaysian-inspired spread, add sliced cucumber, a simple tomato salad, or lightly dressed greens to bring a cool, crisp contrast to the warm curry. Lime wedges let diners brighten their own portions. You can also offer sambal or another chili condiment on the side, rather than making the curry very hot for everyone. Roti jala is best served soon after cooking, when the fine strands are soft and flexible.
Variations
Make the curry hotter: Add one finely chopped fresh chili with the onion, or stir in chili powder with the curry powder. Start modestly, since heat varies widely between chilies and spice blends. For a milder table, keep the curry as written and serve sliced chili separately.
Use a richer or lighter sauce: The full cup of coconut milk gives the curry a smooth, rounded finish. For a less rich sauce, use ½ cup (120 ml) coconut milk and replace the rest with water or unsalted vegetable broth. The result will be thinner and less creamy, so simmer it a little longer if you want more body.
Add vegetables: Stir in 1 cup (about 150 g) green peas during the final 3–4 minutes of simmering, or add a handful of spinach after the potatoes are tender and cook just until wilted. These additions change the texture but work well with the same curry base. Avoid adding tender vegetables at the beginning, as they can become too soft.
Change the crepe flavor: A pinch of ground coriander or a little extra turmeric can be added to the batter, though turmeric is mainly there for color and a gentle earthy note. For dairy-free cooking, this recipe already uses coconut milk rather than dairy. If you need to avoid eggs, an egg-free batter is possible but behaves differently and may need a tested ratio of flour, liquid, and a starch binder; simply omitting the eggs from this recipe can make the nets fragile.
Storage and Reheating
For food safety, refrigerate the curry and crepes within 2 hours of cooking. Store them separately in airtight containers; cooked leftovers keep for 3–4 days in the refrigerator. Let the curry cool only briefly before refrigerating, and divide a large amount into shallow containers so it chills promptly. The potato curry may thicken in the fridge as the potatoes absorb liquid.
Reheat curry in a covered saucepan over medium-low heat, stirring occasionally and adding a splash of water if needed. Heat leftovers to 165°F (74°C), checked with a food thermometer. You can also microwave individual portions, stirring halfway through and checking that the center reaches 165°F (74°C). Reheat crepes in a covered skillet over low heat with a teaspoon of water beside them to create a little steam, or microwave them briefly under a damp paper towel. Avoid prolonged heating, which can dry the delicate strands. Freeze the curry for up to 2 months for best quality; potatoes may become softer after thawing. Crepes can be frozen with parchment between layers, though their lace texture may soften. Thaw overnight in the refrigerator and reheat until hot.
Frequently Asked Questions
What does roti jala mean? The name is commonly translated as “net bread” in Malay, referring to the net-like pattern made by drizzling batter onto a pan. Despite the word “bread,” it is a thin crepe rather than a loaf or flatbread made by rolling dough.
Do I need a special roti jala mold? A traditional multi-hole roti jala cup makes the signature pattern easy, but it is not essential. A squeeze bottle with several small openings works well; choose openings that let the batter flow in fine lines. A piping bag or clean food-safe bag with a tiny corner snipped can also work, although it usually makes fewer, thicker strands.
Why are my crepes tearing or sticking? The batter may be too thick, the pan may not be adequately nonstick, or the crepe may need another few seconds to set before lifting. Thin the batter a tablespoon at a time if the lines break, and use a light film of oil rather than a pool. Let the first crepe cook until its surface looks dry and its edges release; lifting too early can pull apart the net.
Can I make the batter ahead? Yes. Cover it and refrigerate it for up to 24 hours. The flour may settle and the batter may thicken, so whisk it thoroughly and loosen it with a little water before cooking. Because it contains raw eggs, keep it refrigerated while waiting and do not leave it at room temperature for more than 2 hours.
Can I prepare the curry in advance? Yes. The curry can be cooked up to 3–4 days ahead and refrigerated promptly. Its flavor remains pleasant after reheating, though the potatoes soften and the sauce thickens. Warm it gently with a splash of water, stirring without crushing the potato pieces, and reheat leftovers to 165°F (74°C).
What can I serve if I do not have coconut milk? For the curry, use unsweetened evaporated milk or a mild, unsweetened plant-based cooking cream, but expect a less distinctly coconut-forward flavor; add water to reach the desired consistency. In the crepe batter, plain milk can replace coconut milk, but the aroma and richness will be lighter. Avoid sweetened coconut beverages, which can make both parts of the meal unexpectedly sweet.
Related
- Kinpira Gobo Recipe: Japanese Burdock and Carrot
- Argentine Empanadas Recipe: Beef Filling and Flaky Crust
- Thousand Island Dressing Recipe: Creamy and Tangy
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).