Prep the zucchini. Spiralize or thinly slice zucchini lengthwise with a mandoline or vegetable peeler.
Lay on paper towels, sprinkle lightly with salt, and let sit 15–20 minutes to draw out moisture.
Blot and pre-cook zoodles. Pat dry well. Optionally, sauté in a dry skillet for 2–3 minutes to release more moisture, then blot again. This step helps prevent a watery casserole.
Make the meat sauce. Heat olive oil in a large skillet over medium heat.
Add onion and cook 3–4 minutes until translucent. Stir in garlic for 30 seconds. Add ground meat, break it up, and cook until browned.
Drain excess fat if needed.
Season and simmer. Stir in marinara, oregano, basil, red pepper flakes, and a pinch of salt and pepper. Simmer 5–7 minutes to thicken slightly. Taste and adjust seasoning.
Mix the ricotta layer. In a bowl, combine ricotta, egg, and half the Parmesan.
Season with a pinch of salt and pepper. Mix until smooth.
Assemble. Lightly oil a 9x13-inch baking dish. Spread a thin layer of meat sauce on the bottom.
Add a layer of zucchini, then dollops of ricotta mixture, spread gently. Sprinkle some mozzarella. Repeat layers (sauce, zucchini, ricotta, mozzarella) until ingredients are used, finishing with sauce and the remaining mozzarella and Parmesan on top.
Bake. Cover loosely with foil (tent it so cheese doesn’t stick).
Bake at 375°F (190°C) for 20 minutes. Remove foil and bake 10–15 minutes more, until bubbly and golden.
Rest and serve. Let it rest 10–15 minutes so it sets and slices cleanly. Garnish with fresh basil if you like.