Ingredients:

  • 1 tablespoon (15 ml) olive oil
  • 2 cloves garlic, minced
  • 1 small yellow onion, finely chopped
  • 1/4 teaspoon (1.5 ml) ground nutmeg
  • 1/4 teaspoon (1.5 ml) red pepper flakes (optional)
  • 1 (10 ounce/283g) package frozen chopped spinach, thawed and squeezed dry or 1 pound (454g) fresh spinach, washed, stemmed, and chopped
  • 2 tablespoons (30g) unsalted butter
  • 2 tablespoons (30g) all-purpose flour
  • 1 1/2 cups (355 ml) whole milk
  • 1/2 cup (113g) heavy cream
  • 1/2 cup (56g) grated Parmesan cheese, plus more for topping
  • 1/4 cup (28g) grated Gruyere cheese (optional, but highly recommended!)
  • Salt and freshly ground black pepper to taste

Instructions:

  1. Heat olive oil in a large skillet over medium heat. Add garlic and onion and cook until softened and fragrant, about 3-5 minutes. Stir in nutmeg and red pepper flakes (if using).
  2. Add squeezed-dry spinach to the skillet. Cook, stirring occasionally, until heated through, about 2-3 minutes.
  3. Melt butter in the same skillet (or a separate saucepan) over medium heat. Whisk in flour and cook for 1-2 minutes, stirring constantly, until a smooth paste forms (a roux).
  4. Gradually whisk in milk, a little at a time, ensuring no lumps form. Cook, stirring constantly, until the sauce thickens enough to coat the back of a spoon, about 5-7 minutes.
  5. Stir in heavy cream, Parmesan cheese, and Gruyere cheese (if using). Season with salt and pepper to taste.
  6. Add the spinach mixture to the cheese sauce. Stir until everything is well combined and heated through. Sprinkle with additional Parmesan cheese before serving (optional).