Prep the zucchini: Trim ends and slice zucchini lengthwise into 1/8–1/4-inch ribbons using a sharp knife or mandoline. Lay slices on paper towels, sprinkle lightly with salt, and let sit for 15–20 minutes to draw out moisture.
Pat dry.
Optional pre-cook for less moisture: Lightly brush the zucchini with olive oil and grill or roast at 400°F (200°C) for 5–7 minutes per side until slightly tender. This helps prevent a watery lasagna.
Make the meat sauce: In a large skillet over medium heat, add a drizzle of olive oil. Sauté onion until translucent, about 3–4 minutes.
Add garlic for 30 seconds, then crumble in ground beef. Cook until browned, breaking it up as it cooks. Drain excess fat if needed.
Season and simmer: Stir in marinara, tomato paste (if using), Italian seasoning, red pepper flakes, salt, and pepper.
Simmer on low for 10 minutes to thicken and deepen the flavor. Taste and adjust seasoning.
Mix the ricotta layer: In a bowl, combine ricotta, egg, 1/4 cup Parmesan, a pinch of salt, and black pepper. Stir until smooth.
Preheat the oven: Set to 375°F (190°C).
Lightly grease a 9x13-inch baking dish.
Assemble the lasagna: Spread a thin layer of meat sauce on the bottom. Add a layer of zucchini slices, slightly overlapping. Dollop and spread about half of the ricotta mixture over the zucchini.
Sprinkle with mozzarella, then add more meat sauce. Repeat layers: zucchini, remaining ricotta, mozzarella, sauce. Finish with a final layer of zucchini, remaining sauce, and the rest of the mozzarella.
Sprinkle the remaining Parmesan on top.
Bake: Cover loosely with foil (tent so it doesn’t stick to the cheese) and bake for 20 minutes. Uncover and bake another 15–20 minutes until bubbly and golden on top.
Rest before slicing: Let it sit for 10–15 minutes. This helps the layers set for cleaner slices.
Garnish and serve: Top with fresh basil or parsley.
Slice and enjoy.