
Thai Coconut Milk Panna Cotta with Toasted Coconut and Peanut Granola
A silky-smooth coconut panna cotta infused with Thai flavors—sweetened with palm sugar and brightened by a touch of lime and fish sauce. Topped with a crunchy granola of toasted peanuts, coconut flakes, and sesame seeds, and finished with tangy Greek yogurt. Elegant enough for dinner parties, yet deeply satisfying.
- Prep
- 25 min
- Cook
- 20 min
- Wait
- 5 hr
- Total
- 5 hr 45 min
- Makes
- 6 servings (6 individual ramekins or glasses)
Steps
Before you start
- Read the recipe completely to understand timing—panna cotta needs at least 5 hours to set, so plan ahead.
- Use full-fat coconut milk (not light) for the silkiest texture; shake the can well before opening.
- Have gelatin or agar-agar at room temperature and measured out before you begin heating the coconut milk.
Toast granola componentsOven 325°F / 165°C
- Preheat oven to 325°F (160°C).
- On a baking sheet, spread the chopped peanuts, shredded coconut, and sesame seeds in a single layer.
- Toast in the oven for 8–10 minutes, stirring once halfway through, until the peanuts are golden and fragrant and the coconut begins to brown lightly.
- Watch closely to avoid burning.
- Remove and let cool for 2 minutes on the pan.
+ Show details− Hide details
Ready when: Peanuts are golden, coconut has light golden-brown spots, sesame seeds smell fragrant
Tip: Stir at the 5-minute mark so the sesame and coconut don't burn on the edges while peanuts finish toasting.
Make granola crumbleOven 325°F / 165°C
- While the toasted mixture cools, whisk together the palm sugar, melted coconut oil, salt, and chili flakes (if using) in a medium bowl.
- Once the toasted ingredients are cooled enough to handle, transfer them to the bowl and toss well until every piece is coated with the oil and sugar mixture.
- Spread on the baking sheet again and return to the 325°F (160°C) oven for 5–7 minutes, stirring once, until the mixture is golden, crispy, and fragrant.
- Transfer to a plate to cool completely; it will crisp up further as it cools.
- Once cool, you can break larger clumps into smaller pieces.
+ Show details− Hide details
Ready when: Granola is golden, smells toasty, and feels crispy when a piece is broken
Tip: Don't skip the second toasting—this creates the crispy texture. The granola will firm up as it cools, so it may seem slightly soft straight from the oven.
Bloom gelatin
- Pour the cold water into a small bowl.
- Sprinkle the powdered gelatin evenly over the water (do not stir yet).
- Let sit for 2–3 minutes so the gelatin absorbs the water and becomes spongy (blooming).
- This prevents lumps when you heat it.
+ Show details− Hide details
Ready when: Gelatin looks spongy and no longer has dry powder on top
Tip: Do not skip blooming; pouring dry gelatin into hot liquid causes lumps that won't dissolve smoothly.
Heat coconut milk and dissolve gelatinOven 180°F / 80°C
- Pour the coconut milk into a small saucepan.
- Heat over medium heat, stirring occasionally, until steaming and just starting to bubble around the edges (do not let it boil hard, around 175–180°F / 80–82°C).
- Remove from heat.
- Add the bloomed gelatin to the hot coconut milk and whisk for 20–30 seconds until fully dissolved and smooth.
- Let the mixture cool at room temperature for 3–4 minutes so it's still warm but not so hot it will break down the yogurt proteins.
+ Show details− Hide details
Ready when: Coconut milk is steaming, gelatin is completely dissolved, mixture is smooth
Tip: Do not let the coconut milk boil or simmer—high heat can damage the texture. If using an instant-read thermometer, aim for 175–180°F.
Temper and combine with yogurt
- Place the room-temperature Greek yogurt in a medium bowl.
- Once the coconut-gelatin mixture has cooled slightly (warm to the touch, not hot), slowly pour about a quarter of it into the yogurt while whisking continuously.
- This tempers the yogurt so it won't curdle.
- Once combined smoothly, add the remaining coconut mixture while whisking constantly until fully incorporated and no white streaks remain.
+ Show details− Hide details
Ready when: Mixture is smooth, creamy, and uniform in color with no white streaks
Tip: Whisking constantly prevents the yogurt from seizing. Tempering is crucial—if the mixture is too hot when it hits the yogurt, the proteins clump.
Season the panna cotta
- Add the palm sugar (if not fully dissolved in the hot milk, it will dissolve as the mixture cools), fresh lime juice, fish sauce, and a pinch of salt to the yogurt-coconut mixture.
- Whisk together until well combined.
- Taste and adjust: you should taste coconut, a subtle floral sweetness, a whisper of salt, a hint of funk from the fish sauce, and a bright note of lime.
- The fish sauce should not be identifiable—it should simply deepen the coconut flavor.
+ Show details− Hide details
Ready when: All ingredients are fully incorporated and mixture is smooth
Tip: Add fish sauce carefully, a few drops at a time. It's pungent, but when properly balanced, it amplifies the coconut without announcing itself.
Pour and set
- Divide the panna cotta mixture evenly among six 6 oz (180 ml) ramekins or dessert glasses.
- Pour slowly to avoid bubbles.
- Smooth the surface if needed.
- Cover the ramekins loosely with plastic wrap (so the plastic doesn't touch the surface) and refrigerate for at least 5 hours, or up to 2 days.
- The panna cotta should be silky, set, and wobble just slightly in the center when you gently shake a ramekin.
+ Show details− Hide details
Ready when: Panna cotta is set, wobbles slightly in the center, and holds its shape
Tip: Avoid moving the ramekins or jostling the fridge while the panna cotta sets. A gentle wobble is desirable; if it's completely stiff, it may have been over-set.
Serve and top
- Just before serving, sprinkle 2–3 tablespoons of the crispy granola over the top of each panna cotta.
- Garnish with fresh lime zest and a few Thai basil leaves if desired.
- Serve chilled.
- If the panna cotta is very cold and firm, let it sit at room temperature for 2–3 minutes so it's just slightly less firm and the silky texture is more apparent.
+ Show details− Hide details
Ready when: Dessert is plated and ready to eat
Tip: Add granola just before serving so it stays crispy rather than softening from the cold panna cotta. If you must prepare ahead, store granola and panna cotta separately and combine when plating.
Good to know
Tips
- Bloom your gelatin properly—sprinkle it over cold water and wait for it to swell. This prevents lumps and ensures smooth texture.
- Greek yogurt must be at room temperature (or close to it) before you temper it with the warm coconut milk. Cold yogurt can seize up.
- Toast your granola ingredients in two stages: once plain to cook the peanuts and coconut, again with the sugar and oil to create crispness.
- The fish sauce is not optional if you want authentic Thai flavor—use it even in small amounts. It adds an umami undertone that makes the coconut sing without tasting fishy itself.
Make ahead
You can prepare both components up to 2 days in advance. Store the panna cotta covered in the fridge and the granola in an airtight container at room temperature. Combine them only when plating so the granola remains crispy.
Storage & reheating
Panna cotta keeps refrigerated in a covered container for up to 3 days; the texture may soften very slightly after day 2. Do not freeze. Granola stays crispy in an airtight container at room temperature for up to 5 days. Store separately and assemble at serving time.
Substitutions
- unflavored powdered gelatin → 2 teaspoons (6 g) agar-agar powder. Agar sets more firmly and is vegan. Bloom it the same way, but dissolve it by bringing the coconut milk to a gentle boil and simmering for 1 minute while stirring, then cool before combining with yogurt.
- plain Greek yogurt, full-fat → 1 cup (240 ml) heavy cream plus 2 tablespoons (30 ml) yogurt (any type). This makes a richer, less tangy panna cotta. Whisk the cream and yogurt together and treat it like the Greek yogurt in the tempering step.
- palm sugar or dark brown sugar → 3 tablespoons (37 g) light brown sugar or white sugar. Palm sugar has a subtle molasses note; brown sugar approximates this better than white. White sugar will taste slightly cleaner and less complex.
- fish sauce → 1 teaspoon (5 ml) soy sauce or miso paste dissolved in the lime juice. Fish sauce adds umami depth; soy sauce or miso are less funky but offer similar savory complexity. Start with a smaller amount if using miso, as it's more potent.
More puddings & custards
See all →Find more like this
- Meal
- Dessert
- Cuisine
- Thai
- Diet
- Gluten-Free
- Method
- Oven





