Soak the breadcrumbs: In a large bowl, combine the breadcrumbs and milk.
Let it sit for 3–4 minutes until the mixture looks like a thick paste. This is your panade, which keeps the meatballs tender.
Mix the aromatics: Add the grated onion, garlic, Parmesan, parsley, Italian seasoning, salt, pepper, and red pepper flakes to the bowl. Stir to blend well.
Add the meat and egg: Add the ground beef, ground pork, and egg.
Use your hands or a fork to gently mix just until combined. Do not overmix; that can make the meatballs tough.
Preheat the air fryer: Set to 390°F (200°C) for 5 minutes. Lightly spray the basket with olive oil while it preheats.
Shape the meatballs: Scoop 1.5 tablespoons per meatball (about golf-ball size). Roll gently with damp hands to make 18–22 even balls. Uniform size ensures even cooking.
Basket arrangement: Place meatballs in a single layer in the air fryer basket, leaving a bit of space between each.
Lightly spray the tops with olive oil for extra crisping.
Air fry, then flip: Cook at 390°F (200°C) for 8 minutes. Shake the basket or turn the meatballs, then cook another 3–5 minutes until browned and cooked through. Internal temp should reach 165°F (74°C).
Rest and serve: Let the meatballs rest for 3 minutes to retain juices. Serve with warm marinara, in a sub roll, over pasta, or on a salad.