Meatballs in sauce are the best thing you can possibly put on rice. Period. And this yellow curry version, with that peanut-shallot crunch on top, is exactly the kind of dish you enjoy preparing on a Saturday afternoon without looking at the clock.

On the plate, the meatballs are an amber caramel color, glossy, half-submerged in a golden sauce that catches the light. The scent of yellow curry infuses everything — lemongrass, turmeric, a gentle spicy heat that rises as soon as you lift the lid. Under the fork, they give way easily, tender at the heart with that slight surface resistance that shows they’ve been properly seared. And that crunch on top: it cracks with every bite, like crushed chips on a dish that didn’t need them but is incomparably better with them.
Why you’ll love this recipe
Ingredient Notes

All the ingredients for the yellow curry meatballs: ground turkey, fresh herbs, coconut milk, curry paste, and crunchy garnish.
- Ground turkey : It absorbs spices very well and stays juicy if you don’t overwork it. Avoid extra-lean grinds (less than 7% fat) — the meatballs would be dry and compact.
- Yellow curry paste : This is the central element. A good quality Thai paste, Mae Ploy or Maesri brand if you can find them, is much more concentrated than industrial pastes. With a good paste, one tablespoon is enough. With something bland, double it without hesitation.
- Coconut milk : Full fat, not light. Light coconut milk yields a watery sauce that will never coat properly. The richness of full fat milk is what creates the sauce’s texture.
- Crispy shallots : Store-bought or homemade by frying very thin slices in hot oil. Important: they must be really dry and crunchy before being mixed with the peanuts, otherwise the crunch softens in two minutes.
- Fresh cilantro : Inside the meatballs, it brings a slightly aniseed herbal note that cuts through the richness of the sauce. If you hate cilantro, use flat-leaf parsley instead — though it’s a bit less interesting.
Shaping the meatballs
Mix the ground turkey with the panko, salt, garlic powder, and chopped fresh cilantro. Just enough to incorporate — if you over-knead, the meat tightens and the meatballs will be rubbery. Roll portions the size of a large walnut between slightly damp palms. The mixture should feel a bit sticky, not melting. About twenty meatballs is the right amount for this sauce. Place them on a board as you go — it’s satisfying to see these little things lined up.

Browning is not optional
Heat avocado oil in a large pan over medium heat. When it starts to shimmer slightly, place the meatballs in without moving them. That low sizzle of first contact is what you want to hear. Leave them alone for 3 to 4 minutes until the bottom is light caramel, almost amber. Flip them and do the same on the other side. They aren’t cooked through at this stage. That’s intentional — they will finish in the sauce.
The sauce takes shape
Push the meatballs to the edges of the pan. In the center, sauté the shallot slices with the yellow curry paste. The paste heats up, loosens, and the scent of lemongrass and turmeric fills the kitchen in 30 seconds. Pour in the coconut milk and broth, stir to incorporate everything, cover, and simmer for 5 minutes. Add the soy sauce and brown sugar. The cornstarch dissolved in a little water comes last: a few seconds of bubbling and the sauce takes on that coating, slightly glossy consistency that clings beautifully to the meat.
The crunch, the final touch
While the sauce reduces, roughly chop the salted roasted peanuts with the crispy shallots. No food processor — just a knife, a few strokes, irregular pieces. This heterogeneous texture is exactly what makes the crunch interesting. Serve the meatballs over jasmine rice, a generous ladle of sauce on top, and a good pinch of garnish at the last moment so it keeps all its crunch!

Tips & Tricks
- Don’t skip browning the meatballs. That caramel crust, even a light one, brings a depth of flavor that the sauce alone cannot recreate.
- If your sauce seems too thin after the starch, simmer uncovered for 2-3 more minutes over medium heat. It will thicken up effortlessly.
- Get the jasmine rice going as soon as the meatballs hit the pan — the timings coincide perfectly and you’ll serve everything hot at the same time.

Can I prepare the meatballs in advance?
Yes, raw meatballs keep for 24h in the refrigerator, well covered. You can also shape and freeze them raw on a tray, then transfer to a bag — they keep for 3 months. Add 3-4 extra minutes of simmering if cooking directly from frozen.
My sauce is too thin, what should I do?
Remove the lid and simmer over medium heat for an extra 3-5 minutes; the sauce will concentrate. If that’s not enough, mix a teaspoon of cornstarch with a little cold water and stir it in — it thickens in 1 minute.
Can I replace turkey with another meat?
Ground chicken works perfectly and gives a very similar result. Veal is also a good option, milder and slightly richer. Avoid beef — its flavor is too strong and will overpower the curry.
Where can I find Thai yellow curry paste?
In Asian grocery stores, in the canned goods aisle — Mae Ploy or Maesri brands. Some well-stocked supermarkets also have it in the international aisle. Failing that, an industrial supermarket curry paste works, but you’ll need to double the amount as it’s much less concentrated.
Can I use light coconut milk?
Technically yes, but the sauce will be thinner and less creamy. You would need to compensate with more cornstarch, but the result won’t be the same. Full fat coconut milk is truly the base of the dish.
How to store and reheat leftovers?
In the refrigerator in an airtight container for up to 3 days. Reheat over low heat, adding a splash of broth or water — the sauce thickens a lot when cold. Add the peanut-shallot crunch at the last moment, never in advance.
Yellow Curry Turkey Meatballs with Peanut-Shallot Crunch
Thai-Inspired
Main course
Herb-infused turkey meatballs, browned in a pan and simmered in a yellow curry coconut milk sauce. With a peanut-shallot crunch for texture contrast.
Ingredients
- 450g ground turkey
- 55g (½ cup) panko breadcrumbs
- ½ tsp garlic powder
- 1 tsp salt
- 15g (½ cup) chopped fresh cilantro
- 1 tbsp avocado oil
- 1 (40g) shallot, finely sliced
- 1 tbsp (20g) yellow curry paste
- 400ml (1 can) full fat coconut milk
- 120ml (½ cup) chicken or vegetable broth
- 1 tbsp brown sugar
- 1 tbsp (15ml) soy sauce
- 1.5 tbsp (12g) cornstarch
- 1.5 tbsp (22ml) cold water
- 75g (½ cup) salted roasted peanuts
- 25g (½ cup) crispy shallots
- 280g (1.5 cups) dry jasmine rice
Instructions
- 1Mix turkey, panko, salt, garlic powder, and cilantro. Form about 20 meatballs the size of a large walnut.
- 2Start cooking the rice according to package instructions.
- 3Heat oil in a large pan over medium heat. Brown meatballs on all sides, 6-8 minutes total. Set aside on the edges of the pan.
- 4Sauté sliced shallot and curry paste in the center of the pan for 2 minutes, until shallots soften.
- 5Pour in coconut milk and broth. Stir, cover, and simmer for 5 minutes until meatballs are cooked through (70°C internal).
- 6Add soy sauce and brown sugar. Dissolve starch in cold water and stir in. Let thicken for 1-2 minutes over medium heat.
- 7Roughly chop peanuts and crispy shallots together.
- 8Serve meatballs and sauce over rice. Sprinkle with peanut-shallot crunch just before serving.
Notes
• Curry paste: artisanal Thai pastes (Mae Ploy, Maesri) are much more concentrated. One spoon is enough. With industrial paste, use 2 to 3 spoons.
• Make ahead: raw meatballs keep for 24h in the fridge or 3 months in the freezer. The sauce can also be prepared a day ahead and reheated gently.
• Storage: 3 days in the fridge in an airtight container. Reheat over low heat with a bit of broth. Always add fresh crunch when serving.
Nutrition Facts (per serving, estimated)
| 750 kcalCalories | 38gProtein | 78gCarbs | 29gFat |