
Soji is one of those desserts that immediately makes me think of home.
For me, it brings back memories of family gatherings, prayer days, celebrations, and those quiet moments when something sweet and comforting was needed after a good meal. The smell of butter, cardamom, cinnamon and toasted semolina filling the kitchen is one of those things that stays with you.
I love soji because it is simple, warm and full of comfort. It does not need to be fancy to be special. When it is made properly, it is soft, creamy, lightly spiced and rich enough to feel like a treat.
This is my homemade soji recipe — creamy, fragrant and perfect for serving after curry, breyani, or as a sweet dish for family occasions.
Serves
6 to 8 people
Prep Time
10 minutes
Cooking Time
25 to 30 minutes
Ingredients
- 1 cup semolina / tasty wheat
- ½ cup butter or ghee
- 1 cinnamon stick
- 3 cardamom pods, lightly crushed
- 2 cups milk
- 1 cup water
- ½ to ¾ cup sugar, adjust to taste
- ¼ teaspoon Masala Factory cardamom powder, optional
- ¼ teaspoon Masala Factory cinnamon powder, optional
- ¼ cup chopped almonds or cashews
- ¼ cup raisins, optional
- 1 teaspoon vanilla essence, optional
Optional Additions
- A few strands of saffron soaked in warm milk
- 2 tablespoons desiccated coconut
- A little extra ghee for a richer flavour
- Chopped pistachios for garnish
- A sprinkle of cinnamon before serving
Method
1. I warm the milk mixture
I add the milk, water and sugar to a pot and warm it gently until the sugar dissolves.
I do not boil it too hard. I just keep it warm and ready, because adding warm liquid to the semolina helps the soji cook smoothly.
2. I toast the semolina
In a separate pot, I melt the butter or ghee over medium-low heat.
I add the cinnamon stick and cardamom pods, then let them release their aroma for a few seconds.
Then I add the semolina and stir it gently. I toast it slowly until it becomes fragrant and lightly golden.
This step is important. I do not rush it, because toasted semolina gives soji its warm, nutty flavour.
3. I add the warm milk slowly
Once the semolina is toasted, I lower the heat.
I slowly pour in the warm milk mixture while stirring continuously. I do this carefully because the mixture can bubble and steam when the liquid touches the hot semolina.
I keep stirring so the soji stays smooth and does not form lumps.
4. I let it thicken
I cook the soji on low heat, stirring often, until it thickens and becomes creamy.
This usually takes about 8 to 10 minutes. The semolina will absorb the liquid and become soft.
5. I add the flavour
I stir in the cardamom powder, cinnamon powder, vanilla essence, raisins and chopped nuts.
If I am using saffron or coconut, I add it at this stage too.
I let everything cook together for a few more minutes until the soji is soft, rich and fragrant.
6. I rest and serve
Once the soji is done, I switch off the heat and let it rest for a few minutes.
I remove the cinnamon stick and cardamom pods before serving, unless I am leaving them in for presentation.
I serve it warm, topped with extra nuts or a light sprinkle of cinnamon.
Serving Suggestions
I love serving soji:
- Warm after a family meal
- After breyani or curry
- With chopped almonds or pistachios
- With a little extra ghee
- As a sweet dish for prayer days or celebrations
- With tea in the afternoon
My Cooking Tip
The secret to good soji is patience. Toast the semolina slowly and add the milk mixture gradually while stirring.
If the heat is too high, the soji can become lumpy or stick to the pot. Low heat gives you that smooth, creamy texture.
For me, soji is one of those desserts that feels like love in a bowl. It is simple, familiar and comforting — the kind of sweet dish that brings back memories with every spoonful.




