Grilled “Meat”balls with Charred Broccoli and Dipping Sauces

Grilled “Meat”balls with Charred Broccoli and Dipping Sauces

Meatballs, to me, are the ultimate comfort food, treat, and basic meal all rolled into one. 

Half of the household eats meat and fish (that’s me) and the other half is vegetarian, so to simplify I make these with textured soy protein (TSP).

I’ve tried making them with crumbled tofu too, but they’re just not the same.

If you do eat meat, you can substitute it for any minced meat, but a combination of chicken and pork mince would be my first choice for the flavour and fat content (fat = flavour and moisture). 

Or just try this TSP version anyways, because the result is surprisingly meat-like. I say this in case you’re a carnivore and slightly freaked out by pseudo/fake/non-meats.

For me there’s nothing quite as delicious as fennel meatballs (since first trying the pork and fennel polpette from Polpo) but any other spice, like cumin or Chinese five spice, or even herbs like basil will do. They will change the “mood” of the dish depending on what you use, but that’s a good thing, depending on how you’re feeling.


  • 175g (unhydrated) textured soy protein (TSP); or 250g minced meat
  • 1/2 an onion, very finely chopped
  • 4 tsp almond  flour
  • 4 tsp coconut flour
  • 1 tbsp fennel seeds
  • 2 eggs
  • A generous pinch of salt
  • 1 head of broccoli
  • Olive oil for drizzling


If you’re using real meat, skip the next 3 steps and just start from mixing everything in a bowl.

Before you work with the TSP you’ll need to hydrate it. Place it on a medium-sized bowl, pour enough boiling water to cover it plus an additional couple of fingers, and let it sit for 5min or so. The TSP will absorb the water, swell up and lose its crunch.

After this time, place a colander over the sink and pour the water and TSP into it. Using the back of a spoon (or your hands), push the TSP into the colander and squeeze as much of the water out as possible.

Let it sit on the colander dripping for a few minutes to get rid of remaining water. Less water means easier to work with balls.

Tip the drained TSP (or the meat) into a medium/large bowl, then add the finely chopped onion, flours, salt, fennel and eggs, and use a spoon to mix it all well.

It should form a rather tacky mix that clumps together when pressed. If you feel it’s not sticking enough because it’s too wet, add a bit more flour.

If you feel it’s too broken up and shaggy, which it shouldn’t be with the 2 eggs but you never know, perhaps you’ll need to add a splash of milk or a bit more egg until it just comes together. 

Use a spoon to scoop equal amounts of the “meat” – I usually use a 4-teaspoon measuring spoon.

Lightly compact each ball with your hands and roll them between your palms, then place them onto baking parchment on a baking tray.

Roast in a pre-heated oven at 180ºC, untouched, for 15min or so.

During these 15minutes, steam a broccoli broken into florets for just as long. Steaming the broccoli first allows it to cook through and lose the tough initial bite, and prevents it from drying out too much in the oven later.

After these 15min the meatballs should be cooked enough that you can pick them up . If you try to pick one up and it breaks up, put it back in the oven a bit longer until they hold their shape when picked up.

Roll the meatballs upside down on the tray, scatter the steamed broccoli between then, sprinkle a bit of salt and drizzle olive oil over the broccoli, and pop back in the oven for a further 10min.

If you have any cauliflower leaves, shred these and sprinkle them over the broccoli to crisp. Not necessary but recommended if you have any lying around.

It’s done when the meatballs are golden and the broccoli florets have started to char and crisp.

I like to serve this in one big central bowl, with charred tomato salsa and pesto on the side, to eat with our fingers and dunk into sauces as one fancies.

If you feel there’s not enough green in there, you can add a green side salad with some chopped olives and pepitas.

Or you can pile it over some (cauliflower or other) rice, or noodles even.

Back to Top