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
Healthy butter chicken curry | Bibbyskitchen recipes | Curry

Healthy Butter Chicken Curry

Healthy butter chicken curry

We don’t order in often, but when we do, it’s usually curry from our favourite Indian restaurant – Chicken korma x two, one Lamb Jal Frezi and a medium hot Chicken Tikka Masala. Plus buttered naan, of course. It comes with heaps of basmati rice, whether you like it or not. With the leftovers, we make gingery fried rice. This healthy butter chicken curry tastes a bit like the tikka masala, only less creamy, but still deeply flavourful.

Healthy butter chicken curry

The secret to any good curry rest squarely on the sauce. A formidable sauce needs a well-balanced combination of spices, none dominant, but rather supportive. Heat is like a shoe, it needs to fit comfortably with personal preference. I like my mine with a fair bit of clout but not shudderingly so. If the heat veils the flavours completely, the mark is over-shot. For this recipe, I’ve aimed for middle of the road, to curry favour with all. Feel free to add extra chilli at the end, if you think it needs it.

A quick word about the recipe:

  • I’ve used chicken fillets. It’s lower in fat than brown meat (thighs and drumsticks), and cooks in half the time. That said, skinless, boneless thighs are more flavourful.
  • Cream is replaced by full cream yoghurt. You can also use Double cream yoghurt, if you like. Low fat yoghurt is not suitable. Because of it’s low fat content, the sauce will split.
  • Freshly grated ginger is essential to this dish. It adds a sweet, gentle heat and zingy freshness.
  • Marinating the chicken overnight will improve the flavour of the chicken. If you’re short on time, 30 minutes will do.
  • I’ve added 1 tablespoon of butter to the recipe at the end. This is optional. Stirring it into the curry just before serving adds a top note of buttery smoothness.
  • Curry always tastes better the second day!
Healthy butter chicken curry

Healthy Butter chicken curry

Healthy butter chicken curry

Serves 6-8

Marinade
  • 250ml (1 cup) full cream yoghurt
  • 4cm piece ginger, grated (about a heaped tablespoon)
  • 5ml (1tsp) ground turmeric
  • 15ml (1 tablespoon) garam masala
  • 10ml (2 teaspoons) ground cumin
  • 5ml (1 teaspoon) ground coriander
  • 2.5ml (1/2 teaspoon) chilli powder
  • generous pinch of dried red chilli paste
  • 15ml (1 tablespoon) lemon juice
  • 5ml (1 teaspoon) fine salt

 

  • 1kg (8)chicken fillets, skinless, boneless, cut into cubes
  • 15ml (1 tablespoon) coconut oil
  • 1 large brown onion, finely diced
  • 2 cloves garlic, minced
  • 30ml (2 tablespoons) tomato paste
  • 250ml (1 cup) tomato passata
  • 375ml (1 1/2 cups) weak chicken stock or water
  • 2 star anise
  • 1 thick cinnamon stick, broken in half
  • 15ml (1 tablespoon) salted butter (optional)
  • fresh coriander and lemon wedges, to serve

 

  1. To make the marinade, place all the ingredients in a non-metallic bowl and mix to combine. Add the chicken pieces and toss to coat. Cover and set aside to marinate for about 30 minutes.
  2. Heat the coconut oil in a wide-based pan and sauté the onion until softened, about 8 minutes. Add the garlic and cook for another minute.
  3. Add the chicken to the onions, scraping in all the marinade. Braise for several minutes. Add the tomato paste, passata and stock or water, if using, and stir to coat the chicken in the sauce, then add the star anise and cinnamon. Cover partially and simmer until cooked through, about 30-35 minutes.
  4. If the sauce looks a little on the thin side, turn the heat up and cook for an additional 5 minutes to reduce. Stir in the butter, if using. Serve with brown basmati rice, coriander and lemon wedges.

 

If you love curry, here are three more Bibby’s Kitchen favourites:

Cape Malay chicken curry with roasted bananas

Coconut and pistachio chicken korma

Lamb curry with mango atchar and masala cashew nut salad

 

 

 

 

 

4 Comments. Leave new

  • we make gingery fried rice. …………… that sounds interesting. How do you do yours please 🙂 Happy woman’s day

  • Dianne Bibby
    11 August 2019 6:57 am

    And to you Paula! Usually, we pan-fry red peppers, sprouts, freshly grated ginger and chopped scallions. Add 1 lightly whisked egg and rice, along with soy sauce, chilli flakes and plenty lime juice. If you have some leftover roast chicken, shred and toss through to heat. Hope that helps. All the best Di

  • Hi, I’ve tried this recipe 5 times and only managed to get it right once. Sauce keeps splitting. I leave chicken to marinade for 2 days will that cause the split?

  • Dianne Bibby
    18 June 2021 7:59 am

    Hi Karen. I think the issue is the 2 day marinating. The salt, lemon juice and yoghurt work together to tenderise the protein. If left too long, this breaks protein down too far, releasing the natural juices of the chicken and changing the structure of the protein. It also alters the consistency of the yoghurt, causing it to curdle. A quick marination with a full cream or even double cream natural yoghurt will sort it out. Hope this helps. It’s what I do and I’ve never had a split. Good luck. Please do let me know if you come right.

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