Pupusas are a classic Salvadoran comfort food consisting of thick corn tortillas filled with savory ingredients and cooked on a comal (griddle) until perfectly golden. They’re traditionally served with curtido, a tangy cabbage slaw, and a mild tomato salsa.
The dough for pupusas is similar to corn tortillas but contains slightly more water, making it more pliable and easier to stuff. This Pupusa recipe features a delicious combination of Monterey Jack cheese and quick-fried beans with bacon for the filling.
Additionally, I’ve included a delicious salsa para pupusa recipe—using fresh tomatoes. Versatile and satisfying, pupusas are perfect as a side dish, lunch, or dinner.
🛒 Ingredients You’ll Need
See recipe card for quantities.
- Masa Harina: The base of the Pupusa dough, giving pupusas their signature corn flavor and soft texture. ( I used Maseca).
- Chicken Bouillon (or Salt): Enhances the flavor of the dough. I used Knorr Granulated Chicken Bouillon.
- Butter (or Oil): Adds richness and keeps the dough moist and pliable.
- Beans: Forms a creamy, hearty filling and pairs well with cheese.
-
Monterey Jack Cheese: Melts beautifully, creating a gooey, flavorful filling. It can be substituted with mozzarella cheese or queso para pupusa.💡Note: If using a block, cut up the cheese and process until the mixture resembles wet oatmeal, about 30 seconds (it will not form a cohesive mass).
- Bacon (optional): Adds a smoky, savory depth to the bean filling, making it perfect for delicious pupusas revueltas. 👉This can be substituted with 1 to 2 tablespoons of oil if preferred.
- Onions and Garlic (optional): Build layers of flavor in the bean mixture.
- Serrano Peppers: Provide a mild heat and earthy undertone to the filling or sauce.
- Canned Crushed Tomatoes: The base for the sauce, adding acidity and sweetness.
- Oregano and Bay Leaves: Infuse the sauce with aromatic depth and a hint of herbal flavor.
👩🍳 How to Make Pupusas
Note: Full instructions are provided in the recipe card below.
- Prepare Oil Mixture: Mix 2 tablespoons oil with ¼ cup water in a small bowl to prevent dough from sticking. Set aside.
- Make Pupusa Dough: Combine masa harina, chicken bouillon (or salt), warm water, and melted butter (or oil) until soft and pliable. Adjust consistency as needed. Cover and let rest for 15–20 minutes.
- Make Pupusa Filling: Cook bacon until crisp; remove and reserve. Sauté onion, then add garlic, beans, chicken bouillon, and water. Mash beans until smooth. Stir in crumbled bacon and cheese once cooled. Divide into 19 balls.
- Portion Pupusa Dough: Knead rested dough briefly, divide it into 19 pieces, and roll it into balls. Cover to prevent drying.
- Form Pupusas: Flatten the dough, add the filling, and enclose it. Flatten into ¼-inch-thick discs using your hands.
- Cook Pupusas: Heat oil in a skillet and cook pupusas until golden, about 4 minutes per side. Serve warm with salsa and curtido.
- Make Pupusa Sauce: Sauté onions and serrano pepper. Add garlic, tomatoes, sugar, salt, oregano, bay leaves, and water. Simmer for 15 to 20 minutes, then cool, remove bay leaves, and blend until smooth.
📝 Camila's Tips & Variations
- Prevent Sticking: Moisten your hands with the oil and water mixture to prevent the masa from sticking.
- Smooth Out Cracks: Use a damp fingertip to smooth out any cracks in the dough.
- Check Dough Hydration: Flatten a small piece of dough; if it cracks, add a little water.
- Cheese Substitution: Swap Monterey Jack cheese with mozzarella.
- Simplify the Bean Filling: Skip the bacon, onion, and garlic. Heat 1 tablespoon of oil, add rinsed beans and water, and follow the rest of the recipe. Alternatively, mash the beans into a chunky paste with a potato masher or fork.
- Filling Variations: Add cooked chorizo, shredded chicken, or sautéed spinach to the filling.
-
Alternative to Shaping Pupusas: Draw a 4-inch circle on one side of a 1-quart or 1-gallon zipper-lock bag. Cut along both side seams, leaving the bottom seam intact to open like a book. Place a dough ball in the marked circle inside the bag, fold the bag over, and flatten the dough to 4 inches using a dish or plate. Add the filling in the center, bring the edges of the dough around the filling to seal, and flatten it again into a 4-inch disk. Keep the dough covered while you work to prevent drying out.
- Streamline the pupusa sauce: bring the 10 Roma tomatoes to a boil in a pot with enough water to just cover them. Once boiling, cook until their skins wrinkle and split, about 1–2 minutes (be careful not to overcook, as they may become too soft). Remove the tomatoes from the pot, reserving the cooking water, and transfer them to a blender. Add chicken bouillon (or salt) and oregano to taste, and blend until smooth, leaving the lid vented for heat to escape. Return the blended mixture to the pot, stir in 1 cup of the reserved cooking water, and bring to a boil. Reduce the heat and simmer for about 10 minutes. Adjust seasoning to taste.
🫙 Storage, Make Ahead, & Freezing
- Storage: Store cooked pupusas in an airtight container in the refrigerator for up to 3 days. Reheat in a skillet or microwave until warm.
- Make Ahead: Assemble pupusas up to 24 hours in advance. Store covered in the refrigerator until ready to cook.
- Freezing: Freeze uncooked pupusas in a single layer on a parchment-lined baking sheet until solid. Then, wrap pupusas individually in plastic and transfer them to a zipper-lock bag. Freeze for up to 1 month. Cook directly from frozen, increasing cooking time by 1 minute per side.
🤔 Frequently Asked Questions
Why is my masa dough cracking when I flatten it?
The dough is likely too dry. Add water, one tablespoon at a time, kneading gently until the dough becomes pliable and smooth.
How can I prevent the filling from leaking out?
Avoid overstuffing the pupusas, and be sure to fully enclose the filling with the masa before flattening.
Why does my salsa taste bland?
Check your seasoning. Add more chicken bouillon, salt, or oregano to enhance the flavor. A splash of reserved tomato cooking water can also help balance the taste.
See More Salvadoran Recipes:
📖 Recipe
Easy Pupusas
Ingredients
For the Masa:
- 24 oz 681g / 6 cups) Masa Harina (Maseca)
- 3 teaspoons Knorr Chicken Flavor bouillon or kosher salt
- 3 tablespoon butter , melted or vegetable oil
- 3 to 4 cups hot water ( I used 4 cups)
For the Oil Mixture:
- 1 cup water
- 2 tablespoons oil
For filling:
- 1 (15 oz) can kidney beans or pinto beans, rinsed and drained
- 2 slices bacon, optional If you’re not using bacon, substitute it with 2 tablespoons of oil and heat it in a pan before continuing with the recipe.
- 1 small onion, optional , chopped fine
- 2 garlic cloves, optional , minced
- ¼ cup water
- 16 oz ( 4 cups) Monterey jack cheese or mozzarella , shredded
For the Pupusa Sauce:
- 10 Roma tomatoes , ripe without stem
- 3 garlic cloves
- 1 small yellow or white onion , cut in half
- 1 fresh serrano pepper , Adjust to your spice preference—add more for extra heat or less for mild flavor.
- 2 tablespoons oil
- 3 teaspoons kosher , adjust to taste
- ½ teaspoon ground black pepper , to taste
- 2 teaspoons dried oregano, optional
- 2 cups water , as needed to completely cover the tomatoes
Instructions
For the Pupusas:
- Prepare the Oil Mixture: In a small bowl, mix 2 tablespoons of oil with ¼ cup of water. This mixture will keep the dough from sticking to your hands and help maintain its hydration during assembly. Set aside.
- Make Dough: Combine masa harina and chicken bouillon (or salt) in a large bowl. Add warm water and melted butter (or oil) and mix until a soft, playdough-like dough forms that is released from the bowl and doesn't stick to your hands.
- If the mixture is too dry, add more warm water, one tablespoon at a time. If it's too sticky, add more masa harina, one tablespoon at a time. Cover with plastic wrap or a damp towel. Let the dough rest for 15 to 20 minutes. While the dough rests, line a rimmed baking sheet with parchment paper.
- Make Filling: Heat bacon in a 10-inch nonstick skillet over medium-low heat until fat renders and bacon crisps, 7 to 10 minutes, flipping bacon halfway through. Remove bacon and reserve. Increase heat to medium, add onion to fat in skillet, and cook until lightly browned, 5 to 7 minutes.
- Add garlic and cook until fragrant, about 30 seconds. Add rinsed beans, chicken bouillon, and water, and bring to a simmer. Cook, mashing beans with potato masher, until mixture is mostly smooth, about 5 to 7 minutes. Crumble the reserved bacon and stir it into the beans.
- Set aside to let cool completely. Once cooled, add the Monterey Jack cheese and mix well. Divide into 19 balls (about 43g / 1.5 ounces each) and place on the lined baking sheet. Cover with plastic wrap.
- Portion Dough: Knead the dough for 15–20 seconds. Test the hydration by flattening a small piece—if cracks over ¼ inch form, add warm water, 1 tablespoon at a time, until a soft dough forms.
- Transfer the dough to the counter, shape it into a large ball, and divide it into 19 equal pieces (about 83g / 3 ounces each). Moisten your hands with the water and oil mixture, roll one dough piece into a ball, and place it on the empty half of the prepared sheet. Cover with plastic wrap or a damp dish towel. Repeat with the remaining dough pieces.
- To Form the Pupusas: Rub the palms of your hands with a little of the water and oil mixture (or just oil). Using your hands, grab a ball of masa and mound it in one hand, creating a well.
- Place 1 cheese and beans ball mixture into the well, simultaneously surrounding the filling with the masa until everything is covered. Use both palms to press gently until you achieve a uniform ¼-inch-thick disc.
- Use small amounts of the water and oil mixture (or oil) as needed to assist in releasing the masa from your hands. Alternatively, you can draw a 4-inch circle on one side of a 1-quart or 1-gallon zipper-lock bag.
- Cut along both side seams, leaving the bottom seam intact to open like a book. Place a dough ball in the bag's marked circle, fold it over, and flatten it to 4 inches with a dish or plate.
- Place the filling in the center, bring the dough edges around it, and seal. Flatten again into a 4-inch disk. Remember to keep the dough covered as you work.
- Cook Pupusas: Heat 1 teaspoon of oil in a nonstick skillet over medium-high heat. Wipe out any excess oil. Cook 4 pupusas at a time until golden brown, about 4 minutes per side. Repeat with the remaining pupusas. Serve warm with salsa and curtido.
For the Pupusa Sauce:
- Place the tomatoes, onion, serrano, and 2 whole garlic cloves (with the skin on) on a baking sheet. Drizzle with olive oil and season with salt and pepper. Broil until charred in spots, about 10 minutes. Set aside to cool slightly for about 5 minutes, then squeeze the garlic out of its skin. Transfer the roasted vegetables to a blender and puree until smooth, being careful not to overfill the blender.
- Alternatively, bring a pot of water to a boil over medium heat. Add the serrano peppers and cook for 5 minutes. Add the tomatoes, 1 garlic clove, and 1 small onion, and continue cooking until the tomato skins wrinkle and split, about 1–2 minutes (be careful not to overcook, as they may become too soft). Remove from heat and allow the mixture to cool.In a blender, blend the serrano peppers, onion, cooked garlic clove, 1 raw garlic clove, and 2 cups of tomato cooking water until smooth. Add the cooked tomatoes and pulse the blender to achieve a slightly textured salsa.
- Heat 2 tablespoons of oil in a pot or saucepan over medium heat. Add 1 garlic clove and cook until lightly golden to infuse the oil. Remove the garlic, pour in the salsa, and season with oregano, black pepper, and salt. Bring to a boil, reduce the heat, and simmer, stirring occasionally, for about 15 to 20 minutes. Adjust seasoning to taste.
Notes
- Storage: Store cooked pupusas in an airtight container in the refrigerator for up to 3 days. Reheat in a skillet or microwave until warm.
- Make Ahead: Assemble pupusas up to 24 hours in advance. Store covered in the refrigerator until ready to cook.
- Freezing: Freeze uncooked pupusas in a single layer on a parchment-lined baking sheet until solid. Then, wrap pupusas individually in plastic and transfer them to a zipper-lock bag. Freeze for up to 1 month. Cook directly from frozen, increasing cooking time by 1 minute per side.
All nutritional information is based on third-party calculations and is only an estimate. Each recipe and nutritional value will vary depending on the brands you use, measuring methods, and portion sizes per household.