
Fish Meatballs in Coconut and Sweet Pepper Stew with Green Coconut Rice
An original Colombian-inspired recipe featuring tender white fish meatballs seasoned with cilantro, lime, and cumin, served in a creamy coconut, tomato, and sweet pepper stew. It is paired with green coconut rice with bell pepper and scallions for a comforting, aromatic coastal-style dish.
Ingredients
- 600 g skinless white fish fillet (puede ser róbalo, merluza or bagre limpio, chopped en trozos)
- 80 g scallions (finely chopped, divided)
- 20 g fresh cilantro (chopped, divided)
- 12 g garlic (chopped, divided)
- 3 g ground cumin (divided)
- 8 g salt (or to taste, divided)
- 2 g black pepper (divided)
- 1 unit egg (for ligar the meatballs)
- 35 g precooked yellow cornmeal (for dar estructura a the meatballs)
- 2 g lime zest (finely grated)
- 30 ml lime juice (divided)
- 45 ml vegetable oil (divided)
- 90 g sweet pepper (without semillas, chopped)
- 300 g ripe tomato (pelado and chopped)
- 100 g green bell pepper (chopped, divided)
- 400 ml coconut milk (without sugar, divided)
- 480 ml water (divided)
- 240 g long-grain white rice (lavado and escurrido)
- 1 unit bay leaf (for the arroz)
- 12 g grated panela (for equilibrar the sauce)
- 1 g ground annatto (optional, for color)
Nutrition facts
per serving
Approximate nutritional information. Estimated from the recipe’s ingredients and amounts, using standard reference nutrition values. It may vary with brands, sizes and cooking method. For guidance only; not a substitute for medical or dietary advice.
Allergens
Instructions
- 1
1. In a food processor or by hand, finely chop the white fish until it has a fine texture with a little body left. Transfer it to a bowl and mix with half of the scallions, half of the cilantro, half of the garlic, 1/2 teaspoon ground cumin, 1/2 teaspoon salt, 1/4 teaspoon black pepper, the egg, the precooked yellow cornmeal, the lime zest, and 1 tablespoon lime juice.
- 2
2. Mix well until a uniform mixture forms. Refrigerate for 15 minutes to firm up, then shape into 16 equal meatballs with lightly moistened hands.
- 3
3. For the green coconut rice, heat 1 tablespoon vegetable oil in a medium pot over medium heat. Sauté half of the remaining scallions, half of the green bell pepper, and one-third of the garlic for 2 minutes. Add the white rice, stir for 1 minute, then pour in 250 ml (1 cup) coconut milk, 240 ml (1 cup) water, the bay leaf, 1/4 teaspoon salt, and half of the remaining cilantro.
- 4
4. When it comes to a boil, reduce the heat, cover, and cook the rice for 15 to 18 minutes until tender and the liquid is absorbed. Turn off the heat and let it rest, covered, for 10 minutes. Remove the bay leaf and fluff the rice with a fork.
- 5
5. While the rice cooks, heat 1 tablespoon vegetable oil in a wide skillet over medium heat. Brown the fish meatballs in batches for 2 to 3 minutes per side, just until lightly colored. Do not fully cook them yet. Set aside on a plate.
- 6
6. In the same skillet, add the remaining tablespoon of vegetable oil. Sauté the sweet pepper, the rest of the garlic, and the rest of the green bell pepper for 2 minutes. Stir in the tomato, ground annatto, the remaining 1/2 teaspoon ground cumin, the remaining 1/2 teaspoon salt, the remaining 1/4 teaspoon black pepper, and the grated panela. Cook for 6 to 8 minutes, gently crushing the tomato to form a thick stew base.
- 7
7. Pour in the remaining 150 ml (2/3 cup) coconut milk, the remaining 240 ml (1 cup) water, and the remaining tablespoon lime juice. Simmer over medium-low heat for 3 minutes so the flavors combine.
- 8
8. Return the fish meatballs to the skillet, coat them with the sauce, and cover. Cook over low heat for 10 to 12 minutes, gently shaking the pan from time to time, until the meatballs are fully cooked and reach a safe internal temperature of 63°C (145°F).
- 9
9. Serve a portion of green coconut rice on each plate and arrange the meatballs on top or alongside with plenty of coconut and sweet pepper stew. Finish with the remaining cilantro if desired.
- 10
10. For a baked finish, you may transfer the browned meatballs and sauce to an oven-safe dish and complete cooking for 10 minutes at 180°C (350°F), again checking that the center reaches 63°C (145°F).
Chef tips
For firmer meatballs, chill the mixture 10 extra minutes before shaping. If the fish is very moist, add 1 extra tablespoon of precooked cornmeal. The stew should be thick but spoonable; loosen it with a few tablespoons of water if it reduces too much.
Substitutions
You can use tilapia, hake, sea bass, or cleaned catfish. Sweet pepper can be replaced with red bell pepper if unavailable, though the flavor will be less traditional. Panela may be replaced with brown sugar in the same amount.
What I used to make it
Generic kitchen tools that work for this recipe. You don’t need to buy anything to make it.
Illustrative imageCosori Pro LE 5 Qt Air Fryer
Browning and baking with little oil
- Browns food with very little oil
- Handy for vegetables, chicken and reheating
- Check the basket capacity
Illustrative imageTempPro TP19H Digital Thermometer
Checking doneness of meat and chicken
- Checks doneness of meat and chicken
- Quick reading
- Clean the probe after each use
Illustrative imageT-fal Ultimate Hard Anodized 12" Non-Stick Pan
Eggs, omelets and stir-fries
- Eggs and omelets that don’t stick
- Comfortable, sturdy handle
- Use wooden or silicone utensils
As an Amazon Associate, I earn from qualifying purchases.
Ratings & reviews
Sign in to rate this recipe
Sign inRelated recipes

Colombian Cargamanto Bean, Sweet Plantain and Cumin Chicken Cazuela
65 min

Pork Loin with Cocoa-Coffee Crust, Arracacha Mash, and Warm Cabbage-Pineapple Salad
75 min

Colombian Chicken Stew with Arracacha, Tree Tomato, and Tender Peas
80 min

Colombian Chicken Stew with Coconut, Cassava, and Sweet Corn
80 min

Chicken Breast in Goldenberry Creole Mustard Sauce with Yam Purée and Sautéed Corn
55 min

Colombian Mojarra with Pineapple-Sesame Hogao, Turmeric Rice, and Thin Patacones
65 min