Ingredients:

  • 3 large yellow onions, thinly sliced (about 1 kg / 2.2 lbs)
  • 2 tablespoons unsalted butter (30g / 1 oz)
  • 1 tablespoon olive oil (15 ml / 0.5 fl oz)
  • 1 teaspoon granulated sugar (5g / 0.2 oz)
  • 1/2 teaspoon salt (2.5g / 0.09 oz)
  • 1/4 teaspoon black pepper (1.25g / 0.04 oz)
  • 1/4 cup dry Sherry or dry white wine (60 ml / 2 fl oz) Optional, but adds depth.
  • 1 cup beef broth (240 ml / 8 fl oz)
  • 1 pound elbow macaroni (450g / 1 lb)
  • 4 tablespoons unsalted butter (60g / 2 oz)
  • 1/4 cup all-purpose flour (30g / 1 oz)
  • 3 cups whole milk (720 ml / 24 fl oz)
  • 1/2 teaspoon salt (2.5g / 0.09 oz)
  • 1/4 teaspoon black pepper (1.25g / 0.04 oz)
  • 1/4 teaspoon ground nutmeg (1.25g / 0.04 oz)
  • 4 cups shredded sharp cheddar cheese (about 450g / 1 lb)
  • 1 cup shredded Gruyere cheese (about 115g / 4 oz)
  • 1/2 pound ground beef or bacon, cooked and crumbled (Optional)
  • 1/4 cup chopped fresh parsley, for garnish (Optional)

Instructions:

  1. Caramelize the Onions: Melt butter and olive oil in the pot. Add onions, sugar, salt, and pepper. Cook over medium-low heat, stirring occasionally, until deep golden brown and very soft (about 30-40 minutes). Deglaze with Sherry (if using) and cook until evaporated. Stir in beef broth and simmer for a few minutes.
  2. Cook the Macaroni: Cook macaroni according to package directions until al dente. Drain well.
  3. Make the Cheese Sauce: Melt butter in a saucepan. Whisk in flour and cook for 1 minute (roux). Gradually whisk in milk until smooth. Bring to a simmer, stirring constantly. Reduce heat and simmer for 5 minutes, stirring occasionally, until thickened. Stir in salt, pepper, and nutmeg. Remove from heat and stir in cheddar cheese until melted and smooth.
  4. Assemble the Mac & Cheese: Combine cooked macaroni and cheese sauce in a large bowl. Stir gently to coat.
  5. Layer and Bake: Spread half of the mac & cheese mixture into the prepared baking dish. Top with half of the caramelized onions and half of ground beef/bacon. Repeat layers. Sprinkle Gruyere cheese evenly over the top.
  6. Bake: Bake in a preheated oven at 375°F (190°C) for 20-25 minutes, or until golden brown and bubbly.
  7. Rest: Let stand for 10 minutes before serving. Garnish with chopped parsley (if using).