North African Meatballs
Updated July 15, 2025

- Total Time
- 1 hour 15 minutes
- Rating
- Comments
- Read comments
Advertisement
Ingredients
- 2tablespoons olive oil
- 1and ½ cups finely diced onion
- 3garlic cloves, minced
- 2tablespoons tomato paste
- 1inch piece cinnamon stick
- Large pinch saffron, crumbled
- Salt and pepper
- 3cups chicken broth, vegetable broth or water
- 1and ½ cups cubed day-old firm white bread
- 1cup milk
- 1pound ground beef or lamb
- 1large egg, beaten
- 1teaspoon salt
- ¼teaspoon black pepper
- 4garlic cloves, minced
- ⅛teaspoon grated nutmeg
- 1teaspoon ground ginger
- 1teaspoon turmeric
- 2teaspoons paprika
- ¼teaspoon cayenne
- ¼teaspoon ground cloves
- ¼teaspoon ground coriander
- ½teaspoon ground cumin
- 3tablespoons chopped parsley
- 3tablespoons chopped cilantro
- 3tablespoons finely chopped scallion
- All-purpose flour, for dusting
- Olive oil or vegetable oil
- 1cup giant couscous, m’hamsa, or medium couscous
- 2tablespoons butter
- ½cup golden raisins, soaked in hot water to soften, then drained
- Salt
- ¼teaspoon ground cinnamon
For the Saffron Tomato Sauce
For the Meatballs
For the Couscous (optional)
Preparation
- Step 1
Make the sauce: Heat oil over medium-high heat in a wide, heavy bottomed saucepan. Add onion and cook without browning until softened, about 5 minutes. Add garlic, tomato paste, cinnamon and saffron, and stir well to incorporate. Season generously with salt and pepper, and allow to sizzle for 1 minute more. Add broth and simmer gently for 5 minutes. May be made several hours in advance, up to a day.
- Step 2
Make the meatballs: Put bread cubes and milk in a small bowl. Leave bread to soak until softened, about 5 minutes, then squeeze dry.
- Step 3
In a mixing bowl, put squeezed-out bread, ground meat and egg. Add salt, pepper, garlic, nutmeg, ginger, turmeric, paprika, cayenne, cloves, coriander and cumin. Mix well with hands to distribute seasoning. Add 2 tablespoons each of parsley, cilantro and scallion, and knead for a minute. May be prepared several hours in advance, up to a day.
- Step 4
With hands, roll mixture into small round balls about the size of a quarter. Dust balls lightly with flour. Heat a few tablespoons of oil, or a quarter-inch depth, over medium-high heat and fry meatballs until barely browned, about 2 minutes per side. Drain and blot on paper towel. Simmer meatballs in saffron-tomato sauce, covered, over medium heat for about 20 minutes, until tender.
- Step 5
Meanwhile, make the couscous, if desired: Cook according to package directions, fluff gently and stir in butter and raisins. Season with salt and cinnamon, and toss well.
- Step 6
Garnish meatballs with remaining parsley, cilantro and scallion. Serve with couscous and roasted tomatoes if desired.
Private Notes
Comments
To distribute spices evenly in meatballs, just take a mini whisk and beat the spices/minced garlic into the egg or eggs ALONE briefly before mixing them into the meat mixture. The liquidity of the eggs will carry the spices everywhere without the need to overwork the meat.
Delicious and pretty easy. It's a great dish to make with ground turkey, since both the sauce and meatballs are so well spiced you don't miss the fat or flavor of red meat. I served it with sautéed spinach on the side, and made a quick tahini yogurt sauce to go on top (plain greek yogurt, tahini, and lemon juice)
Great and delicious. Made this with oatmeal instead of bread to satisfy a gluten intolerant family member, dried minced onions for scallions as I had none, over brown rice not couscous--also for gluten-free purposes. I had some hot beef sausage from a neighbor that I mixed with ground beef so skipped the cayenne. Rather than brown on stovetop, my usual treatment is to bake in oven for 30 minutes at 350F, this makes the preparation more relaxed.
I used ground beef because my grocer was out of ground lamb. The flavor is amazing! I can’t wait to make them with lamb!
It’s foolproof. Moist and delicious every time. I usually follow the recipe to the letter but occasionally I spatchcock the bird and roast it on the grill over indirect heat. So good!
I followed instruction and ingredients as written. I may not have squeezed enough milk out of the bread as mixture was overly moist. In general I thought this was a ton of work (and ingredients!) for not such a stellar result.