Jump to Recipe
There’s something calm about a plate of Bengali sandesh. This Bengali sandesh milk sweet is made from fresh chhena, the soft curds you get by curdling whole milk with lemon juice, then kneaded with powdered sugar and cooked just until it holds together.
I first ate it at a sweet shop in Kolkata, off a steel counter with a line out the door. The pieces were pale ivory and barely sweet. Nothing like the heavy mithai I expected.
At home it takes about 80 minutes, and most of that is hands-off draining and cooling. You need whole milk, a lemon, powdered sugar, and a muslin cloth.
One judgment call matters. Hang the chhena for 30 minutes, not an hour. Over-drained chhena turns crumbly and cracks when you shape it.
Why You’ll Love This Recipe
- Only a handful of ingredients and no mold needed
- Soft, fudgy texture that melts instead of chewing
- Keeps 3 to 4 days, so it’s easy to make ahead
- Lightly sweet, so you taste milk before sugar
Ingredient Notes
- Whole milk: Use full-fat pasteurized milk. UHT milk gives small, weak curds and a lower yield. 2 liters makes about 300 g of chhena.
- Lemon juice: Fresh juice curdles cleanly. White vinegar works at the same amount, but rinse the curds a little longer.
- Powdered sugar: It dissolves into the chhena without graininess. Blitz granulated sugar in a blender for 20 seconds if that’s all you have.
- Ground cardamom: Grind seeds from 3 green pods for a stronger scent. Pre-ground works fine at 1/4 tsp.
- Pistachios: Unsalted and finely chopped. Slivered almonds make a fine swap.
- Ghee: It keeps your palms from sticking and gives the surface a light sheen. Unsalted butter works in a pinch.

Homemade Bengali Sandesh Milk Sweet with Pistachios
Ingredients
Method
- Pour the milk into a 4-liter / 4-quart heavy-bottomed pot (24 cm / 9.5 inch). Bring it to a full boil over medium heat, 8 to 10 minutes, stirring every minute or two so a skin doesn't form and the bottom doesn't catch.
- Turn the heat to low. Add the lemon-water mixture 1 tablespoon at a time, stirring gently. Within 1 to 2 minutes the curds separate and the whey turns clear and pale green-yellow. Turn off the heat.
- Line a 25 cm / 10-inch colander with a 45 cm / 18-inch square of muslin and set it in the sink. Pour in the curds, then rinse under cold running water for 1 minute, tossing gently to wash out the lemon taste. Gather the corners, twist, and squeeze lightly, then hang the bundle from the tap or leave it in the colander for 30 minutes.
- Unwrap the chhena onto a wide plate. It should feel moist and crumble easily, about 300 g. Knead with the heel of your palm for 5 to 6 minutes until it's smooth with no grains and comes together into a soft dough that doesn't stick to your hand.
- Set a 24 cm / 10-inch nonstick skillet over low heat. Add the kneaded chhena, powdered sugar, and cardamom. Stir and fold constantly with a silicone spatula for 8 to 10 minutes, until the mixture softens, pulls away from the sides into one soft mass, and stays pale ivory.
- Spread the mixture on a plate and cool for 10 minutes, until it's warm to the touch but no longer hot.
- Grease your palms with the ghee. Divide the mixture into 14 portions of about 25 g each. Roll each into a smooth ball, flatten it lightly into a 4 cm / 1.5-inch round about 1.5 cm thick, and press a pinch of chopped pistachio into the center. Serve at room temperature.
Notes
- Use full-fat pasteurized milk for the best chhena yield.
- Rinse the curds for a full minute to remove the lemon taste.
- Hang the chhena for 30 minutes only so it stays moist.
- Cool the cooked mixture for 10 minutes before shaping so it handles easily.
- Grease your palms with ghee for smooth, crack-free surfaces.

Tips for Success
- Choose full-fat pasteurized milk, not UHT, which gives small, weak curds and a lower yield of chhena.
- Add the diluted lemon juice a tablespoon at a time and stop once the whey turns clear and pale green-yellow.
- Rinse the curds under cold running water for a full minute to wash out the lemon taste.
- Hang the chhena for 30 minutes and no longer, so it stays moist and shapes without cracking.
- Cook on low heat and stir constantly, and stop when the mass pulls away from the pan while still pale ivory.
Variations
- Press the warm mixture into a ghee-greased wooden or silicone mold, then unmold after 5 minutes for classic carved sandesh.
- Swap the powdered sugar for 80 g grated nolen gur (date palm jaggery) in winter for a caramel-toned sandesh.
- Soak 6 saffron strands in 1 tbsp warm milk and knead it into the chhena for a pale golden color.
Storage and Reheating
Bengali sandesh keeps for 3 to 4 days in an airtight container in the fridge. Layer the pieces with parchment so they don’t stick or pick up fridge smells.
Sandesh is eaten cool or at room temperature, so there’s nothing to reheat. Take the pieces out 15 minutes before serving so they soften, and don’t leave them out longer than 2 hours.
To make it ahead, wrap the drained chhena and refrigerate it for up to 24 hours. Knead it and cook it with the sugar when you’re ready to shape.
Serving Suggestions
Bengali sandesh is served in small portions, two pieces at a time, at room temperature. A small plate and a cup of hot tea is all it needs.
Black tea or masala chai balances the milky sweetness well. After a spicy meal, one or two pieces make a gentle finish.
Sandesh is a staple at Bengali festivals and celebrations, from Durga Puja to weddings. For a party tray, set it beside rasgulla and mishti doi and let guests pick.

FAQ
Why is my sandesh crumbly and cracking when I shape it?
Sandesh turns crumbly when the chhena hangs too long or gets squeezed too hard. Knead in 1 tsp of milk at a time until the dough turns smooth and holds together, then shape it. Next batch, stop draining at 30 minutes, when the chhena still feels moist and only just crumbles.
How do I know when the sandesh mixture is done cooking?
The sandesh mixture is done when it pulls away from the sides of the 24 cm skillet and gathers into one soft, pale ivory mass. That takes 8 to 10 minutes on low heat with constant stirring. It should feel soft and slightly tacky when you press it with a spoon, and it shouldn’t brown at the edges.
Can I use store-bought paneer instead of fresh chhena for sandesh?
You can, but the sandesh will be firmer and a little grainy. Grate 300 g of paneer finely, then blend it with 2 tbsp of milk in a food processor until it forms a smooth paste before cooking it with the sugar. Fresh chhena gives a softer, creamier bite, so use it if you can.
How long does homemade sandesh keep, and can I make the chhena ahead?
Store sandesh in an airtight container in the fridge for 3 to 4 days. You can also make the chhena a day ahead. Wrap it and refrigerate it for up to 24 hours, then knead and cook it as usual. Let the sweets sit at room temperature for 15 minutes before serving so they soften.
What do you serve with Bengali sandesh?
Serve sandesh with hot black tea or masala chai, since the tannins in the tea cut the milky sweetness. On a festival tray, it sits next to rasgulla and mishti doi. Two pieces after a spicy meal also work as a gentle finish.
What’s the difference between sandesh and rasgulla?
Sandesh is chhena kneaded or cooked with sugar and shaped by hand or in molds, so it’s dense and soft with a dry surface. Rasgulla is chhena formed into balls and simmered in sugar syrup, so it’s spongy and wet. Both start with the same lemon-curdled milk.

