Prep the vegetable “noodles.” For spaghetti squash: halve, scoop seeds, brush with oil, and bake cut-side down at 400°F (200°C) for 30–40 minutes until strands pull easily with a fork. For zoodles: salt lightly and let drain in a colander for 15–20 minutes, then pat dry.
Reduce moisture. If using spaghetti squash, spread the strands on a clean towel and gently squeeze to remove excess water.
Too much moisture can make the casserole watery.
Brown the meat. Heat olive oil in a large skillet over medium-high. Add onion and cook 3–4 minutes until translucent. Add garlic and cook 30 seconds.
Add ground beef, season with salt and pepper, and cook until browned. Drain excess fat if needed.
Build the sauce. Stir in marinara, Italian seasoning, and crushed red pepper if using. Simmer 5–7 minutes to thicken slightly.
Taste and adjust salt and pepper.
Make the creamy layer. In a bowl, combine cream cheese with ricotta or cottage cheese (if using). Microwave 10–15 seconds to soften if needed. Stir until smooth, then mix in 1/2 cup mozzarella and 1/4 cup Parmesan.
Season with a pinch of salt and pepper.
Assemble. Lightly grease a 9x13-inch casserole dish. Spread half the meat sauce on the bottom. Add all the veggie “noodles,” then dot and spread the creamy cheese mixture over them.
Top with the remaining meat sauce.
Add cheese. Sprinkle the top with the remaining mozzarella and Parmesan.
Bake. Bake at 375°F (190°C) for 20–25 minutes, until bubbling around the edges and the cheese is melted and golden in spots. If you want more browning, broil for 1–2 minutes, watching closely.
Rest and serve. Let the casserole rest 10 minutes to set. Garnish with fresh basil or parsley.
Slice and serve warm.