Sylheti shatkora beef: the curry that smells like home
Slow-cooked beef, deep golden onions and whole spices, lifted by the rind of shatkora, the wild citrus of Sylhet. Where to find it in the UK, how to tame its bitterness, and what to do if you can't get any.
By S&T
12 October 2026 · 11 min read
Shatkora is a knobbly, thick-skinned citrus that grows in the hills around Sylhet, in north-east Bangladesh. You don't eat its flesh, which is fiercely bitter. You cook its rind. Simmered into a beef curry, it softens and gives off a sharp, floral, almost bergamot-like fragrance that cuts straight through the richness of the meat. If you know it, you know it. If you don't, this is the dish to start with.
T here. In my mum's kitchen, shatkora beef meant someone had just come back from Sylhet. A relative would arrive from Heathrow with a suitcase that was mostly food, and somewhere near the bottom, inside a carrier bag inside another carrier bag, there would be shatkora. By the evening the whole stairwell smelled of it. I didn't like it as a child. I picked every piece of rind out and lined them up along the rim of my plate like a little fence. Somewhere around my second year of university, on a visit home, I started eating the fence. I haven't stopped.
S now. My family isn't Sylheti, a fact T brings up whenever I get something wrong in this recipe. The first time I had it was at T's parents' house, before we were married, when I was still trying very hard to make a good impression. I bit into a big piece of rind as if it were a potato. It was not a potato. T's mum laughed, took it off my plate, and gave me a much smaller piece pressed into a mouthful of rice and gravy. That, it turns out, is the whole technique. Same ingredient, smaller bite, more gravy.
A huge share of Britain's Bangladeshi community has roots in Sylhet, which is why frozen shatkora sits in the freezers of so many grocers from Whitechapel to Birmingham, Bradford and Oldham. It's one of those ingredients that quietly travelled with families and stayed.
Finding shatkora in the UK
- Frozen: the easiest option. Look in the freezer at Bangladeshi and South Asian grocers, usually sold whole or in wedges in a bag. Bring home only what you'll use and keep the rest frozen.
- Fresh: imported in season, usually in summer, and sold whole. It should feel heavy, with firm, glossy, green to yellow-green skin.
- Pickled (shatkora achar): sold in jars. Lovely on the side of the plate, but it's oily, salty and already spiced, so it isn't a straight swap for fresh or frozen rind in this curry.
- Ask at the counter. If it isn't on the shelf, many shops will tell you when it's due in.
We buy ours frozen, from the Bangladeshi grocer round the corner from T's parents, mostly because we're there on Sundays anyway and it saves a separate trip. A bag of wedges lives at the back of our freezer, behind the peas, with its label long since worn off. We know what it is by the shape.
Fresh ones do turn up in summer, and they smell incredible on the shelf. One July, S bought three because they "looked perfect", which is how we came to eat shatkora in some form for most of a fortnight. For this curry we honestly prefer frozen. It's easier to cut, you take exactly what you need, and the rest waits for next time. S is convinced the frozen rind cooks a little softer. T thinks that's wishful thinking. Neither of us has done a blind test, so take your pick.
Honest substitutions
There is no true substitute. Shatkora has its own perfume, and nothing in a supermarket matches it. These will give you a good, citrus-lifted beef curry, just not the same one.
- Lime and grapefruit: the finely pared zest of 1 lime and a 5cm strip of grapefruit peel (with a little white pith), added for the last 20 minutes. The grapefruit brings the gentle bitterness. Fish out the peel before serving.
- Makrut (kaffir) lime leaves: 3 or 4, torn, added with the lime zest for a more floral note.
- A squeeze of lime juice at the end brightens the gravy, but on its own it tastes sour rather than fragrant.
- Dried limes (loomi) are earthy and smoky. Good in other curries, but they take this one somewhere else.
TObjection. The substitutions section opens with "there is no substitute".
SOverruled. Make it with lime tonight, buy shatkora at the weekend, then make it again.
TYou can't overrule me. You're not a judge.
SI'm holding the spoon. Same thing in this kitchen.
What makes it work
- A braising cut. Chuck, shin or bone-in stewing beef turns tender over a long, gentle simmer. Lean steak goes tough.
- Patient onions. Fried slowly until deep golden, they give the gravy its sweetness and colour.
- Bhuna, then braise. Frying the spices and meat together until the oil separates builds the flavour before any water goes in.
- Shatkora goes in late. Add it for the last 30 to 40 minutes, so the rind turns tender without turning the whole pot bitter.
Ingredients (serves 4 to 6)
- 1kg beef braising steak (chuck or shin), cut into 4cm chunks, or 1.2kg bone-in stewing beef
- ¼ shatkora (about 100g prepared rind), fresh or frozen, or up to ½ if you love the bitterness
- 4 tbsp neutral oil (see the tip on mustard oil)
- 3 medium onions (about 450g), thinly sliced
- 2 bay leaves
- 5cm cinnamon stick or cassia bark
- 4 green cardamom pods, lightly crushed
- 4 cloves
- 1½ tbsp ginger paste
- 1½ tbsp garlic paste
- 1 tsp ground turmeric
- 1½ tsp chilli powder (less for a milder curry)
- 2 tsp ground coriander
- 1 tsp ground cumin
- 1½ tsp salt, plus more to taste
- 500ml just-boiled water
- 4 to 6 green chillies, slit lengthways
- Optional: 3 medium potatoes (about 450g), peeled and quartered
- A small handful of coriander, chopped
- Plain boiled rice, to serve
Preparing the shatkora
- If it's frozen, let it soften for 10 to 15 minutes, just enough to cut. Wash fresh fruit well.
- Cut it into wedges, like an orange. Slice away the flesh and seeds from each wedge and discard them. They're very bitter.
- Cut the rind, with its white pith, into pieces about 3cm long. If the pith is thicker than 1cm, trim some of it away.
- Drop the pieces into boiling water for 3 minutes, then drain. We do this every time now. If you like it punchy, skip it, as T would quite like to.
Method
- Heat the oil in a large, heavy pan or karahi over a medium heat. Add the onions and a pinch of the salt. Fry, stirring often, for 15 to 20 minutes until deep golden. Turn the heat down if they colour too fast at the edges.
- Add the bay leaves, cinnamon, cardamom and cloves and stir for 30 seconds until fragrant.
- Add the ginger and garlic pastes and cook for 2 minutes, stirring, until the raw smell has gone.
- Mix the turmeric, chilli, coriander and cumin with 3 tbsp water to make a loose paste. Add it to the pan and cook for 2 to 3 minutes, stirring, until the oil starts to separate at the edges. Add a splash of water if it catches.
- Add the beef and the rest of the salt. Turn the heat to medium-high and stir to coat. The meat will release its juices; keep cooking and stirring for 15 to 20 minutes until that liquid has cooked off and the oil separates again. This is the bhuna, and it's where the flavour comes from.
- Pour in the 500ml just-boiled water, scraping up anything stuck to the bottom. Bring to a simmer, cover and turn the heat to low. Cook for 1 hour, stirring every 15 minutes and adding a splash of hot water if it looks dry.
- Add the shatkora pieces, the green chillies and the potatoes, if using. Cover again and simmer gently for 30 to 40 minutes more, until the beef is completely tender, the potatoes are soft all the way through and the rind is soft enough to cut with a spoon. Bone-in or shin may need a little longer.
- Take the lid off for the last 10 minutes and let the gravy reduce until it's thick and glossy and clings to the meat.
- Taste for salt, and taste a piece of rind. If the gravy is too bitter for you, a little more salt and a splash of hot water will soften it. Leave it off the heat, covered, for 10 minutes, then scatter over the coriander.
- Serve with plain rice. People eat the rind or leave it on the side, as they prefer.
How we landed on this version
We cooked this three times before writing it up, all in the same heavy 28cm casserole, the one with the chipped lid that has survived two house moves.
The first pot used half a shatkora, unblanched, because that's roughly how T remembers it at home. T ate two bowls and called it "correct". S ate one, slowly, and drank a lot of water. Our honest view is that it was too bitter for anyone who didn't grow up with it, and since this post is meant to be your first shatkora beef, not your fifth, we changed it.
The second pot used a quarter, blanched for 3 minutes. That's the one in the recipe above. The fragrance was still all through the gravy, but the bitterness had gone from a shout to a pleasant nudge at the back of your mouth. T admitted, after some time, that it was "a reasonable settlement". The third pot was shin, in the oven, mostly so we could check the oven timings. It came out more tender than either hob version, and the gravy needed 5 more minutes with the lid off to thicken.
A few things the recipe can't fully tell you. On our hob, the onions took the full 20 minutes, not 15, and the bhuna was closer to 20 minutes too. Don't rush either. The chilli powder is 1½ tsp because that's what we could agree on. T adds the extra green chillies at the table. S pretends not to see.
SIn fairness, a quarter is still a lot of shatkora if you've never had it.
TIn fairness, half is how it's meant to be.
SSo we put both in the ingredients list and let people decide.
TThat's not fairness. That's an appeal.
Frying safely
- Use a deep, heavy pan and never leave hot oil unattended.
- Pat the beef dry if it's wet before it goes in, so the oil spits less.
- If oil ever catches fire, turn off the heat and cover the pan with a lid or damp tea towel. Never use water.
Storing, reheating and the rice
Like most slow-cooked curries, this one is often better the next day, as the shatkora settles into the gravy. Cool it quickly, cover and refrigerate within 2 hours, and eat within 3 days, or freeze for up to 3 months and defrost in the fridge. Reheat once only, until it's steaming hot all the way through.
Rice needs extra care. Cooked rice can carry spores that survive cooking, so if you're making it ahead, spread it out to cool and get it into the fridge within 1 hour. Eat it within 24 hours and reheat it only once, until piping hot.
On our table
Plain white rice, always, and plenty of it, because this gravy is the point. Next to it, usually a thin masoor dal and an aloo bhorta: boiled potato mashed with fried onion, green chilli and coriander. If we're feeling organised, there's also a plate of sliced cucumber and red onion with a squeeze of lime. That's the whole meal. It doesn't need anything clever.
T's mum puts potatoes in hers, in big chunks, and they're quietly the best thing in the pot, because they drink up the gravy and the shatkora at the same time. That's why they're in the ingredients as an option. We've also had it made with lamb at a cousin's house, and it works, but beef is the one we keep coming back to.
And the leftovers are honestly worth planning for. By the next day the rind has gone soft and almost marmalade-like, and the gravy has turned more fragrant overnight. We make the full pot even when it's just the two of us.

Cook it with Jan
Want to make sylheti shatkora beef curry tonight? Jan will scale it for your crowd and walk you through every step.
- Bangladeshi recipes
- Sylheti food
- Beef
- Shatkora
- Slow cooking
- Make ahead
About the authors
The couple behind Kookbook
Married, British Bangladeshi, and usually arguing about the correct amount of chilli. We test the recipes the internet won't stop talking about, work out what actually tastes good, and share the version we'd make again.