Pour 1 litre full fat milk into a pan. It's very important that you use full fat milk for making paneer since we are basically going to extract the milk solids and fats from it and separate the whey
In this pictorial I have used lemon juice but have found that curd or buttermilk is more predictable so if you are a beginner, use that
Bring the milk to a rolling boil and add the curdling agent - curd, buttermilk, lemon juice OR vinegar - any one of your choice
Simmer for another 4-5 mins or until the milk has completely curdled. Keep stirring gently while this happens
Once the milk has curdled, turn the heat off and transfer to a double layered cheesecloth (or use an Indian cotton towel), that's placed over a colander which is in turn placed over a bowl large enough to collect all the whey
Once the whey has drained off completely, wrap the ends of the cheesecloth over the paneer. At this stage, if I use lime or lemon juice, I run the paneer under some water to remove the sourness of lemon. This is optional
You need to place some weights over this cheesecloth-paneer bundle to make a firm block of paneer. I placed a plate over it so that the block gets uniformly pressed down.
Then I put my stone pestle and mortar over it and topped that up with my granite chapati rolling stone.
Leave the weights on for about 2-3 hours and you should have a firm block of paneer
Refrigerate for an hour or so so it's easier to cut into cubes and use immediately or store in the freezer for later use