Take a medium sized wok/pot and on medium high heat fry the onions till golden brown. Stir constantly and do not let them burn. This should take about 8-10 minutes.Keep an eye on the onions as they continue to cook rapidly after they are browned. Lower the heat once they are golden brown and add the ginger and garlic to slow down the cooking and prevent burning.
Stir for about 30 seconds till aromatic and then add the ground beef and stir to combine making sure to break it up as you stir as it tends to clump.
Once the beef is well combined, add all the spices and stir till well combined. Add the tomatoes and green chili and stir before lowering the flame and covering the pot. Let the tomatoes wilt for about 15-20 minutes.
Once the tomatoes have softened, uncover the pot and increase the heat to high all while stirring the keema with quick movements smashing the tomatoes to fully incorporate them into the curry. Do this until the moisture dries and the oil rises to the top. About 5-7 minutes.
Finally, once you get your desired consistency, switch off the heat and garnish the keema with chopped cilantro, a drizzle of lemon juice and optionally some garam masala. Enjoy!
Video
Notes
I use lean ground beef (80/20), but full-fat ground beef works well too, as does ground lamb, chicken, or turkey.
Keep an eye on the onions as they continue to cook rapidly after they are browned. Lower the heat once they are golden brown, and add the ginger and garlic to slow down the cooking and prevent burning.
If adding spinach or peas, stir them in when adding the tomatoes and green chili. Add the potatoes with the ground beef, as they take longer to cook. Dice potatoes into 1-2 inch cubes for quicker cooking.
If using ground chicken or turkey, remember that it cooks faster (about 10-15 minutes) and may require extra seasoning. Start with an additional 1/4 teaspoon each of red chili powder, cumin, and coriander, and adjust to taste.