In a bowl, combine ground meat, ricotta, breadcrumbs, egg, Parmesan, parsley, salt, pepper, garlic powder, onion powder, and red pepper flakes. Mix gently just to combine (overmixing toughens).
With damp hands, form 18–22 golf‑ball‑size meatballs. Chill 10 minutes to help them hold shape.
Heat a large skillet (oven-safe if finishing there) over medium–medium‑high. Add 1–2 tbsp olive oil. Brown meatballs in batches, turning to color most sides, 5–7 minutes total (they’ll finish in sauce). Transfer to a plate.
In the same skillet, lower heat to medium. Add butter; when melted, add garlic and cook 30 seconds.
Sprinkle in flour; whisk 30–60 seconds.
Whisk in broth gradually, then cream. Simmer 2–3 minutes until slightly thick.
Stir in Parmesan, Dijon (if using), salt, pepper, and a pinch of nutmeg. Taste and adjust (you want savory but not too salty; cheese will add salt).
Stir spinach into the sauce to wilt (30–60 seconds).
Nestle browned meatballs into the sauce with any juices. Simmer gently 8–10 minutes, turning once, until cooked through (165°F/74°C inside) and sauce is creamy. If it gets too thick, splash in a bit of broth or milk; if thin, simmer a minute uncovered.
Optional brightness: a small squeeze of lemon to finish.
Garnish with parsley and extra Parmesan. Great with buttered noodles, mashed potatoes, rice, polenta, or crusty bread.
