In a skillet over medium heat, add olive oil and butter.
Sauté chopped onion for 3–5 minutes, until translucent. Add garlic and cook until fragrant, about 30 seconds.
Pour in white wine and let simmer for 2 minutes to cook off the alcohol.
Add ground beef and cook for about 8 minutes, until fully browned. Stir in spinach and cook until wilted.
Transfer mixture to a food processor and pulse until finely combined (but not completely puréed — you want texture).
Stir in parmesan and salt. Let the mixture cool slightly, then gently fold in the beaten egg whites. Set aside.
On a wooden board or clean surface, pour flour and salt into a mound. Create a well in the center.
Add the whole egg, egg yolk(s), and beet purée into the well.
Using a fork, begin whisking the eggs and beets, gradually pulling in flour from the edges.
Add water a little at a time (about ⅛ cup increments) as needed until the dough begins to come together. You may not need the full ¾ cup.
Knead for 8–10 minutes until smooth and elastic.
Wrap in plastic wrap and let rest for at least 30 minutes at room temperature.
Roll out the dough on a floured surface until thin (about 1/16 inch thick).
Place small spoonfuls (about 1 tablespoon) of filling spaced evenly across the sheet.
Lightly brush around the filling with water.
Lay another sheet of dough over the top and gently press around each mound to remove air pockets.
Use a heart-shaped cutter to cut out each ravioli. Seal edges firmly with fingers or a fork.
Bring a large pot of salted water to a boil.
Add ravioli and cook for 3–5 minutes, or until they float and the pasta is tender.
Remove with a slotted spoon.
Serve immediately with lemon, parsley, a drizzle of olive oil and extra parmesan.