In a large bowl, combine the ground beef, onion, egg, and onion soup mix. Mix them all gently until they are just combined.
Form the mixture into meatballs about 1½ inches in diameter (roughly 40g each) and place them on a plate.
Heat a large skillet over medium heat. Add one tablespoon of butter if your beef is very lean, then cook the meatballs on all sides about 5-6 minutes total.
Drain any excess fat, then remove the meatballs from the skillet and set them aside.
In the same skillet, melt 2 tablespoons of butter over medium heat. Stir in the flour to make a roux. Cook the roux for 2–3 minutes, whisking constantly until it's bubbly and a medium golden-brown.
Gradually whisk in the beef broth, scraping up any browned bits from the pan. Add the tablespoon of onion soup mix and stir to combine. Simmer over low heat until the gravy thickens, about 3–4 minutes.
Return the meatballs to the skillet, spooning the gravy over them. Cover them and simmer for 5–7 minutes until the meatballs are cooked through (internal temp 165 degrees F).
Serve the meatballs and gravy over mashed potatoes, rice, or egg noodles.