Ingredients:

  • 4 tablespoons (57g) unsalted butter
  • 4 tablespoons (30g) all-purpose flour, plus more if needed
  • 3 cups (710ml) whole milk, warmed (not boiling)
  • 1/4 teaspoon freshly grated nutmeg
  • Salt and freshly ground white pepper, to taste
  • 1 cup (100g) grated Gruyère cheese
  • 1/2 cup (50g) grated Parmesan cheese
  • 1 tablespoon heavy cream (optional, for extra richness)

Instructions:

  1. Melt butter in the saucepan over medium heat. Add flour and whisk constantly for 2-3 minutes until a smooth, pale golden paste (roux) forms.
  2. Gradually whisk in the warm milk, about 1/2 cup at a time, ensuring each addition is fully incorporated before adding more. Whisk continuously to prevent lumps.
  3. Bring the mixture to a simmer, then reduce heat to low. Cook, stirring frequently, for 5-7 minutes, or until the sauce has thickened and coats the back of a spoon.
  4. Remove from heat. Stir in nutmeg, salt, and white pepper to taste.
  5. Add grated Gruyère and Parmesan cheese. Stir until cheese is completely melted and the sauce is smooth and creamy.
  6. If desired, stir in heavy cream for extra richness. If the sauce is too thick, add a tablespoon or two of warm milk. If it's too thin, simmer for another minute, stirring constantly.
  7. Use immediately or keep warm on a very low heat.