Preheat oven to 375 degrees fahrenheit, 190 degrees celsius.
Caramelize the onions: Thinly slice your onions, then heat butter and olive oil in a pan over medium-low heat. Once the butter is melted, add onions and stir. Add the sugar, then cook slowly for 30-45 minutes, stirring occasionally, until onions are a deep golden brown and caramelized. Optional: Deglaze the bottom of the pan with white wine, scraping up the caramelized residue, then set aside.
Prepare your breadcrumbs: Cut your baguette or sourdough into small chunks. Toss them in extra virgin olive oil and seasoning. Add the bread chunks to a sheet tray, then toast them in the oven at 375°F/190°C until golden brown. Add your toasted bread into a food processor or blender, pulse until you reach desired breadcrumb consistency.
Cook the pasta: Bring a large pot of salted water to a boil. Add your pasta, cook until al dente. Drain, and set aside.
Make the bechamel (cheese sauce): In a saucepan over medium-low heat, melt your butter. Once melted but not browned, whisk in your flour to form a roux. Cook for 2-3 minutes, until there’s no raw flour smell left. Slowly whisk in your heavy cream and milk, stirring constantly, until smooth, glossy, and thickened. Reduce heat to low, then stir in ¾ of all your cheeses. Reserve some cheese for layering and topping purposes. Season with salt and pepper to taste. Optional: For a smokey flavor, add in a tablespoon of smoked paprika.
Add in your cooked pasta and caramelized onions, mixing until everything is fully incorporated and coated.
Layer and Bake: Transfer half your mac and cheese to a baking dish, then layer with some of your reserved cheese. Repeat this process, finishing your mac and cheese with a layer of the freshly grated cheese and breadcrumbs. Bake at 375°F/190°C for 20-25 minutes until golden brown. Broil the final few minutes for extra golden finish.
Finishers: Cut your favorite piece, top with chives or parsley, and enjoy!
