Add 1-4 gallons of milk to a large nonreactive pot.
For every gallon of milk, dissolve 1-1/2 tsp. citric acid in 1/2 cup of water.
Stir to combine. Then evenly add the dissolved citric acid to the milk.
Stir the milk in an up-and-down motion to blend well.
Turn the heat to med-low and slowly heat up the milk to 100 degrees F. Stir occasionally.
While the milk is heating, prepare the rennet. Your rennet bottle should tell you how much rennet and water per gallon of milk. Mine says 1/2 tsp. of rennet per gallon of milk and I dilute this in 1/2 cup of cool water.
When the milk comes to temperature, turn off the heat, add the diluted rennet, and stir in an up-and-down motion until the rennet has been evenly distributed.
Cover the pot with a lid and set a timer for 15 minutes.
When the timer goes off, remove the lid. The milk should now be set up. Use a large knife (I use a bread knife), to cut a grid pattern into the now-hardened curd. Aim for about 1” squares, but it definitely doesn’t have to be perfect. Then let it sit for another 5 minutes.
Towards the end of that 5 minutes, turn your sink water on hot to heat up.
After the 5 minutes is up you are going to use the spoon to gently stir the curds and cut the rest of it into 1-inch cubes. Again, don’t worry about perfection here.
Next, you are going to drain the whey off of the curds. You can set a colander on a pot to save the whey for other things or to give to your chickens.
Then, fill the pot with that hot water until it covers the curds, gently stirring it with your hands to break the curds apart.
Dump the curds back into the colander a second time and this time you can just let the water go down the sink.
Now we are going to add a little salt. Sprinkle 1 tsp. per gallon of milk over the curds and mix it in. After it is mixed well, ball the curds together as best you can and place the ball back into the pot.
Let the pot fill up with hot water again until it covers the curds. Then take that pot back to the stove.
Turn the stove back on to low heat. As the water heats up, the curds are going to more easily stick together and form a ball. If you have more than a gallon of milk that you started with, you may want to separate the large ball into two smaller ones.
Now it’s time for the fun part. Start picking up each ball with your hands and letting the cheese stretch down towards the water. Dip the whole ball back in, and repeat the process, this time grabbing another part of the ball. This is not an art, so don’t stress about technique here, you are simply dipping it in hot water and letting it stretch out. This is going to give you that mozzarella consistency.
The water should now be too hot to put your hands in. Taking tongs or whatever kitchen tool that will do the job, a spoon works in a pinch, you are going to pick up the cheese ball and continue letting it stretch in the same way until it stretches easily without breaking and develops a glossy appearance. When you hit this point, you are done!
If you want to form it into cheese sticks or use it fresh, it’s ready to work with at this point. I usually add a little more salt to taste, stretch it into a tight ball (see video), cover, and refrigerate.