afoona
Meatballs in Moroccan Tomato Sauce
Meat

Meatballs in Moroccan Tomato Sauce

Spiced ground meatballs in a rich Moroccan tomato sauce with baharat and cilantro.

⏱ 1 hr🍽 4 servings 🌍 Middle Eastern👩‍🍳 Afoona🧩 3 parts

👨‍🍳 Method

For the Meatball mix

  1. 1
    Mix the ground meat with the onion, garlic, parsley, cumin, baharat, salt and black pepper until evenly combined.
  2. 2
    With wet hands, shape patties the size of a walnut.
    💡Wet hands don't stick to the mixture, and the patties come out smooth and even.

To assemble

  1. 3
    Heat the oil in a pan and brown the meatballs 4–5 minutes.
    ⚙ Pan-fryingStoveFrying pan
    💡Brown first for a crust and a roasted flavor; without browning the meatballs are softer and absorb more of the sauce.
    💡What you brown (meat, patties, schnitzel) goes into hot oil: in lukewarm oil it soaks it up and comes out greasy. For onion and garlic that you soften, oil heated over medium or low heat is enough; do not wait for it to smoke.
  2. 4
    Heat the olive oil in a pot over medium heat.
    ⚙ Pan-fryingStovePot
  3. 5
    Add the onion and fry 8 minutes, stirring now and then, until the onion is soft and translucent and starts to turn golden at the edges. If it browns too fast, lower the heat.
    ⚙ Adding to the hot fat and fryingStove
    💡Add by cooking time: what needs long (onion, carrot, meat) goes in first, and what burns fast (garlic, dry spices) goes in last, only until fragrant.
  4. 6
    Add the garlic and fry about 30 seconds to 1 minute, just until fragrant. Don't let the garlic brown.
    ⚙ Adding to the hot fat and fryingStove
    💡Garlic burns quickly and turns bitter. Add it only after the onion has softened, over medium heat, and add the next ingredient as soon as it smells fragrant.
  5. 7
    Add the cumin and paprika and stir about a minute, until fragrant.
    ⚙ SimmeringStove
    💡A gentle simmer, not a boil: a hard boil dries the food out and clouds it, a slow simmer cooks it evenly.
  6. 8
    Combine the meatballs and the sauce in the pot. Turn down the heat, cover and simmer 20 minutes, until the meatballs are cooked and the sauce thickens.
    ⚙ SimmeringStovePotLid
    💡Drop the meatballs into boiling sauce and don't stir at first: that way they firm up and keep their shape.
  7. 9
    Sprinkle with the cilantro and serve with fresh bread.
428calories
24 gprotein
11 gcarbs
31 gfat
● protein 23%● carbs 10%● fat 67%

Per serving (293 g), of 4 servings

For the Meatball mix · To assemble ·

A button hides that part of the recipe, in print too. Another click brings it back. The choice is kept for this recipe.

⚖ About the ingredients

🔧 Tools needed (4) · 🍳 2 cooking vessels

  • Stove · 💡 Workaround, changes the dish: Portable hot plate (one weaker burner) · Camping gas stove (One burner, outdoors) · Electric pressure cooker (multicooker) (One pot, no real shallow frying)
  • Frying pan · Also works: Wok (None) · 💡 Workaround, changes the dish: Pot (High sides, slow evaporation and weak browning)
  • Lid · Also works: Aluminum foil (tight aluminum foil) · Plate (an upside-down plate)
  • Pot · Also works: Deep skillet (sauté pan) (less liquid, faster evaporation) · 💡 Workaround, changes the dish: Wok (For quick cooking)

By the steps, as the recipe is built now: another version or addition can change the list.

🧩 Built from…

Meatball mix → Tomato sauce → Fried onion → Meatballs in Sauce

🛒 Shopping list