Preheat oven to 350 degrees Fahrenheit.
Cook shells according to the package directions. Cook until just al dente, drain, and spread out on a pan to cool. Do not overcook them, or they will become mushy and can easily break when stuffing.
While the pasta cooks, make the meat sauce. Heat a large skillet over medium-low heat. Add oil and let it get hot. Next, add onions, salt, and pepper, and sauté for 3-4 minutes, stirring occasionally, until softened and slightly browned. Then add garlic and saute for 1 minute until fragrant. Next, add ground beef and break it up with the back of a spoon or meat chopper. Sauté for 5-7 minutes until mostly browned. Add Italian seasoning, salt, and pepper, stir to combine, and cook until the meat is browned. If you have a lot of extra grease, drain it. Add 2 1/2 cups of marinara sauce, stir to combine, and let simmer for 2-3 minutes.
While the meat cooks, make the ricotta mixture. To a medium bowl, add ricotta, egg, 1/2 cup mozzarella (2 ounces), and a pinch of pepper. Mix well to combine.
Make stuffed shells. To a large baking dish (9×13-inch, or similar size), add half of the meat sauce and evenly spread it out across the bottom of the pan. Fill each shell with about a spoonful of the ricotta mixture and place face up in your pan. Top with your remaining meat sauce and marinara sauce. Sprinkle with the remaining mozzarella cheese.
Bake. Cover the pan with aluminum foil and bake for 30-35 minutes. Remove foil and bake an additional 5 minutes until sauce is bubbling.
Enjoy! Top with freshly grated parmesan cheese and parsley, and enjoy!