Roti John from Singapore: a baguette sandwich with griddled egg and spiced meat, served with chili sauce and cucumber
Prep20 min
Cook22 min
Serves4 servings
CuisineSingaporean

Roti John: Singapore's Street-Stall Egg and Meat Sandwich

How to make Roti John, the Singapore street-stall sandwich where spiced meat and egg are griddled onto bread: step-by-step method, how it is eaten locally, ingredient swaps, common mistakes, and storage.

Total: 42 minLevel: Beginner

Cooking flow

Cooking steps

STEP 11 / 5

Cook the meat mixture and drive off the moisture

8 min

Cooking ground beef and onion with curry powder, driving off moisture with a wooden spoon
Cook the meat until it is no longer watery, and the egg mixture will stick to the bread more easily

Put 1 tbsp oil in a frying pan and warm it over medium heat for 30 seconds. Add 120 g onion and cook 3 minutes; when it turns translucent and smells sweet, add the garlic, 250 g ground beef, 2 tsp curry powder, 1/3 tsp salt, and the black pepper. Break up the meat with a wooden spoon and cook 4–5 minutes until the red is gone and almost no liquid is left on the bottom of the pan. If you have a probe thermometer, aim for an internal temperature of 75°C (165°F). Turn off the heat and let it cool for 2 minutes.

STEP 22 / 5

Make the egg mixture and add the meat back

3 min

Returning the cooked spiced meat to the beaten egg and mixing with chopsticks
Returning slightly cooled meat to the egg keeps the egg from setting before you cook it

No heat is used. In a bowl, beat 4 eggs with 1/3 tsp salt and 2 tsp sambal oelek until no large lumps of white remain. Add the slightly cooled meat and mix everything together. Hot meat will set the egg in the bowl, so combine them once the steam has died down. If you want to keep the heat separate, leave the sambal out here and serve it on the side after cooking.

STEP 33 / 5

Spread the egg and lay the bread on top

4 min

Laying split bread face-down on egg and ground meat spread in a frying pan and pressing it down
Lay the bread down while the egg is still half-set, and the filling bonds to the bread

Warm the pan over medium-low heat for 1 minute and spread 2 tsp oil thinly. The guide temperature is 170–180°C: a drop of egg should sizzle softly and spread. Spread a quarter of the egg mixture into an oval the length of the bread, and immediately lay 1 split piece of bread cut-side down on top. Press down with a spatula for 20 seconds so the egg soaks into the cut surface of the bread. Move on when the edge of the egg has set and the center is still a little moist.

STEP 44 / 5

Flip and brown the bread side

4 min

Flipping the bread with egg and meat attached and browning the bread side
After flipping, don't press too hard; only crisp the surface of the bread

Slide the spatula deep under the bread, steady the end of the bread with your other hand, and flip it in one go. Use medium heat. Cook the bread side 1 minute 30 seconds until the bottom is crisp, then turn it egg-side down again and cook 1 more minute. It is ready when the egg surface has deep golden-brown spots and the edges of the bread have dried a little. If it threatens to burn, lower to medium-low.

STEP 55 / 5

Rest, cut, and add the sauces

3 min

Cutting the finished Roti John and drizzling with chili sauce and mayonnaise
Letting it rest briefly before cutting keeps the egg and meat from falling apart

A finishing step done with the heat off. Move the finished Roti John to a cutting board and let it rest 1 minute. Cut right away and the egg and meat tend to slip, so wait until the steam on the surface settles, then cut it into easy-to-eat widths. Tuck in lettuce, cucumber, and tomato, and drizzle with 1 tbsp sweet chili sauce and 1 tbsp mayonnaise. Finish the remaining 3 sandwiches the same way, repeating steps 3 to 5.

0 / 0
Ingredients

Ingredients

1 / 1

Main ingredients

Ingredient Amount Substitutes & notes
Soft baguette or slim French loaf about 36 cm Cut into 4 pieces of 18 cm. Hot-dog rolls also work
Ground beef 250 g Ground lamb or a beef-pork mix also works
Eggs 4 Medium. Use 5 if they are small
Onion 120 g Finely chopped. Red onion gives a lighter aroma
Garlic 1 clove Grated. If using the paste from a tube, 1 tsp
Curry powder 2 tsp The core of the meat's aroma. 1 tsp garam masala also works
Sambal oelek 2 tsp 2 tsp chili sauce also works
Salt 2/3 tsp 1/3 tsp for the meat, 1/3 tsp for the egg
Black pepper 1/4 tsp Coarsely ground is best
Oil 2 tbsp Rice bran oil or neutral cooking oil
Cucumber 1 Sliced thin. Pat lightly to remove moisture
Tomato 1 Sliced thin. Optional
Lettuce 4 leaves Drain very well
Mayonnaise 4 tbsp Too much hides the egg's aroma
Sweet chili sauce 4 tbsp 3 tbsp ketchup plus 1 tbsp chili sauce also works
0 / 0

The Story of Roti John: A Street-Stall Invention That Sticks Egg onto Bread

Some evenings you want something light, but a plain sandwich feels like too little. In the fridge: eggs, ground meat, an onion. There is bread, too. Frying an egg and tucking it between slices would be an ordinary deli-style sandwich. But spread egg and meat across a pan, press the split bread down on top, and suddenly it is a street-stall dish. The egg soaks into the inside of the bread, the aroma of the meat stays in the browned crust, and the moment you cut it you want chili sauce and mayonnaise on top.

Roti John is an egg sandwich loved in Singapore and across the Malay Peninsula. A local loaf or French loaf is split, and a mixture of egg, onion, ground meat, sambal, and more is griddled onto it. What sets it apart from an ordinary omelet sandwich is that the cooked egg is not tucked in afterward; the bread is laid face-down onto the half-set egg so the two become one. That single move lets the bread's white cut surface soak up the spiced meat and egg, leaving the outside crisp and the inside soft.

Singapore's National Library Board describes Roti John as a dish in which minced mutton, onion, and egg are cooked on a local loaf close to a French loaf. There are several stories of its origin. One says a Malay stall met the demand of British customers wanting a hamburger in the 1960s with bread, egg, and meat. Another says it developed for local customers at a stall in Geylang Serai. Another says a stall at Taman Serasi Hawker Centre popularized it in the 1970s. Rather than pinning it on any one of them, it makes more sense in the kitchen to see it as a dish where British-era bread eating, Malay street stalls, and the griddle culture of Indian Muslim cooks mixed together.

This article is a home version built on ingredients you can find at an ordinary supermarket while keeping the feel of a Singapore street stall. The bread is soft baguette or a slim French loaf. The meat is beef by default, though lamb or a beef-pork mix also works. Curry powder and sambal add aroma, and chili sauce, mayonnaise, and cucumber go on the side. Though it is Singaporean like Hainanese chicken rice, this is a very easygoing dish that needs only a knife and a frying pan, and works as a late-night bite or a lunch.

A note on the name

"Roti" is also used in Malay as a word for bread. "John" is often explained as having once been a generic name for Westerners. This article uses the local name, "Roti John."


Ingredients: Get the Eggs, Ground Meat, and Soft Bread Ready First

A kitchen with bread, eggs, ground beef, onion, curry powder, and sambal laid out for Roti John
Once you have eggs, ground meat, onion, and bread, you can start making Roti John

This makes 4 sandwiches of about 18 cm for 4 people. Locally, short, soft French loaves are common, so a not-too-hard baguette, a soft French loaf, or a slim hot-dog roll works well. If you use a thick-crusted, hard baguette, work about 1 tsp of water into the cut surfaces with your fingers before cooking so the egg soaks in more easily.

Ingredient decisions for a home kitchen

Ingredient in doubt Local style Realistic home choice Decision
Bread Short, soft loaf Soft baguette, hot-dog roll Choose bread that absorbs egg over a hard baguette
Meat Ground mutton or beef Ground beef, beef-pork mix Beef is easiest to handle the first time
Heat Sambal, green chilies Sambal oelek, chili sauce For children, add it afterward instead of mixing it into the egg
Aroma Onion, spices, griddle char Curry powder, garlic, strong browning Leaving out curry powder drifts toward a deli sandwich
Finishing sauces Chili sauce, tomato sauce, mayo Sweet chili, ketchup, mayo Layer sweetness, acidity, and heat a little at a time
Allergy notes

This recipe uses eggs, wheat, beef, and seasonings that may contain soy. Check the labels of the bread, mayonnaise, chili sauce, and sambal. For anyone who dislikes heat, and for children, do not mix sambal into the egg; add it at the table after cooking.

What is worth seeking out

Roti John is not a dish where you order ground meat or eggs online. What is worth looking for is what changes the outline of the flavor: spices, a chili condiment, and a pan that can cook over a wide surface.

Start with curry powder. Roti John is not a curry, but it rounds off the smell of the meat and underpins the street-stall aroma. A little goes a long way, and you can use the rest in Trinidadian doubles or any spiced stir-fry.

If you want to share the heat across a family, serve the sambal on the side. Leftovers go into a sambal substitute or chicken satay.

Roti John is less likely to fail when you can cook it over a wide surface at once. A cast-iron skillet, with the egg spread thin, sticks to the bread more neatly than layering egg in a small frying pan.


Method: Let the Bread Soak Up the Egg, Then Flip

Roti John is more reliable at home if you cook the meat first and then return it to the egg. Some stalls mix raw ground meat into the egg and cook it all at once, but with home heat, the egg tends to set first and the meat cooks unevenly. Cook the meat first, return it to the egg, spread thin on the griddle, and press the bread down. In that order, heat reaches the center and flavor goes into the cut surface of the bread.

If your pan is small

You don't have to stick with 18 cm bread from the start. Cutting it to about 12 cm makes it easier to flip. The thinner you spread the egg, the better it sticks. Pour it thick and the omelet sets first and tends to peel off the bread.


Keeping the Local Character: What to Keep and What to Swap

Roti John arranged on a plate with chili sauce, mayonnaise, cucumber, and tea on the table
With sauce and vegetables on the side, everyone can adjust the heat and richness at the table

The most important thing in making Roti John is the structure of "egg and meat stuck onto the bread." A sandwich with meat tucked in, or a fried egg tucked in, is also delicious, but it is a different sandwich. The charm of the dish lies in the egg soaking into the cut face of the bread and the browned crust acting like glue.

The kind of meat, on the other hand, is quite flexible. The NLB description gives minced mutton as the base, but modern recipes range through beef, chicken, sardines, and versions with cheese. For a home kitchen, start with ground beef; it balances aroma and doneness. If you like lamb, replace half of the beef with lamb and you move quickly toward the street-stall aroma.

There is no single right sauce either. Sweet tomato sauce, chili sauce, mayonnaise, green chili. At Singapore stalls, sauces are often served alongside the cut Roti John so diners can add heat. At home, a practical split is ketchup and mayo for children, and sweet chili and sambal for adults.

At the same Singapore table, if you want a sour-hot fish dish that goes with rice instead of bread, assam pedas, simmered with tamarind, is a candidate. If Roti John is an egg-and-bread street-stall dish, assam pedas is a more settled home dish, with red broth spooned over white rice.

As a menu item, make it the main of a lunch or late-night meal without the heavy main-dish weight of Hainanese chicken rice. To widen it into a Southeast Asian table, set the curry of roti canai, the sambal of nasi lemak, and the pickled-vegetable feel of banh mi alongside, and the differences among bread dishes become visible.


What Goes Wrong: Fixing Peeling, Sogginess, and Heaviness

A kitchen comparing a Roti John whose egg peeled off with one where it stuck neatly
Most failures come from the thickness of the egg, moisture in the meat, and the timing of the flip
Problem Cause Fix
Egg and meat peel off the bread The egg had set too much before the bread went on Lay the bread down while the center of the egg is still moist
The cut face is soggy Moisture remained in the meat mixture Cook the meat over medium heat and drive off the liquid on the bottom before returning it to the egg
The bread burns The heat is too high, or a sugary sauce was brushed on first Cook the bread side briefly over medium heat and add sauces at the end
The flavor is muddy Bread and egg dilute the salt Season both the meat and the egg
It feels heavy Too much mayonnaise or cheese Add more cucumber, tomato, and lettuce, and drizzle the sauces thinly

The bread you choose also changes the outcome. Hard baguettes smell wonderful but resist the egg and take more chewing. For the first time, choose bread that is "crisp on the surface when toasted but soft inside." If you use hot-dog rolls, very sweet ones read as a deli bun, so adding a little more chili sauce tightens the flavor.

If you worry about whether the meat is cooked through, cook it thoroughly in step 1. Trying to cook the meat by griddling it for a long time after mixing it with the egg makes the egg tough and dries the bread. In the home version, it is steadier to think of it as: cook the meat safely first, and cook the egg to stick it on.


Storage and Reheating: Wrap It Uncut Overnight

A kitchen with leftover Roti John wrapped in paper, ready to reheat in a frying pan
To store it, keep the sauce and vegetables separate and wrap only the bread and egg-meat so it reheats easily

It is best fresh, but if you make it ahead, keep the sauces and raw vegetables separate. Let just the bread and egg-meat cool slightly, wrap each piece in plastic wrap, and refrigerate. Eat by the next day. Left longer, the bread turns damp and the onion smell grows stronger.

For reheating, don't stop at the microwave; the texture comes back better if you don't. Microwave the refrigerated Roti John for 30 seconds at 600 W, preheat a pan over medium-low heat for 1 minute, and cook the bread side 1 minute and the egg side 30 seconds. It scorches easily, so add the sauces after reheating.

For a lunch box, put the mayonnaise and chili sauce in a separate container. Left too long with lettuce or cucumber tucked inside, moisture moves into the bread. If you carry it, cool only the cooked bread and egg-meat, wrap them, and pack the vegetables separately for safety.


FAQ

Can I make it with ground lamb?

Yes. If you like the aroma of lamb, it is a good choice. For the first time, replace half: 125 g ground beef and 125 g ground lamb makes the aroma less strong and easier to eat. If you make it with lamb only, reduce the curry powder to 1 1/2 tsp and add a little more black pepper to pull it together.

Can I mix raw ground meat into the egg and cook it?

You will see that method on local griddles, but for home I recommend cooking the meat first. If the pan area and heat are not enough, only the egg sets and the meat cooks late. Cook the meat first and let the egg's job be to stick to the bread, and failures drop.

Can I make it without curry powder?

You can, but the flavor drifts toward an ordinary egg sandwich. If you have no curry powder, 1/2 tsp cumin, 1/2 tsp coriander, and a little turmeric can stand in. On a day with none of them, use more black pepper and make up the aroma with sambal or chili sauce.

When do I add cheese?

Before drizzling the sauces in step 5, add a small amount of sliced or shredded cheese. If you want to melt it in the pan, at the end of step 4 turn the egg side up, lay the cheese on top, cover, and warm over low heat for 30–40 seconds. Too much makes it heavy, so about 20 g per sandwich is manageable.

What do I serve with it to make a meal?

For a light lunch, cucumber, tomato, and unsweetened milk tea are enough. For dinner, a sour salad or soup keeps it from feeling heavy better than a fried dish such as lumpia Shanghai. To add heat, put sambal in small dishes so each person can adjust.


Sources