Main Dishes/ Soups

Vegan Moroccan Meatball Soup

Autumn is almost around the corner! What is more comforting than a warm soup full of vibrant flavors? This recipe with “meatballs” made from vegan ground and tofu is one of my favorites. It is delicious, nutritious, and it can be made ahead and stored for up to 3 days or even frozen in portions.

The vegan meatballs are made from meatless ground and pressed extra-firm tofu, marinated in herbs and the famous Moroccan Ras el Hanout seasoning.

And everyone preferring solely unprocessed ingredients, can substitute the vegan ground with cooked lentils or textured soy protein. For a firm texture that will prevent the meatballs from falling apart, I use rice or potato starch as a binder in any case.

When I cook this recipe, I usually take half of the meatball mix for the soup and keep the other half in the fridge to make patties, or I form everything into meatballs and freeze them to save time and work for the next soup. But this is optional, you can also use half of the ingredients, but since the packs of tofu and beefless ground are already open, it is a good way to process them now and have them ready in the freezer.

We love bread with almost every dish! Here Moroccan stove-top flatbread with whole wheat and rye

It is important to press the tofu ahead of time, the longer the better. I recommend at least an hour. The result is so much better with as little liquid in the tofu as possible (see how to press tofu without press here). This, and the rice flour/starch keeps the meatballs together while cooking.

Preparing several batches and freeze them has always saved me much time, as I use the meatballs in different recipes, from pasta, Moroccan tajine, kebab sandwiches, to tacos and more, they are so tasty! And patties made from the same ingredients make delicious hamburgers too!

There is a second benefit to freezing them: cooking them right out of the freezer delivers an even firmer and chewier result, perfect for this recipe, oven-roasted dishes, or stews!

Before finally freezing, place them on a baking sheet with baking paper and put the sheet into the freezer for at least one hour before storing the meatballs in a zipper bag or container. You don’t want them to stick together once frozen. Use patty sheets or pieces of baking paper to stash the patties. That makes it easy and convenient to take out portions when needed.

To add even more flavor, I use a vegan low sodium veggie broth cube. Liquid vegetable broth works too, but make sure to use accordingly less water and salt, if you use regular broth.

Whether you are cooking for a family or you are having your friends. Try this recipe and make the meatballs ahead. Even my meat-eating friends loved it!

Alternative variation of the recipe: you can also use cooked lentils instead of vegan ground

I highly recommend that you do yourself a favor and invest the 20 minutes to prepare the marinade; I promise, it will pay off! Marinating the vegan meatballs will give them the unique oriental flavor that Moroccan dishes are known for. If you have marinade left, great! Store it in your fridge and use it for your next meals. It is a versatile ingredient and will enhance every hearty meal.  You can even freeze it in small portions to use for a future cooking session.

Our Ras el Hanout is made with 22 organic and freshly ground ingredients.

The cilantro marinade is a recipe from my mother. It has been part of her meal-prep since I can think. I always have a jar of it in my fridge. Marinating food is part of Moroccan cuisine, as is the use of Ras el Hanout. Our homemade Ras el Hanout is also made after an old family recipe. We grind and mix it with 22 or more organic roots and seeds, it is such a versatile and delicious seasoning! Ras el Hanout is the go-to-seasoning for everything from tajine to sweets.

If you don’t like mock-meats, try the variation with lentils. Just replace the amount of vegan ground with cooked and drained lentils.
Yield: 8

Vegan Moroccan Meatball Soup

Vegan Moroccan Meatball Soup

Are you cooking for a family or having friends over and want something hearty vegan? This Moroccan Soup is a great and tasty and healthy make-ahead meal!

Prep Time 40 minutes
Cook Time 40 minutes
Additional Time 15 minutes
Total Time 1 hour 35 minutes


  • Cilantro-Parsley Marinade:
  • 1 bunch of cilantro
  • 1 bunch of parsley
  • 4 cloves of garlic
  • 1 tsp of salt
  • 1 tsp roasted garlic and herbs seasoning
  • 1 Tbsp of Ras el Hanout (Moroccan Seasoning)
  • 1 tsp of chili flakes
  • ½ cup of olive oil
  • Meatballs:
  • 1 pack beefless ground (340g / 12oz)
  • 1 pack extra firm tofu (pressed)
  • 2 Tbsp lemon juice
  • 4 Tbsp of the cilantro-parsley marinade (more to taste)
  • 1 tsp of salt
  • 4 Tbsp potato starch
  • Soup:
  • 2 Tbsp olive oil
  • 1 onion (medium to large) chopped
  • 3-4 Tbsp cilantro-parsley marinade (more to taste)
  • ½ tsp cumin
  • 1 Tbsp salt
  • 1 tsp Ras el Hanout
  • 2 cubes low sodium veggie broth
  • 1 small can diced tomatoes
  • 3 to 4 large carrots, cut into small pieces
  • 4 medium potatoes, cut into small pieces
  • 1 medium sweet potato (optional, you can use one more potato instead)
  • 1/2 cup (preferably brown) rice
  • 1 zucchini (around 12oz)
  • 2 liters of filtered water
  • Large cooking pot


Cilantro-Parsley Marinade:

Mince cilantro, parsley, and garlic. Mix with the rest of the ingredients, cover and set aside.


In the bowl, mash the tofu with a potato masher or your hands. Add the beefless ground and the rest of the meatball ingredients. Mix with your hands until everything is incorporated into a firm paste. Form the meatballs with your hands and place on a tray.


Sauté onions until golden brown at medium to high temperature.

Add cilantro-parsley marinade, cumin, salt, Ras el Hanout and veggie broth cubes. f necessary, decrease temperature, stir regularly and let cook for up to 5 minutes until everything is evenly browned.

Add the diced tomatoes, stir to mix everything, and let simmer at medium temperature for 5 minutes.

Add the carrots, stir in and let simmer for another 3 to 4 minutes.

Add potatoes, water and rice, mix carefully, increase temperature and bring to a boil.

When the soup is boiling, decrease temperature to medium low, carefully stir, and add meat balls and zucchini.

Let simmer with lid for 10-15 min.

Take from heat and let sit for another 5 minutes before
serving (I recommend that, the soup tastes so much better, when you let it sit for a while!).

Never Miss a Recipe!

You Might Also Like

No Comments

Leave a Reply

Skip to Recipe