
Pupusas are a heartwarming dish that transforms just a few simple ingredients into a comforting classic, perfect for gathering family together around the table. Filled with creamy refried beans and gooey cheese, then served with bright curtido, these Salvadoran street food favorites bring a burst of flavor and nostalgia to any meal.
I first learned to make pupusas after tasting them at a local food festival. Now they are my go-to for cozy weekends and any potluck request.
Ingredients
- Masa harina: This corn flour gives pupusas their signature tender bite Choose a fine grind for smooth dough
- Salt: Enhances both the dough and filling Taste your salt before adding it to control seasoning
- Warm water: Brings the dough together The right temperature creates an easy to work texture
- Avocado oil or oil of choice: Aids in crisping the exterior Choose a neutral oil with a high smoke point for best result
- Refried beans: Lends rich earthy flavor Use a quality canned version or homemade beans for best taste
- Chicken seasoning: Gives the filling a savory boost Opt for Goya or your favorite Latin brand
- Mozzarella cheese: Blends beautifully and melts into the filling Freshly grated cheese will melt more evenly
- Cabbage: Adds crunch to the curtido Look for tight heavy heads with crisp leaves
- Carrot: Provides sweet balance in the curtido Shred fresh for best texture
- Onion: Brings bite and aroma Thinly sliced for even pickling
- White or apple cider vinegar: Brightens the curtido and adds tang Choose a good quality vinegar for pure flavor
- Boiling water: Softens the cabbage helps the flavors mingle Reserve after cooking for the best texture
Step-by-Step Instructions
- Make the Curtido:
- Boil a large pot of water Use enough so the cabbage can move around easily Add half a head of sliced green cabbage and let it boil for a few minutes until the leaves have softened but are not mushy Reserve half a cup of this hot water for the next step then drain the cabbage thoroughly
- Marinate the Vegetables:
- In a large bowl combine the drained cabbage with thinly sliced carrot and onion Sprinkle with salt Add the white vinegar or apple cider vinegar and pour over the reserved hot water This mixture should look glossy and slightly wilted Let it sit at room temperature to develop flavor while you work on the dough and filling
- Prepare the Filling:
- Mix refried beans with the packet of chicken seasoning in a medium bowl Stir in shredded mozzarella cheese Use a fork or spoon to blend until you have a creamy smooth spreadable filling
- Make the Dough:
- In a large mixing bowl pour in three cups of masa harina and two teaspoons salt Gradually add two and three fourth cups of warm water mixing with your hands until the dough holds together and has a soft play-doh texture If it feels too dry add a tablespoon more water at a time Knead just until smooth and supple but not sticky
- Shape the Pupusas:
- Pinch off a small ball of masa dough about the size of a golf ball Use your palms to flatten it into a disc about four inches wide then gently use your fingers to form a small hollow in the center Add one to two tablespoons of bean and cheese filling Fold the sides of the dough over the filling pinching the edges to seal then flatten it back into a thick disc Do not worry if they look rustic With practice you will get neater results Repeat until you use up the dough or filling
- Cook the Pupusas:
- Heat a cast iron or heavy skillet over medium heat Add a tablespoon of oil and swirl to coat Gently place three pupusas into the sizzling pan Cook them for about two to three minutes until golden brown on the bottom Carefully flip with a spatula and cook another one to two minutes on the other side When done they should be crisp on the outside and piping hot inside Continue until all are cooked adding more oil if needed
- Serve:
- Pile the pupusas onto a platter and top generously with curtido For extra flavor serve with salsa roja or your favorite hot sauce alongside Enjoy while fresh and hot

Mozzarella cheese is my favorite part of this recipe The way it melts inside each pupusa brings a gooey joy with every bite My kids always sneak a taste of the cheese mixture before I finish assembling
Storage Tips
Let pupusas cool completely before storing Stack them with parchment between each to prevent sticking Refrigerate in an airtight container for up to four days To reheat pop them onto a hot skillet for a couple minutes each side or use an oven at low temperature Pupusas also freeze well Wrap each individually and store in a zip top bag When ready to eat cook from frozen directly on the skillet until hot all the way through
Ingredient Substitutions
If mozzarella is not available try a mild cheddar or Monterey Jack Any favorite melting cheese will work For the beans black beans or even smashed pinto beans are fine Vegetarian chicken seasoning or a simple blend of cumin and paprika also brings flavor Masa harina is required for authentic texture but in a pinch finely ground cornmeal can substitute though the result will be a bit less tender
Serving Suggestions
Serve pupusas warm with a heaping pile of curtido and a drizzle of salsa roja For a meal add rice or a fresh salad alongside Some families enjoy a dollop of sour cream with them If you want to stretch the meal further try smaller pupusas and serve as appetizers at parties

Making pupusas is a joyful hands on kitchen project to share with friends and family Do not worry if your first ones are less than perfect—every batch tastes better as you learn the feel of the dough The final reward is golden crusted pockets oozing with cheesy bean filling a recipe that brings everyone to the table
Frequently Asked Questions
- → What is the best way to shape the dough?
Flatten the dough with your palms into a disc, then create a shallow cup to hold the filling before sealing and flattening again.
- → Can I use a different cheese?
Yes, try Monterey Jack or a mild white cheese substitute if mozzarella is unavailable.
- → How do I keep the pupusas from sticking?
Lightly oil your hands and ensure the skillet is well-oiled and preheated before adding pupusas.
- → What is curtido and how long should it marinate?
Curtido is a quick-pickled cabbage slaw; letting it sit for at least 30 minutes enhances its tangy flavor.
- → Can pupusas be made in advance?
Yes, assemble and store them in the fridge, then cook fresh when ready to serve. Reheat leftovers in a skillet.
- → Is salsa roja necessary?
Salsa roja is a traditional accompaniment but optional—pupusas are delicious with just curtido as well.