Boil the noodles: Cook lasagna noodles in salted water until al dente.
Drain and lay flat on parchment or lightly oiled sheet pans so they don’t stick.
Make the meat sauce: Heat olive oil in a large skillet over medium heat. Sauté onion until soft, about 4 minutes. Add garlic and cook 30 seconds.
Add ground beef, breaking it up, and cook until browned. Season with salt and pepper.
Build the sauce: Stir in crushed tomatoes, tomato paste, Italian seasoning, red pepper flakes (if using), and sugar. Simmer 10–15 minutes until slightly thickened.
Taste and adjust salt and pepper.
Mix the ricotta filling: In a bowl, combine ricotta, egg, parsley, Parmesan, a pinch of salt, and black pepper. Stir until creamy. Fold in chopped basil if you like.
Preheat the oven: Set to 375°F (190°C).
Grease a 9x13-inch baking dish.
Assemble the rolls: Spread a thin layer of meat sauce over the bottom of the baking dish. On each noodle, spread 2–3 tablespoons of ricotta mixture evenly, leaving a small border at the ends. Add a spoonful of meat sauce on top of the ricotta, then a sprinkle of mozzarella.
Roll them up: Starting at the short end, roll each noodle snugly but not too tight.
Place seam-side down in the baking dish. Repeat with remaining noodles.
Sauce and cheese: Spoon remaining meat sauce over the rolls. Top with the rest of the mozzarella and a little extra Parmesan.
Bake: Cover loosely with foil and bake 20 minutes.
Uncover and bake another 10–15 minutes until bubbling and the cheese is golden in spots.
Rest and serve: Let the rolls sit 5–10 minutes so they set. Garnish with more parsley or basil. Serve warm.