
Making homemade mozzarella at home is simpler than you think. With just a few ingredients and 30 minutes, you can create fresh, creamy cheese that puts store-bought to shame.
I developed this method after years of experimenting with curd temperatures and stretching techniques. The result is consistently smooth, elastic cheese balls with that signature delicate texture.
What you get are perfect, milk-white orbs that glisten when fresh, ready to eat immediately or store in brine. The flavor is pure, clean dairy with just a hint of salt.
Serve these warm with tomatoes and basil, or chill for later use in salads and caprese. The process is rewarding and the results are exceptional.
Ingredients for Fresh Mozzarella Balls
Just milk, acid, and enzymes transform into silky cheese right on your counter.
| Ingredient | Amount | Notes |
|---|---|---|
| Whole Milk 🥛 | 1 gal | Not ultra-pasteurized, essential for curdling |
| Citric Acid 🧪 | 1 ½ tsp | Food-grade, dissolved in water |
| Rennet 🧫 | ¼ tsp | Vegetarian rennet or microbial rennet |
| Cheese Salt 🧂 | 1 tsp | Non-iodized, fine grain |
| Ice Cubes ❄️ | 4 cups | For cooling curds quickly |
| Water 💧 | 1 cup | For dissolving citric acid |
| Baking Soda 🧂 | ¼ tsp | Optional for pH adjustment |
| Olive Oil 🫒 | 1 tbsp | For handling elasticity |
| White Vinegar 🍶 | 1 tbsp | For equipment sanitization |
[recipe_ingredient_scaler]
The milk is everything here. Whole, raw milk from a local dairy gives the best texture, but pasteurized (not ultra-pasteurized) from the grocery store works too. I grab mine from Whole Foods—they usually have a few local options. Citric acid and rennet are easy to find online or at specialty stores. Make sure your rennet is vegetarian if that matters to you (it does to me).
No rennet? Lemon juice or vinegar can work in a pinch, but the texture won’t be as smooth. Skip the baking soda if you’re confident in your milk’s acidity. The salt is non-negotiable though—cheese salt blends in better than table salt. If you’re making a big batch, double everything except the rennet (that stays the same).
Fresh mozzarella is best eaten within 3-4 days. Store in lightly salted brine in the fridge. The curds can be frozen, but the texture changes—better to make fresh as needed.
Why You’ll Love This Recipe
- No-Fuss Process: I just heat the milk, add citric acid and rennet, then let the curds form—no fancy equipment needed.
- Melt-in-Your-Mouth Good: That fresh, milky sweetness with a hint of salt is way better than store-bought.
- Party or Pasta: I toss these on caprese salads, pizzas, or charcuterie boards—everyone’s impressed.
- Budget-Friendly Luxury: A gallon of whole milk makes a batch for less than gourmet cheese counter prices. Honestly, I save a fortune.
Step-by-Step Instructions for Fresh Mozzarella Balls
Here’s the method I use to transform whole milk into creamy, delicate cheese in under an hour.
Step 1: Acidify and Heat the Milk
Pour the 1 gal Whole Milk into a stainless steel pot. Stir in the 1.5 tsp Citric Acid dissolved in the 1 cup Water until fully incorporated. I use a non-reactive pot to prevent any off-flavors from developing during the acidification process.
Place the pot over medium heat and warm the milk to 90°F, stirring gently. You’ll notice the milk starting to thicken slightly—this is the citric acid beginning to work on the proteins. At this temperature, the milk should look smooth but slightly more viscous than when you started.
Step 2: Add Rennet and Form Curds
Once the milk reaches 90°F, remove it from heat and stir in the 0.25 tsp Rennet using an up-and-down motion for 30 seconds. This distributes the rennet evenly without creating excessive bubbles. Cover the pot and let it sit undisturbed for 5-7 minutes.
After resting, you should see a clean break when you insert a clean knife at an angle—this indicates the curds have formed properly. The curds will look like firm custard, while the whey (the liquid portion) will appear slightly yellow. If it hasn’t set, give it another 2-3 minutes.
Step 3: Cut and Cook the Curds
Cut the curds into ½-inch cubes using a long knife. Return the pot to medium heat and warm the curds to 105°F, stirring gently to prevent them from sticking. Maintain this temperature for 5 minutes, stirring occasionally.
The curds will shrink and expel more whey as they cook. You’re looking for them to become firm but still slightly springy to the touch—not hard or rubbery. This step develops the proper texture for stretchy, creamy cheese.
Step 4: Drain, Stretch, and Shape
Drain the curds using a fine-mesh strainer, then transfer them to a microwave-safe bowl. Microwave for 30 seconds to heat the curds further. Now comes the fun part: using clean hands (sanitized with the 1 tbsp White Vinegar), begin to stretch and fold the curds gently.
If the curds seem too stiff, microwave for another 15-20 seconds. Work in the 1 tsp Cheese Salt and 0.25 tsp Baking Soda as you stretch. The mixture should become smooth and elastic, like taffy. Drizzle in the 1 tbsp Olive Oil to help with handling.
Once the cheese is smooth and pliable, divide it into 1-inch balls and place them in a bowl of the 4 cups Ice Cubes to cool and set their shape. The ice bath stops the cooking process and helps the balls maintain their form.
Pro Tips For Making Fresh Mozzarella Balls
- Heat Milk Slowly: I learned this the hard way—crank the heat too high and you’ll scorch the milk. Aim for a gentle 90°F rise to 160°F over 5-7 minutes, stirring often.
- Use Fresh Rennet: After a few failed batches, I finally realized expired rennet is the silent killer of curd formation. Check the date and store it in the fridge.
- Skip Tap Water: Chlorine in tap water can mess with the curds. I use filtered or bottled water when dissolving citric acid and rennet—sounds fussy, but it works.
- Shock with Ice: Once the curds are ready, plunge them into ice water for 10 minutes. This stops the cooking and makes them easier to stretch—my grandmother swore by this.
Wine and Beer Pairings for This Dish
Crisp White Wines
For this creation, I love pairing with a Sauvignon Blanc from New Zealand—its zesty citrus and grassy notes cut through the creamy richness beautifully. A Pinot Grigio from Alto Adige offers a lighter, more delicate option that won’t overpower the cheese. 🍷
Light Red Options
If you prefer red, go for a Chianti Classico with its bright acidity and cherry notes. The tannins are soft enough to complement rather than clash with the fresh dairy. Serve slightly chilled for best results.
Italian Sparkling
Prosecco is my go-to for celebratory moments with these cheese bites. Its fine bubbles cleanse the palate between bites. Look for a brut version to avoid excess sweetness.
Craft Beer Pairings
A crisp Italian pilsner like Birra del Borgo works wonderfully here. For American options, try a wheat beer with citrus notes. The carbonation helps cut through the creaminess. 🍺
Non-Alcoholic Choices
Sparkling water with a squeeze of lemon or lime provides a refreshing contrast. I also enjoy a hibiscus iced tea—its tartness balances the mozzarella’s mild flavor perfectly.
Nutrition Facts
Frequently Asked Questions
What kind of milk works best?
Use whole milk that’s pasteurized but not ultra-pasteurized. Raw milk works too if available. Avoid skim or 2% as they lack the fat needed for proper texture.
Why didn’t my curds stretch?
This usually means the milk wasn’t acidic enough or the temperature was off. Ensure your milk reaches 105°F before stretching. Adding 0.25 tsp Baking Soda can help balance pH.
How do I store homemade mozzarella?
Place balls in lightly salted brine in an airtight container. They’ll keep in the fridge for 3-4 days. For best flavor, eat within 24 hours.
Can I make this without rennet?
Yes, but texture may differ. Use 1/4 cup Lemon Juice or vinegar instead. The cheese will be softer and less elastic, but still tasty.
- Recipe for Boneless Pork Chops in Cast Iron Skillet: Sear and Baste to Juicy Perfection - October 3, 2026
- Recipe for Boneless Cross Rib Roast: Slow-Roasted Beef with Herb Crust - October 3, 2026
- Hamburgers in Sauce Recipe Crock Pot: Slow-Cooked Savory Delight - October 3, 2026