Crispy Semolina Gujhiya (No Khoya, No Compromise)
A golden, shatteringly crisp Holi sweet made without khoya — roasted semolina deep-fried in a flaky dough with a condensed milk, coconut, and dry fruit filling. We reverse-engineered the secret trick that makes the crust crunch and the filling stay moist without milk solids.

“Gujhiya without khoya sounds like a compromise. It isn't. The original khoya version is rich but forgiving of mediocrity — dense filling masks technique failures. This version has nowhere to hide. The semolina dough has to be right, the filling has to be cooked to exact moisture, and the oil temperature has to hold steady or the shells shatter on the outside and stay raw within. Get those three right and what comes out is crunchier, cleaner-tasting, and honestly better than the version you grew up eating.”
Why This Recipe Works
Gujhiya is an engineering problem disguised as a festival sweet. The shell has to be thin enough to crisp completely in four to five minutes of frying, but thick enough to hold a moist filling without blowing out at the seam. The filling has to be sweet and fragrant, but dry enough not to create internal steam pressure that defeats the seal. Every variable is in tension with every other variable. This is why most home batches either taste like fried dough (filling leaked) or turn out greasy (oil too cool).
The Semolina Shell Secret
The recipe title promises a "secret trick," and there actually is one — it's just not mysterious. The trick is roasting the semolina in hot ghee before it becomes dough. This does two things simultaneously. First, it coats every individual grain of suji in fat, which inhibits gluten development when liquid is added later. Less gluten means a more tender, shatteringly crisp shell instead of a chewy one. Second, the Maillard reaction during roasting creates hundreds of new flavor compounds in the grain that don't exist in raw semolina — nutty, toasty, complex notes that make the shell taste like more than just fried flour.
Eight to ten minutes over medium heat is the minimum. The semolina should go from white to a genuine golden brown, not cream, not pale yellow. When you pull the pan off the heat, the kitchen should smell like a bakery. If it doesn't, it isn't done.
Why This Filling Works Without Khoya
Khoya is dehydrated whole milk — essentially butter with all the water cooked out. It provides fat, protein, and the dense milky richness that makes traditional gujhiya filling so satisfying. This recipe rebuilds those three functions from components you can buy in any grocery store. Sweetened condensed milk handles the fat and sugar. Desiccated coconut provides bulk and textural structure. The milk powder, if you use it, adds back the concentrated dairy note. The result is a filling that behaves identically to khoya-based versions under heat — it sets firm enough to hold its shape in the dough while staying moist after frying.
The critical step is cooking the condensed milk mixture down before it goes into the dough. Filling that enters the gujhiya too wet will create steam in the fryer. Steam creates pressure. Pressure blows seals. Cook the filling until it pulls away slightly from the sides of the pan and holds a spoon-shape when scooped. That's your signal.
Temperature is Everything
A heavy-bottomed kadai is not a luxury for this recipe — it's structural. The thermal mass of a thick pan means the oil temperature drops minimally when you lower cold dough into it. A thin pan can drop 20-30°C per batch, pushing you into the greasy absorption zone before you realize it. If you don't have a kadai, the widest, heaviest pot you own will work. If you're serious about the result, use an instant-read thermometer rather than guessing.
The visual test — a small piece of dough that sizzles and rises — confirms the oil is hot enough to start, but doesn't tell you where it lands in the 170-180°C window. At the low end of that range, the shell takes longer to color, giving more time for the layers to separate and crisp properly. At the high end, you get faster browning with slightly less layering in the texture. Both are correct. Below 160°C, neither happens.
The Shape Holds the Recipe Together
A gujhiya is a half-moon pocket. The structural logic is that curved seam distributes internal pressure evenly — compared to a folded rectangle or a ball, a crescent has no sharp corner where filling can concentrate and punch through. The crimp pattern isn't decorative. It creates a triple-layer seal at the edge that holds even when the interior fills with steam.
Press the edge firmly with wet fingers first to create the initial bond. Then work around the curve in small pinches, folding each section over itself. Done properly, the sealed edge looks like a braided rope. Done carelessly, it looks smooth — and smooth means it will open in the oil.
Festival sweets in Indian cooking have survived centuries of iteration precisely because the recipes encode real technique. The shapes aren't traditional for aesthetic reasons. They're traditional because they work.
Where Beginners Mess This Up
Before we start, read this. These are the 4 reasons your crispy semolina gujhiya (no khoya, no compromise) will fail:
- 1
Under-roasting the semolina: The semolina must turn genuinely golden-brown and smell nutty before you pull it off the heat. Pale yellow semolina hasn't undergone the Maillard reaction yet — it will taste floury and raw in the finished shell. Eight to ten minutes over medium heat with constant stirring is the minimum. Trust your nose: when the kitchen smells like toasted bread, you're close.
- 2
Sealing the edges too loosely: Gujhiya explodes in oil when the seal fails. The filling, wet from the condensed milk, turns to steam as it hits 170°C and blows out the weakest point in the seam. Press the folded edge firmly with wet fingertips, then pinch and crimp it in small sections. One smooth press is not enough.
- 3
Frying at the wrong temperature: Too hot (above 185°C) and the shell browns before the interior dough cooks through, giving you a raw-tasting center with a burnt crust. Too cool (below 160°C) and the gujhiya absorbs oil aggressively, turning greasy and heavy. The target is 170-180°C. Use a thermometer — the small piece of dough test is unreliable when oil temperature is fluctuating.
- 4
Skipping the dough rest: The 15-minute refrigerator rest is not optional. Warm dough is sticky and tears when you try to shape it around the filling. The rest lets the ghee solidify slightly and the gluten relax, making the dough pliable enough to stretch without splitting at the fold.
The Video Reference Library
Want to see it in action? Here are the exact videos we analyzed and combined to build this foolproof recipe translation:

The source video for this recipe. Shows the exact roasting technique for the semolina and the critical dough texture to look for before refrigerating. Watch the filling assembly section closely — the condensed milk reduction step is easy to rush.
2. Traditional Gujhiya Shaping and Sealing Technique
Detailed close-up of the crimping and sealing method that prevents filling from leaking during frying. Good reference if you've never shaped a half-moon pastry before.
3. Deep Frying Temperature Control for Indian Sweets
Covers the visual and thermal cues for frying temperature across gujhiya, samosas, and kachori. Useful context for understanding why temperature recovery between batches matters.
🛠️ Core Equipment
- Heavy-bottomed deep frying pan or kadai ↗Thin pans lose temperature when you add cold dough, causing the oil to drop below 160°C and the gujhiya to absorb fat. A [cast iron or carbon steel kadai](/kitchen-gear/review/kadai) holds thermal mass and recovers temperature between batches.
- Instant-read thermometer ↗Oil temperature management is the make-or-break variable in this recipe. Guessing by eye leads to either burnt shells or greasy ones. A [probe thermometer](/kitchen-gear/review/instant-read-thermometer) removes the guesswork entirely.
- Slotted spoon or spider strainer ↗You need to lift the gujhiyas out of oil without disturbing the others still frying. A wide spider strainer lets you handle two or three at once and drains oil efficiently on the way out.
- Rolling pin and small round cutter ↗Consistent 3-inch discs are easier to fill and seal evenly. Uneven thickness means uneven frying — thicker edges stay doughy while thinner spots burn.
Crispy Semolina Gujhiya (No Khoya, No Compromise)
🛒 Ingredients
- ✦2 cups semolina (suji)
- ✦1 cup all-purpose flour (maida)
- ✦1 cup pure ghee, divided
- ✦1/2 cup whole milk
- ✦1/2 teaspoon fine sea salt
- ✦1.5 cups powdered cane sugar
- ✦1 cup sweetened condensed milk
- ✦1/2 cup desiccated coconut, unsweetened
- ✦1 cup mixed dry fruits (cashews, almonds, raisins), finely chopped
- ✦1 teaspoon ground cardamom
- ✦1/2 teaspoon fennel seeds (saunf)
- ✦1/4 teaspoon saffron strands (optional)
- ✦Approximately 1/2 cup water, for dough
- ✦Oil for deep frying (vegetable or refined)
- ✦2 tablespoons milk powder (optional, for enriched filling)
👨🍳 Instructions
01Step 1
Combine semolina and all-purpose flour in a large mixing bowl and stir to distribute evenly.
02Step 2
Heat 3/4 cup ghee in a heavy-bottomed pan over medium heat until it shimmers, about 1 minute. Add the flour-semolina mixture gradually, stirring constantly to prevent lumping.
03Step 3
Roast the mixture over medium heat for 8-10 minutes, stirring frequently, until the semolina turns golden-brown and releases a deeply nutty, toasted aroma.
04Step 4
Spread the roasted semolina mixture onto a clean plate or tray. Let it cool for 5-7 minutes.
05Step 5
Warm the condensed milk in a small pan over low heat. Stir in the desiccated coconut, milk powder if using, and ground cardamom. Cook for 2-3 minutes until slightly thickened.
06Step 6
Fold in the chopped dry fruits and fennel seeds. Set the filling aside to cool completely.
07Step 7
Once the roasted semolina has cooled, add the remaining 1/4 cup ghee, powdered sugar, salt, and whole milk gradually. Mix with your fingertips until the dough is crumbly but holds together when pressed.
08Step 8
Knead gently for 2-3 minutes until the dough just comes together. Cover and refrigerate for at least 15 minutes.
09Step 9
Divide the dough into 12-16 equal portions. Roll each into a smooth ball, then flatten into a 3-inch disc.
10Step 10
Place about 1 tablespoon of filling in the center of each disc. Fold into a half-moon shape and press the edges firmly with wet fingertips.
11Step 11
Heat oil in a deep, heavy-bottomed pan to 170-180°C (340-356°F). Test with a small piece of dough — it should sizzle immediately and rise slowly.
12Step 12
Fry 2-3 gujhiyas at a time for 4-5 minutes per side until deep golden-brown and crispy when tapped.
13Step 13
Remove with a slotted spoon and drain on paper towels for 2-3 minutes.
14Step 14
Serve warm within 2-3 hours of frying for maximum crispness. Dust lightly with powdered sugar if desired.
Nutrition Per Serving
Estimates based on standard preparation. Adjustments alter macros.
🔄 Substitutions
Instead of Sweetened condensed milk...
Use 1 cup evaporated milk mixed with 1/4 cup honey
Slightly less sweet with a more natural caramel undertone. Reduces refined sugar content while maintaining the moisture needed in the filling.
Instead of All-purpose flour (maida)...
Use Whole wheat flour, or 3/4 cup whole wheat + 1/4 cup maida
Slightly denser texture and more earthy flavor. The gujhiya will be less flaky but more nutritious. Add a small extra splash of water to the dough as whole wheat absorbs more.
Instead of Pure ghee...
Use 3/4 cup ghee mixed with 1/4 cup virgin coconut oil
Lighter mouthfeel with a subtle coconut aroma. Reduces saturated fat content. The coconut oil smell fades considerably once fried.
Instead of Powdered cane sugar...
Use Jaggery powder (gur) or coconut sugar
Deeper molasses flavor with a lower glycemic index. Jaggery can add slight moisture to the filling — reduce condensed milk by 2 tablespoons to compensate.
🧊 Storage & Reheating
In the Fridge
Store in an airtight container at room temperature for up to 2 days. Refrigerating gujhiya makes the shell soggy — room temperature is better for texture.
In the Freezer
Freeze unfried, shaped gujhiyas in a single layer on a tray, then transfer to a sealed bag. Fry directly from frozen at 165°C for 6-7 minutes. Do not freeze already-fried gujhiya.
Reheating Rules
Re-crisp in an air fryer or oven at 175°C for 5-6 minutes. Avoid the microwave entirely — it turns the shell rubbery within seconds.
❓ Frequently Asked Questions
Why is khoya traditionally used and does skipping it really work?
Khoya (reduced milk solids) provides richness, fat, and binding in the filling. This recipe replaces all three functions: the condensed milk provides fat and sweetness, the desiccated coconut provides structure and binding, and the ghee in the dough compensates for the fat you're no longer getting from khoya in the filling. The result is functionally identical — and because the components are more controlled, the filling is actually more consistent batch to batch.
My gujhiyas keep cracking open in the oil. What's wrong?
Three possible causes: the seal wasn't tight enough (press and crimp firmly), the filling was too wet when you added it (cook it longer before filling), or the dough was too warm (refrigerate it properly before shaping). Check all three before your next batch.
Can I bake these instead of frying?
You can, but the result is fundamentally different. Baked gujhiya at 180°C for 20-25 minutes produces a dry, biscuit-like texture rather than a crispy, layered shell. If you're avoiding deep frying, an air fryer at 170°C for 12-15 minutes gets closer to the fried result — brush with ghee first.
How do I know when the semolina is roasted enough?
Color alone isn't reliable because the flour darkens the mixture. Use your nose. When the roasting smell shifts from raw flour to something nutty and toasted — like brown butter or fresh bread — you're there. If you're uncertain, err on the side of an extra 2 minutes. Slightly over-roasted semolina is better than under-roasted.
Can I make the dough and filling ahead of time?
Yes. The filling keeps refrigerated for up to 2 days — bring it to room temperature before using so it doesn't stiffen inside the dough. The dough can rest refrigerated for up to 4 hours. Beyond that, the ghee becomes too firm and the dough cracks during shaping.
What oil is best for frying gujhiya?
Refined vegetable oil or sunflower oil for neutral flavor. Some traditional recipes use mustard oil, which adds a sharp, pungent note that isn't to everyone's taste. Avoid olive oil — its low smoke point makes temperature control difficult. Whatever oil you use, it must be clean and fresh. Old or recycled oil introduces off-flavors that are very obvious in a lightly sweetened pastry.
The Science of
Crispy Semolina Gujhiya (No Khoya, No Compromise)
We turned everything on this page into a beautiful, flour-proof PDF cheat sheet. Print it out, stick it to your fridge, and never mess up your crispy semolina gujhiya (no khoya, no compromise) again.
*We'll email you the high-res PDF instantly. No spam, just perfectly cooked meals.
AlmostChefs Editorial Team
We translate the internet's most popular cooking videos into foolproof, beginner-friendly written recipes. We analyze multiple methods, test them in our kitchen, and engineer a single "Master Recipe" that gives you the best possible result with the least possible stress.