Zomppa's Moroccan Meatballs
⏲ ~52 min total · prep 17 · cook 35 · 4 servings
Snacks⏱ 40 min total🔥 5.0g net carbs⚡ ≈270 kcal/serving~8% of calories from carbs
By the KFI Test Kitchen · Tested & approved by Jason Lieu, KFI recipe editor
Published Sep 15, 2026 · Updated Sep 15, 2026
Ingredients
- 1 lb ground beef (85/15)
- 1/4 cup almond flour
- 1 large egg
- 2 garlic cloves, grated
- 1 1/2 tsp ground cumin
- 1 tsp paprika
- 1/2 tsp ground cinnamon
- 3/4 tsp salt
- 2 tbsp olive oil
- 1 (14 oz) can crushed tomatoes
- 1/4 cup chicken broth
- 3 tbsp chopped fresh parsley and cilantro, divided
Instructions
- Combine the beef, almond flour, egg, garlic, cumin, paprika, cinnamon, salt, and half of the chopped herbs in a bowl; mix with your hands just until blended — overworking makes them bouncy.
- Roll the mixture into 18 meatballs, about 1 1/2 tablespoons each, packing them gently so they hold together without turning dense.
- Heat the olive oil in a 12-inch skillet with a lid over medium-high and brown the meatballs 6 minutes, turning with tongs for color on all sides — they will not be cooked through yet.
- Pour in the crushed tomatoes and chicken broth, scraping the spiced browned bits off the bottom, and nestle the meatballs back into the sauce.
- Cover, drop the heat to a gentle simmer, and cook 12 minutes, until the meatballs reach 160°F inside and the sauce has deepened to a brick red.
- Uncover and simmer 2 minutes more until the sauce coats the back of a spoon, then scatter the remaining herbs over and serve straight from the pan.
Why this recipe works
- Almond flour binder Almond flour holds the meatballs together without breadcrumbs. A quarter cup is enough for 18 meatballs, so they stay tender rather than dense.
- Brown first, simmer after Six minutes of browning builds a spiced crust, and the crushed tomatoes then lift those browned bits into the sauce. One pan gives you both textures.
- Herbs at two depths Half the chopped parsley and cilantro go into the mix, the rest over the top. The flavor reads inside the meatball and on it.
Tips for making this recipe well
Mix with your hands
Hands blend the seasonings evenly and stop at the right moment. A spoon or a mixer overworks the beef, and overworked meat turns bouncy.
Size them once
A 1 1/2-tablespoon scoop gives 18 meatballs that finish at the same time. Roll them gently so they hold together without compacting.
Trust the 160°F check
The meatballs brown before they finish cooking, so color is a poor signal. After 12 minutes in the sauce, spot-check one for 160°F inside.
Sauce thickness cue
The uncovered two minutes matters more than it looks. When the sauce coats the back of a spoon, it will cling to each meatball instead of pooling in the pan.
Serving suggestions
Eighteen meatballs, 5.0 net carbs, one skillet. Serve them straight from the pan with the remaining herbs scattered over, and set out small plates or toothpicks if this is the snack course. The sauce is part of the point, so offer a spoon alongside. A batch this size feeds four as a main or a crowd as a finger food, and the skillet holds its heat on the table for a good stretch.
Storage and meal prep
The meatballs hold three to four days in the fridge with their sauce over them, which keeps them from drying out. They freeze well for two to three months. Cool the pan first and pack them in a flat container so they thaw evenly. Reheat gently in a covered skillet with a splash of broth. The sauce thickens in the cold, so expect it to loosen again as it warms.
Variations worth trying
- Lamb swap Ground lamb replaces the beef one for one and leans harder into the cinnamon. Keep the same 160°F target.
- Creamy counterpoint A spoon of sour cream on each serving cools the spices. It is not in the original, so add it at the table.
- Extra-heat version Add a pinch of red pepper flakes with the paprika. The tomatoes carry heat well, so start small.
Frequently asked questions
Can I skip the browning step?
You can, but the sauce loses the spiced browned bits that give it depth. If time is short, brown for four minutes instead of six rather than skipping it.
What does 85/15 mean?
It is the fat-to-lean ratio, 15 percent fat. Leaner beef makes drier meatballs, and fattier beef releases more grease into the sauce.
Do I need a lid?
A lid matters for the 12-minute simmer, which finishes the meatballs through in the steam and sauce. Foil pulled tight over the skillet works in a pinch.
Why did my meatballs turn out dense?
The mix was worked too hard or rolled too tight. Blend until the ingredients disappear, then stop, and pack the balls gently.
How spicy are these?
Mild. The warmth comes from warm spices like cumin and paprika, none of which carry chili heat, so the batch stays family-friendly as written.
Related keto recipes
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 Snacks recipes · Home