Cook the pasta: Bring a large pot of salted water to a boil. Cook macaroni until just al dente, about 1–2 minutes less than package instructions. Drain and set aside.
Prepare the cheese: In a bowl, mix cheddar, Gruyère, and mozzarella. Set aside.
Make the sauce: In a large saucepan, melt butter over medium-low heat. Add flour and whisk for 2 minutes to form a roux. Gradually (DON'T pour all at once) whisk in the milk until smooth. Simmer 5–6 minutes, whisking often, until slightly thickened.
Add cheese: Stir in ¾ of the cheese mixture, adding a handful at a time, whisking until melted. Season with salt, pepper, and nutmeg.
Combine: Add drained pasta to the sauce and stir until well coated.
Bake: Transfer to a greased 12-inch (30 cm) round baking dish or a standard 9×13-inch (23×33 cm) rectangular baking dish. Sprinkle the remaining cheese over the top. Bake at 350°F (180°C) for 20–25 minutes, until golden and bubbling.
Video
Notes
Milk ratio: The sauce may look very liquid at first, trust the process. It thickens as it cooks and continues to set in the oven as the pasta absorbs moisture.
Add the milk slowly: Pour the milk in gradually while whisking constantly. Adding it too quickly can create lumps and prevent the sauce from thickening properly.
Don’t brown the roux: When cooking the butter and flour, keep the heat medium-low and whisk continuously. If the roux browns, it develops a nutty flavor and loses some of its thickening power. For mac and cheese, you want a pale roux so the sauce stays smooth, creamy, and mild.
Cheese options: Sharp cheddar is classic, Gruyère adds nutty flavor, and mozzarella gives extra melt. You can also use fontina, Monterey Jack, or even a little Parmesan (more options in the cheese section).
Flavor variations: Add cooked bacon, sautéed mushrooms, caramelized onions, or fresh herbs (thyme, parsley) to the sauce before baking. A pinch of cayenne or mustard powder enhances flavor.
Topping: For a crunchy top, mix ½ cup (60 g) breadcrumbs with 1 tbsp melted butter and sprinkle over the cheese layer before baking.
Storage: Store leftovers covered in the fridge for up to 3 days. Reheat in the oven with a splash of milk to restore creaminess.
For extra gold on top: Broil for 1–2 minutes at the end, but watch closely!
Make-ahead: Assemble fully, cover, and refrigerate up to 24 hours before baking. Add 5–10 minutes to the baking time.
Substitutions: Use gluten-free pasta and flour for a gluten-free version. Whole wheat pasta also works well.
Watch the Video: For a better understanding of the recipe, I always recommend watching the video recipe, which includes a step-by-step guide to help you succeed.