Step 1 - Melt the Butter: Place a pan over medium heat and add 2 tablespoons of butter. Let the butter melt completely, but don't let it brown. Once melted, you're ready to add the fresh spinach.
Step 2 - Cook and Season the Spinach: Add the 10 ounces of fresh spinach to the pan. Season the spinach with salt and black pepper to taste. Move the spinach around the pan as it cooks so it wilts evenly. Cook it for a few minutes, just until it reaches a dark green color. You don't want to completely overcook the spinach at this stage.
Step 3 - Add the Garlic: Add ½ teaspoon of minced garlic to the cooked spinach. Stir it into the spinach and cook for about 1 to 2 minutes, giving the garlic enough time to warm through and flavor the spinach.
Step 4 - Drain the Spinach: Remove the spinach from the heat and drain it thoroughly. Press or squeeze out as much excess liquid as possible. This step is important because too much water from the spinach can make your dip thin instead of creamy.
Step 5 - Add the Cream Cheese: Return the drained spinach to the pan and add 3 to 4 ounces of room-temperature cream cheese. Starting with 3 ounces gives you the option to add more if you want a creamier dip. Since softened cream cheese breaks down more easily, stir and work it into the warm spinach until the mixture becomes smooth and creamy.
Step 6 - Add the Heavy Cream: Add a small amount of heavy whipping cream to the spinach and cream cheese mixture. Stir continuously to work the cream into the cheese. Add more heavy cream little by little if needed until you reach the creamy consistency you want. Adding it gradually helps you avoid making the dip too runny.
Step 7 - Add the Artichokes and Mozzarella: Dice the artichoke hearts into small pieces and add them to the pan. Stir in ½ to 1 cup of shredded mozzarella cheese. If you prefer a less cheesy dip, start with ½ cup and add more as needed. Stir everything together until the artichokes are evenly distributed and the mozzarella begins to melt into the mixture.
Step 8 - Season With Red Pepper Flakes: Add crushed red pepper flakes to taste. Start with a small amount and add more if you want extra heat. Stir well so the seasoning is spread throughout the dip.
Step 9 - Taste and Adjust the Seasoning: Taste the dip while it is warm and check the seasoning. Add more salt, black pepper, or crushed red pepper flakes if needed. Stir well after making any adjustments so the flavors are evenly mixed.
Step 10 - Add the Parmesan Cheese: Add Parmesan cheese to the dip and stir until it is well incorporated. Continue stirring until the cheese blends into the hot, creamy mixture. At this point, the spinach and artichoke dip is ready to serve as-is.
Step 11 - Add the Cheese Topping: For a golden, bubbly finish, transfer the dip to a broiler-safe baking dish if needed. Sprinkle additional Parmesan cheese over the top, followed by a handful of shredded mozzarella cheese. Spread the cheese evenly so you get a good melted layer across the surface.
Step 12 - Broil Until Golden and Bubbly: Place the dish under a low broiler and broil for about 3 minutes, watching it closely the entire time. The cheese should become melted, bubbly, and golden brown. Keep a close eye on the dip because the cheese can burn quickly under the broiler. Once the top is nicely browned, remove the dip and let it cool briefly before serving.