Heat the oven to 400F/200C. Cook chopped onion in olive oil over low heat for 5-7 minutes until soft but not coloured. Add ground beef and cook, stirring it the whole until no longer pink.
Add dried oregano, salt, tomato passata/crushed tomatoes and basil pesto. Bring to a boil and then turn the heat down and simmer for 20 minutes, stir one in a while to avoid burning. Take it off the heat and cool slightly.
While the sauce is simmering, cook the shells in a large pot according to package instructions. It's important to cook pasta 1-2 minutes less than package directions advise as it will be further cooked in the oven.
Drain pasta and rinse it with cold water, this will prevent pasta shells sticking to each other. Cool until room temperature.
To a 9X13 inch rectangular dish add 1 cup of the sauce, so it will cover the bottom of the pan. Then arrange the shells in rows in a single layer. Then fill the shells with the beef sauce, approximately two teaspoons per shell. (I was able to fit 25 shells in my pan). If there is any sauce leftover, spoon it over the pasta. Then sprinkle with grated mozzarella cheese, cover with tin foil and bake in the preheated oven for 10 minutes. Then uncover and cook for 15 minutes longer until the cheese is golden and pasta is hot and bubbly.