Deprecated: Return type of Aventura\Wprss\Core\DataObject::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/includes/Aventura/Wprss/Core/DataObject.php on line 783

Deprecated: Return type of Aventura\Wprss\Core\DataObject::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/includes/Aventura/Wprss/Core/DataObject.php on line 808

Deprecated: Return type of Aventura\Wprss\Core\DataObject::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/includes/Aventura/Wprss/Core/DataObject.php on line 770

Deprecated: Return type of Aventura\Wprss\Core\DataObject::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/includes/Aventura/Wprss/Core/DataObject.php on line 795

Deprecated: version_compare(): Passing null to parameter #2 ($version2) of type string is deprecated in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/Ultimate_VC_Addons/Ultimate_VC_Addons.php on line 1484

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 44

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 24

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 60

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 76

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 124

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 97

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 109

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 136

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 83

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 44

Deprecated: Return type of RebelCode\Wpra\Core\Entities\Collections\WpEntityCollection::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Entities/Collections/WpEntityCollection.php on line 97

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 60

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 76

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 124

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 97

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 109

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 136

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 83

Deprecated: Return type of Twig\Node\Node::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/vendor/twig/twig/src/Node/Node.php on line 213

Deprecated: Return type of Twig\Node\Node::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/vendor/twig/twig/src/Node/Node.php on line 221

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Database/WpdbTable.php on line 124

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Database/WpdbTable.php on line 105

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Database/WpdbTable.php on line 140

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Database/WpdbTable.php on line 159

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 124

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 97

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 109

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 136

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 83
Ottolenghi's ricotta and oregano meatballs | Bibbyskitchen Recipes

Ottolenghi’s Ricotta and oregano meatballs

Ottolenghi's ricotta and oregano meatballs

Some of the most popular recipes on the blog are meatballs, from a Spanish inspired recipe to creamy Swedish meatballs and local favourite, North African meatballs. I’m confident that Ottolenghi’s ricotta and oregano meatballs will soon be a regular at your dinner table, too.

Ottolenghi's ricotta and oregano meatballs

In his latest cookbook, Simple, Ottolenghi assures us that these meatballs are super light and fluffy. If you’re a seasoned ‘meatballer’ you’ll know that sturdy flavourings are as important as the lightness of the meatball itself. Whenever I cook a new recipe, I scan the ingredient list first. Here, I needed only ricotta. Initially, I thought 250g ricotta might be a bit much but it’s this, that makes them defiantly light. For the breadcrumbs, I used a good old government loaf. It makes the softest crumbs.

Ottolenghi's ricotta and oregano meatballs

A note on the sauce : I never intend to derail a recipe. In fact, I kept it together rather respectfully up until the sauce stage. I love cooking with wine and find it almost impossible not to add a splash, especially if the ingredients lean towards something Italian. You can leave the red wine out, but if you’re prone to do the same, a third of a cup should suffice. To deepen the tomatoey flavour, I also stir in some tomato paste. If you don’t have paste, just leave it out. No one will be any the wiser. To mimic the herby flavours in the tomato sauce, I pan-fry oregano sprigs and scatter them over the top. It’s so delicious. They’re like wafer-thin, herb crisps.

So what did the household think of the ricotta and oregano meatballs? A big thumbs up here. Everyone loved them and commented (unprompted), that they were soft and yes, super light. The flavour will take you to Little Italy, a place most of us would be more than happy to go.

Ottolenghi's ricotta and oregano meatballs

 

Ottolenghi’s ricotta and oregano meatballs

Serves 6

  • 30ml (2 tablespoons) olive oil
  • 2 white onions, finely diced
  • 2 cloves garlic, minced
  • several sprigs oregano, leaves roughly chopped
  • 30ml (2 tablespoons) tomato paste
  • 80ml (1/3 cup) red wine
  • 400g tin chopped tomatoes
  • 600ml chicken stock
  • 500g free-range beef mince (lean)
  • 100g fresh brown breadcrumbs (about 2 thick slices)
  • 250g ricotta
  • 60g parmesan, grated
  • 1 egg plus 1 yolk, lightly whisked together
  • several stems flat leaf parsley, roughly chopped
  • salt and freshly ground black pepper

 

  1. Heat 1 tablespoon oil in a pan and sauté the onion until softened, about 8-10 minutes. Remove half the onion and set aside for the meatballs.
  2. Add the garlic and oregano to the onions in the pan and cook for another minute or two, then add the tomato paste and stir through. Pour in the wine and reduce by half.
  3. Add the chopped tomatoes and half the stock. Season lightly with salt and pepper, cover partially and simmer for 10-15 minutes.
  4. For the meatballs, combine the beef, breadcrumbs, ricotta, parmesan and reserved onions in a mixing bowl. Season with 3/4 teaspoon salt and black pepper. Add the egg mixture and parsley and mix together by hand. Shape into evenly sized balls. You’ll get about 18 per batch.
  5. Heat the remaining oil in a non-stick pan. Brown the meatballs on both sides, turning gently with a spoon. Place the meatballs in the tomato sauce, add the remaining stock, cover and simmer until the sauce is thickened and the meat, cooked through, about 25-30 minutes.
  6. For the crispy oregano: Heat 20ml olive oil in a pan and fry 3-4 sprigs oregano until crisp. Scatter the oregano over the meatballs and drizzle the pan oils over, too.

 

More meatball recipes to pin to your must-make list:

Stuffed cabbage with freekeh meatballs

Barbecue meatballs with bacon gravy

Prosciutto Meatballs and spaghetti

 

 

14 Comments. Leave new

  • Made your oxtail in red wine recipe for fathers day lunch on Sunday – it was an absolute hit! Plus made enough to freeze for a mid week supper- Bonus!

  • Dianne Bibby
    18 June 2019 11:16 am

    Wow! That must’ve been a huge pot. I love doubling up recipes like these. There’s nothing better than having a meal stashed away in the freezer.

  • Good heavens this looks amazing!

  • Dianne Bibby
    18 June 2019 3:44 pm

    Thanks, Mari. Adding the ricotta makes the meatballs almost creamy. And then there’s also the parmesan. So delicious.

  • Hanlie Roets
    8 April 2021 3:55 pm

    These meatballs look absolutely delicious. What kind of starch would be a good companion?

  • Dianne Bibby
    11 April 2021 6:32 pm

    Thank you Hanlie. So tender and soft. Good old fashioned mashed potatoes are pure comfort. I’d add some finely chopped flat leaf parsley to the mash, extra butter and maybe a handful of grated parmesan cheese too. Any Italian flavours would work. Buttery tagliatelle will be perfect.

  • I came here to find out what to do with the ricotta because the original fails to mention it: https://www.theguardian.com/lifeandstyle/2013/jun/28/ricotta-recipes-yotam-ottolenghi
    If I’m not mistaken! Thanks for clearing it up and congrats on your amazing pictures!

  • Dianne Bibby
    3 May 2021 11:40 am

    So glad you found the missing step here, Simon. They are rather marvellous, these meatballs.

  • hi any good ideas what to replace the ricotta with if we are dairy free

  • Dianne Bibby
    25 June 2021 9:32 pm

    Hi Laura. Silky tofu could work or, for a softer creamier texture, a vegan ricotta made from almond or cashew milk is the next best thing. A tablespoon of nutritional yeast will add a lovely cheesy flavour too. Hope that helps.

  • These look delicious. I’m going to make them on Tuesday, my next day off. Your suggestion of tagliatelle sounds perfect as well. Thank you x

  • My pleasure Karen. I hope these tender meatballs will become a regular favourite at the dinner table. They’re also excellent on bruschetta, for casual weekend appetisers.

  • Does this lend itself to freezing. I’m looking ahead to Christmas and want to have some meals ready prepared for serving over a four day holiday

  • Hello Liz. Sorry for the late reply. Comment landed in spam folder. Yes, meatballs are excellent to freeze. I always make sure the sauce covers the meat. Once defrosted, just reheat gently.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Menu

Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/google-captcha/google-captcha.php on line 216