
Brazilian Fish Cakes with Coconut Milk, Saffron Rice and Warm Tomato Hearts of Palm Salad
An original Brazilian recipe featuring tender golden fish cakes scented with coconut, lime, and cilantro, served with fluffy saffron rice and a warm salad of tomato, red onion, and hearts of palm. It has a fresh, homey coastal character inspired by Brazilian flavors without repeating classic preparations.
Ingredients
- 500 g firm white fish fillets (como merluza, tilapia or bacalao fresh)
- 120 ml coconut milk (without sugar)
- 3 cloves garlic (2 chopped and 1 whole for the arroz)
- 1 lima lime zest (solo the parte verde)
- 30 ml lime juice (freshly squeezed)
- 20 g fresh cilantro (chopped, divided)
- 120 g red onion (finely chopped, divided)
- 70 g cassava flour (for dar cuerpo a the bolinhos)
- 1 unit egg (beaten)
- 8 g salt (divided to taste)
- 3 g black pepper (freshly ground)
- 4 g sweet paprika
- 45 ml olive oil (divided)
- 200 g long-grain white rice (enjuagado)
- 0.25 g saffron threads (or 1/4 tsp desmenuzado)
- 480 ml hot water (for the arroz)
- 300 g firm ripe tomatoes (diced large)
- 220 g hearts of palm (escurridos and sliced)
- 15 ml white wine vinegar
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
Preheat the oven to 200 °C / 400 °F. Place the fish in a small baking dish and add the coconut milk, 1 minced garlic clove, half of the lime zest, 1 tablespoon of the lime juice, 1/2 teaspoon salt, and a pinch of black pepper. Bake for 12 to 15 minutes at 200 °C / 400 °F, until the fish is just cooked and flakes easily.
- 2
Remove the fish from the oven and let it cool for 10 minutes. Reserve 2 tablespoons of the coconut cooking liquid. Flake the fish into a large bowl, removing any bones if needed.
- 3
Add the cassava flour, beaten egg, 2 tablespoons chopped cilantro, half of the red onion, 1 minced garlic clove, sweet paprika, the remaining lime zest, 1/2 teaspoon salt, the rest of the black pepper, and the 2 tablespoons reserved coconut liquid to the bowl with the fish. Mix until you have a moist but shapeable mixture. Form 8 medium fish cakes.
- 4
While the mixture rests for 5 minutes, make the rice. Heat 1 tablespoon olive oil in a saucepan over medium heat. Add the whole garlic clove, lightly crushed, and cook for 30 seconds. Stir in the rice and saffron threads, cooking for 1 minute to coat the grains.
- 5
Add the hot water and 1/2 teaspoon salt to the rice. Bring to a boil, reduce the heat, cover, and cook for 15 minutes until the liquid is absorbed. Turn off the heat and let it rest, covered, for 5 minutes. Remove the garlic before serving.
- 6
For the warm salad, heat 1 tablespoon olive oil in a large skillet over medium heat. Add the remaining red onion and cook for 2 minutes. Add the tomatoes and a pinch of salt; sauté for 3 minutes so they soften slightly without falling apart.
- 7
Add the hearts of palm to the skillet and cook for 1 more minute. Remove from the heat and toss with the white wine vinegar, the remaining tablespoon of lime juice, 1 tablespoon chopped cilantro, and the remaining 1 tablespoon olive oil. Adjust salt if needed.
- 8
Heat a large nonstick skillet over medium heat with the remaining 1 tablespoon olive oil. Cook the fish cakes for 3 to 4 minutes per side, until golden and heated through in the center.
- 9
Fluff the rice with a fork. Serve a bed of saffron rice, place 2 fish cakes per serving, and add the warm tomato and hearts of palm salad on the side. Finish with the remaining cilantro on top.
Chef tips
If the fish cake mixture feels too wet, add 1 to 2 extra tablespoons of cassava flour. For deeper flavor, let the fish sit with the coconut milk and lime for 10 minutes before baking.
Substitutions
You can use pollock, hake, tilapia, or sea bass. If cassava flour is unavailable, use gluten-free breadcrumbs, though the result will feel less traditionally Brazilian. Cilantro can be replaced with parsley, and hearts of palm with sautéed zucchini.
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 imageNinja Professional BL610 Blender
Smoothies, sauces and soups
- Smoothies, sauces and soups
- Easy-to-wash jar
- Check the power and jar size
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
As an Amazon Associate, I earn from qualifying purchases.
Ratings & reviews
Sign in to rate this recipe
Sign inRelated recipes

Creamy chicken moqueca with toasted corn, cilantro, and crispy coconut farofa
55 min

Brazilian Chicken, Okra and Coconut Stew with Toasted Corn Farofa
55 min

Golden Shrimp and Cassava Bobó with Toasted Coconut Rice
60 min

Brazilian Tapioca-Coconut Crusted Tilapia with Creamy Lime Rice, Sautéed Collards and Tomato Vinaigrette
65 min

Brazilian Baked Chicken with Coconut Crust and Corn Farofa with Peppers
60 min

Brazilian Creamy Coconut-Lime Rice with Seared Pork, Roasted Squash, and Red Onion Farofa
65 min