Preheat oven to 350 degrees F.
Lightly grease a 9x13-inch baking dish, and set aside.
Bring a large pot of water to a boil, and cook spaghetti. You want it al dente, about 12 minutes cooking time. Then drain.
While spaghetti cooks, heat a large skillet over medium heat, and add onions, garlic, ground beef, and sausage. Cook until sausage and ground beef are browned and onions are soft, about 7-10 minutes.
Drain excess grease off, and then combine meat mixture with spaghetti sauce, and set aside.
Combine ricotta cheese and cottage cheese, set aside.
In a large bowl, whisk eggs, Parmesan cheese, and butter together.
Stir cooked spaghetti into the egg mixture.
Assemble baked spaghetti by layering: ½ the spaghetti mixture into baking dish. ½ the ricotta mixture, ½ the meat sauce, and ½ the mozzarella. Repeat for a second layer to use up the rest of the ingredients.
Cover with aluminum foil.
Bake in preheated oven for 40 minutes.
Remove foil and continue baking for about 20 minutes, until the mozzarella cheese is melted and lightly browned.
Remove from oven, garnish with fresh basil and serve!