Side Dishes
This Goya rice and gandules recipe brings the heart of Puerto Rican cuisine to your stovetop with just one pot and a handful of essential ingredients.
The secret lies in the sofrito—a fragrant blend of peppers, onions, and garlic—that transforms simple rice and pigeon peas into a dish bursting with flavor. I’ve perfected this recipe over years of family gatherings, where it’s always the centerpiece of any meal.
The magic starts with properly soaking the gandules to soften them, then toasting the rice for that signature nutty aroma before layering in the sofrito and spices. Annatto seeds lend their signature golden hue, while cumin and oregano add depth that’s impossible to replicate with shortcuts.
This one-pot method ensures every bite is infused with the same love and tradition you’d find in a Puerto Rican abuela’s kitchen.
By the time you’re done, you’ll have a pot of fragrant, tender rice with perfectly cooked gandules—each grain distinct yet harmonious, the sofrito’s smoky sweetness balanced by the savory ham and the bright tang of annatto.
It’s the kind of dish that tastes like home, whether served alongside crispy tostones or as the star of a festive spread.
For those looking to adapt, a simple swap of ham for smoked tofu keeps the dish vegetarian without sacrificing flavor. The key is patience—letting the sofrito develop its depth and the rice absorb all those rich spices. Here’s how to make it the traditional way, step by step.
Ingredients for goya rice and gandules
One-pot magic starts with these 14 essential ingredients—sofrito, gandules, and rice that turn humble staples into Puerto Rican comfort.
| Ingredient | Amount | Notes |
|---|---|---|
| Long-Grain White Rice 🍚 | 1 ½ cups | Uncooked, like Goya or Mahatma |
| Gandules (Pigeon Peas) 🌱 | 1 cup | Dried, soaked overnight |
| Diced Ham 🥓 | 6 oz | Smoked ham preferred |
| Yellow Bell Pepper 🧅 | 1 whole | Seeded and chopped |
| Green Bell Pepper 🧅 | 1 whole | Seeded and chopped |
| Yellow Onion 🧅 | 1 whole | Medium, chopped fine |
| Garlic Cloves 🧄 | 4 cloves | Fresh, minced finely |
| Annatto Seeds 🌶️ | 1 tsp | Ground or whole seeds |
| Ground Cumin 🌿 | 1 tsp | Toasted for depth |
| Dried Oregano 🍃 | 1 tsp | Mexican oregano preferred |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Chicken Broth 💧 | 2 cups | Low-sodium preferred |
| Olive Oil 🫒 | 2 tbsp | Light or extra-virgin |
The gandules are non-negotiable—Goya brand is the gold standard, but any dried pigeon peas work. Soak them overnight in plenty of water (they triple in size!) and drain well before cooking. For the sofrito, bell peppers and onions should be finely chopped—almost paste-like—so they melt into the rice. The annatto seeds give that signature golden hue; if you can't find them, a pinch of turmeric works in a pinch (though it won't taste the same). I always grab my spices from Penzeys—their Mexican oregano is worth the splurge, but regular dried oregano will do if you're short on time.
No ham? Smoked tofu or extra mushrooms add savory depth without sacrificing flavor. Swapping bell peppers for tomatoes or zucchini keeps it veggie-forward, but the sofrito's smoky-sweet balance suffers. For the rice, Mahatma or Goya brands toast perfectly—avoid jasmine or basmati, which have different textures. The chicken broth can be swapped for vegetable broth plus a splash of soy sauce for umami. And if you're lazy (no judgment), a jar of sofrito sauce from the Latin aisle cuts prep time in half—just add extra annatto for color.
This keeps for 3-4 days in the fridge, but honestly tastes better the second day as flavors meld. Portion it into containers for easy lunches—just reheat with a splash of water. Freezes beautifully for up to 3 months, though the gandules might get a tad mushy. For leftovers, I like to serve it over crispy tostones or with a side of avocado slices. The rice-to-gandules ratio is key—if you double the recipe, keep the proportions the same, but add an extra cup of broth to prevent sticking.
Why You'll Love This Recipe
- Here’s what sold me: the gandules soak up all the smoky ham flavor while the bell peppers add this bright, almost tropical sweetness. It’s like a hug in a bowl—rich but not heavy, with just enough crunch from those peppers.
- One-Pot Magic: I swear by this—just toss everything in one pot, stir occasionally, and walk away. No fancy layers, no stressing over separate pans. That ham and bell pepper combo caramelizes right alongside the rice, so you’re basically getting two meals in one.
- Savory-Sweet Balance: Here’s what sold me: the gandules soak up all the smoky ham flavor while the bell peppers add this bright, almost tropical sweetness. It’s like a hug in a bowl—rich but not heavy, with just enough crunch from those peppers.
- Lunchbox Hero: Between us, this is my go-to for meal prep. Tastes just as good cold the next day, so I make a big batch on Sundays and pack it for work. The rice stays fluffy, the gandules hold their shape, and honestly? Nobody ever complains about leftovers.
Step-by-step instructions for Puerto Rican sofrito-spiced one-pot magic
Here's how to make this hearty, flavorful dish with minimal cleanup and maximum taste.
Prepare the Gandules and Sofrito Base
Start by draining and rinsing the soaked gandules (pigeon peas). In a large, heavy pot, heat the 2 tablespoons olive oil over medium heat. Add the 6 ounces diced ham and cook for 3-4 minutes until lightly browned. This step builds the foundation of your dish by rendering the ham's flavor.
Next, add the chopped yellow onion, yellow bell pepper, and green bell pepper to the pot. Sauté for 5-6 minutes until the vegetables soften and become translucent. Here's the thing—don't rush this step. You want the vegetables to break down and release their natural sweetness, which will infuse into the entire dish.
Stir in the 4 minced garlic cloves and cook for another 30 seconds until fragrant. Add the 1 teaspoon ground cumin, 1 teaspoon dried oregano, 0.5 teaspoon ground black pepper, and 1.5 teaspoons salt. Toast these spices in the pot for 30 seconds, stirring constantly, until you can smell their warm, earthy aromas filling your kitchen.
Build the Flavor with Annatto and Rice
Reduce the heat to medium-low and add the 1 teaspoon annatto seeds to the pot. Stir continuously for 1-2 minutes until the seeds dissolve and give the mixture a beautiful golden hue. This is what gives the dish its signature color and subtle earthy flavor.
Now it's time to add the star of the show—the 1.5 cups long-grain white rice. Stir the rice into the sofrito mixture, coating each grain thoroughly with the flavorful oil and spices. You'll notice the rice will look dry at first, but that's okay. The key is to get every grain well-coated so they absorb all that delicious flavor as they cook.
Pour in the 2 cups chicken broth and bring the mixture to a gentle simmer. Here's where the magic happens: let it cook undisturbed for 5 minutes. This allows the rice to begin absorbing the liquid and developing that perfect texture without stirring, which can break the grains.
Cook to Perfect Texture
After the initial 5 minutes of simmering, gently stir the rice mixture once to distribute any uncooked grains. Then add the drained gandules (pigeon peas) and mix lightly. The peas should be distributed evenly throughout the rice.
Reduce the heat to low and cover the pot with a tight-fitting lid. Let the rice cook for 20-25 minutes, maintaining a gentle simmer. This low-and-slow approach ensures the rice absorbs all the liquid and develops that perfect, fluffy texture without becoming mushy.
About halfway through cooking, check the rice. If the top appears dry, sprinkle a few tablespoons of hot chicken broth over it. This prevents the top layer from drying out while keeping the bottom moist. You'll know it's done when the rice is tender, the liquid is mostly absorbed, and the peas are soft but still hold their shape.
Rest and Serve
Once the rice is fully cooked, remove the pot from heat and let it rest, covered, for 5-10 minutes. This resting period allows the flavors to meld together and the rice to finish absorbing any remaining liquid. It also gives you a few precious minutes to set the table and prepare any sides.
After resting, fluff the rice gently with a fork, being careful not to mash the gandules. Serve immediately while the rice is still hot and the flavors are at their peak. This dish tastes even better the next day, but it's so good fresh that you might not wait!
Here's the best part—this one-pot wonder delivers all the comforting flavors of Puerto Rican cuisine with minimal effort. The annatto gives it that beautiful color, the sofrito brings deep, savory notes, and the gandules add a satisfying heartiness that makes this dish perfect for any occasion.
Pro Tips For Making Goya Rice And Gandules
- SOAK THE GANDULES: I learned this the hard way—skipping the soak makes your gandules turn to mush instead of holding their shape. Toss them in warm water for at least 30 minutes (or overnight if you’re prepping ahead), then drain before cooking. This isn’t just about texture; it cuts the cooking time by half and keeps them from falling apart when you stir in the sofrito.
- CRISP THE HAM FIRST: Don’t just toss diced ham into the pot—get it golden brown in a dry skillet first. The extra fat renders out, deepening the flavor, and the crisp edges add texture that plain boiled ham can’t match. Work in batches if needed, but don’t rush: 3–4 minutes per side until it’s caramelized. (Yes, even if you’re impatient like me.)
- STIR THE RICE ONCE: The moment you add the rice to the pot, give it one firm stir to distribute it evenly. After that? Leave it alone. Poking it constantly releases starch too early, turning your rice into glue. If you’re worried about sticking, use a splash of water on the spoon instead of stirring—your rice will thank you with perfect grains.
- SAVE THE GOYA LIQUID: That can of goya (or calabaza squash) isn’t just for flavor—it’s the secret to creamy, moist rice. After mashing the goya into the pot, don’t drain the liquid. Strain it if you want, but keep every last drop. It’s what turns this from dry rice to the rich, saucy dish everyone loves. (I used to pour it out “to save time,” then wondered why my rice was sad.)
Essential equipment for this dish
Heavy-Bottomed Pot
This recipe demands a large, heavy-bottomed pot—I swear by my All-Clad 5-quart Dutch oven—to distribute heat evenly and prevent scorching. A stainless steel or enameled cast iron pot works best because it maintains consistent temperatures during the long simmer.
Avoid thin aluminum or nonstick pots; they can’t handle the low-and-slow cooking without burning the sofrito or drying out the rice. 🔥
Wooden Spoon
A long-handled wooden spoon (I use a Oxo Good Grips brand) is essential for stirring the sofrito and rice without scratching your pot. Wood distributes heat better than metal and won’t react with the annatto or acidic ingredients.
Avoid plastic spoons—they melt under prolonged heat. Keep it nearby to gently fluff the rice at the end.
Fine-Mesh Strainer
For soaking the gandules, a fine-mesh strainer (like the OXO Good Grips Collapsible) is a game-changer. It drains water efficiently while keeping the peas contained, preventing them from slipping through.
Soak them overnight in a large bowl (not the pot) to avoid overcrowding. Pro tip: Rinse them twice after soaking to remove any bitterness.
Annatto Seeds Grinder
If you’re using whole annatto seeds, a small spice grinder (I love the Spice & Tea brand) ensures you get a fine, even powder for that signature golden hue.
Store-bought annatto paste works in a pinch, but grinding fresh seeds adds depth. Toast the seeds lightly in a dry pan for 30 seconds before grinding to intensify their flavor.
Measuring Spoons
Precision matters with spices like cumin, oregano, and annatto. Invest in stainless steel measuring spoons (like OXO’s set) for accurate measurements—even a ¼ teaspoon too much salt or cumin can throw off the balance.
Keep them in a dry, airtight container to preserve freshness. I always measure spices right before adding to avoid clumping.
Lid with Vent
A tight-fitting lid with a vent (like the one on my Dutch oven) is critical for trapping steam while allowing excess moisture to escape. This prevents the rice from becoming soggy during the 20-minute simmer.
If your lid doesn’t vent, prop it slightly ajar with a wooden spoon handle for 5 minutes toward the end to release steam gently. 💫
Nutrition facts
Frequently asked questions
Why does my Puerto Rican rice turn out mushy instead of fluffy?
Mushy rice usually happens when you stir too much during cooking or don't use enough liquid. For this recipe, let the rice sit undisturbed for 5 minutes after adding broth, then only stir once gently. If the top gets dry, add a splash of hot broth—not cold water. Also, make sure your pot has a tight-fitting lid to trap steam properly.
Can I substitute gandules (pigeon peas) with black beans or lentils?
While black beans or lentils can work in a pinch, they won't give you the same authentic texture or flavor. Gandules are essential for traditional arroz con gandules. If you can't find them, try split peas as a closer substitute, but soak them for at least 2 hours (gandules need overnight soaking). The dish will taste different but still delicious.
How do I make this vegetarian without losing flavor?
Swap the ham for smoked tofu or tempeh>, crumbled and pan-fried until crispy. Boost umami with 1 tablespoon soy sauce> or ½ teaspoon smoked paprika> in the sofrito. For extra richness, add ½ cup sautéed mushrooms> with the vegetables. The annatto and cumin will still give that signature flavor profile.
What's the best way to reheat leftover gandules rice?
Add 2-3 tablespoons of water or broth> per cup of rice and cover tightly. Heat on medium-low for 3-5 minutes>, stirring once. Microwaving works too—use a damp paper towel over the dish to prevent drying. Never reheat dry; the rice will turn rubbery. Leftovers taste even better the next day as flavors meld!
Can I make this dish in an Instant Pot or rice cooker?
Yes! For Instant Pot: Sauté ham and sofrito, then add rice, gandules, broth, and spices. Cook on high pressure for 8 minutes>, then natural release for 10 minutes>. For rice cookers, follow the same steps but check the rice after 20 minutes>—it may need 5-10 more minutes on low heat. The texture will be slightly different but still delicious.
