Moroccan kofte and sausage stew

⏲ ~28 min total · prep 18 · cook 10 · 4 servings

Lunch⏱ 45 min total🔥 6.0g net carbs

By the KFI Test Kitchen · Tested & approved by Jason Lieu, KFI recipe editor

Published Sep 15, 2026 · Updated Sep 15, 2026

Moroccan kofte and sausage stew

Ingredients

Instructions

  1. Mix the lamb, almond flour, grated onion, 1 tsp cumin, half the garlic, 1 tsp harissa, and 1 tsp salt; roll into 16 meatballs, about 1 1/2 inches across, and chill 10 minutes so they hold together.
  2. Heat the olive oil in a 5-quart Dutch oven over medium-high; brown the meatballs 4-5 minutes, turning so all sides color, but leave them underdone in the center; set aside.
  3. Cook the merguez in the same pot 3 minutes until its red fat renders out, then add the diced onion and cook 3-4 minutes until translucent; stir in the remaining garlic for the last 30 seconds.
  4. Bloom the remaining 1 tsp cumin and 2 tsp harissa in the fat for 30 seconds, pour in the crushed tomatoes, and scrape the browned bits off the bottom of the pot.
  5. Nestle the meatballs back into the sauce, cover, and simmer over medium-low 15 minutes, until the meatballs read 160°F inside.
  6. Stir in the olives and spinach and cook 1-2 minutes, just until the spinach wilts; finish with cilantro and serve straight from the pot.

Why this recipe works

Tips for making this recipe well

Chill before browning

Ten minutes in the fridge firms the meatballs so they keep their shape in the pan. Skip it and the edges slough off into the oil.

Underdone is correct

Pull the meatballs from the sear while the centers are still short of done. Fifteen minutes in the simmering sauce finishes them to 160°F without drying the outside.

Scrape when the tomatoes go in

The browned bits from the merguez and lamb are flavor. Crushed tomatoes give you the liquid to lift them loose, so pour and scrape in the same motion.

Spinach at the very end

One to two minutes is enough for it to wilt. Added earlier, it goes dark and slack, with nothing left to give the bowl.

Taste before the cilantro

Olives and harissa both carry salt, and the sauce concentrates as it simmers. Check it after the fifteen minutes, since it can move past pleasantly seasoned.

Serving suggestions

Serve it straight from the Dutch oven with the cilantro scattered over at the last second. The pot lands at 6 net carbs per serving, and the forty-five minutes covers the chill, the browning, and the simmer, so nothing runs long. A bowl like this usually wants bread alongside, and a keto table does fine without it; the olives and spinach give every spoonful enough to do. A spoon beats a fork here.

Storage and meal prep

The stew keeps 3 to 4 days covered in the fridge, and the meatballs actually hold their shape better on day two. It freezes for 2 to 3 months; thaw it overnight and warm it slowly over low heat so the sauce does not scorch at the bottom of the pot. The spinach goes very soft after either rest. If that bothers you, hold it back when you first cook the stew and stir a fresh handful into each reheated portion.

Variations worth trying

Frequently asked questions

How spicy is this stew?

Moderately. Two teaspoons of harissa across the pot builds a warm, persistent heat, and the merguez adds its own. Use one teaspoon if you are feeding people who flinch.

Can I shape the meatballs ahead?

Yes. The mix holds overnight in the fridge, covered, and chilled meatballs brown even more cleanly. Add a minute or two to the sear if they go into the pan cold.

What if I cannot find merguez?

Any fresh, spiced sausage stands in, though you lose some of the signature red fat. Brown whatever you use until it renders, then carry on with the onions.

Can I freeze the leftovers?

For 2 to 3 months, yes. The sauce and meatballs freeze well; thaw overnight in the fridge and reheat gently. Stir in fresh spinach when you warm it if texture matters to you.

Why did my meatballs fall apart?

Usually the chill was skipped or the simmer was too hard. Ten minutes in the fridge firms the fat, and a bare bubble keeps them intact. A rolling boil will break them up.

Related keto recipes

Lamb Tagine Stew
Lunch

Lamb Tagine Stew

65 min · 4.0g net carbs
Beef With Oranges and Spices
Lunch

Beef With Oranges and Spices

105 min · 6.0g net carbs
Indian-Spiced Ground Beef Main Dish
Lunch

Indian-Spiced Ground Beef Main Dish

36 min · 7.5g net carbs
Chicken & Preserved Lemon Tagine
Lunch

Chicken & Preserved Lemon Tagine

68 min · 5.7g net carbs

As an Amazon Associate and affiliate partner, Keto Food Ideas earns from qualifying purchases at no additional cost to you. Nutritional values are estimates. Recipes are developed with AI assistance and reviewed by our editors before publishing.

← More Lunch recipes · Home