Heat the Milk: In a 4-quart pot, slowly heat 8 cups of whole milk over medium heat. Stir occasionally to prevent scorching. Once the milk reaches 200°F (93°C), it will become foamy and start to steam. If the milk starts to boil, remove the pot from the heat immediately. Important: do not use ultra high temperature pasteurized milk a.k.a. UHT milk, see recipe notes.
Add Acid and Salt: Turn off the heat and gently stir in ⅓ cup of freshly squeezed lemon juice (or ½ teaspoon citric acid). At this point, you can also stir in 2 teaspoons of kosher salt, if you’d like to season your ricotta now. If you prefer, you can add the salt after straining for a milder flavor.
Let It Sit: Allow the milk mixture to sit undisturbed for 10 minutes. You should see the milk separate into white, lumpy curds and yellowish, watery whey. If the milk hasn’t fully separated, don’t worry! Simply stir in an additional tablespoon of lemon juice (or vinegar) and let it sit for a few more minutes.
Prepare Cheesecloth: While the milk is resting, line a colander with cheesecloth. If you don’t have cheesecloth, you can use a clean kitchen towel. Set the colander over a large bowl to catch the whey.
Drain the Ricotta: Let the curds drain for about 10-15 minutes for a creamier ricotta or longer for a drier, firmer texture (up to 60 minutes). The whey will collect in the bowl below. Shorter draining times will yield creamier ricotta, while longer draining will make it firmer. If the ricotta becomes too dry during draining, feel free to stir some of the reserved whey back in to adjust the texture to your liking.
Final Seasoning and Storage: If you didn’t add salt earlier, now is the time to mix in the remaining 2 teaspoons of kosher salt, if desired. Fresh ricotta can be used immediately or stored in an airtight container in the fridge for up to 1 week.