Warm the pan: Heat the oil in a large skillet or saucepan over medium.
Add the onion and a pinch of salt. Cook 6–8 minutes, stirring, until soft and lightly golden.
Build the base: Stir in garlic, ginger, and chilies. Cook 1–2 minutes until fragrant.
If the pan looks dry, add a splash of water to prevent sticking.
Toast the spices: Add cumin, coriander, garam masala, turmeric, and paprika. Toast for 30–45 seconds, stirring constantly. This blooms the spices and deepens flavor.
Add tomatoes: Pour in the crushed tomatoes.
Simmer 3–5 minutes to reduce slightly and mellow the acidity. Taste; if very tangy, add the optional sugar.
Make it creamy: Stir in the coconut milk and bring to a gentle simmer. The sauce should turn a warm, golden-orange color.
Stir in chickpeas: Add the chickpeas and simmer 8–10 minutes.
The sauce will thicken and cling to the beans. Add water as needed for your preferred consistency.
Add greens: Fold in the spinach by the handful. It will wilt quickly in 1–2 minutes.
If using frozen spinach, make sure it’s well-drained before adding.
Season and brighten: Add salt and pepper to taste, then finish with lemon juice or vinegar to lift the flavors. Adjust spices or heat if you like.
Serve: Sprinkle with chopped cilantro. Spoon over basmati rice or pair with warm naan.
Add a dollop of yogurt or lime wedges on the side if you want extra creaminess and pop.