Sauté the aromatics. Heat the coconut oil in a large Dutch oven or heavy-bottomed pot over medium heat. Add the diced onion and cook for 5 to 6 minutes, stirring often, until softened and lightly golden at the edges. Add the garlic and ginger and cook for 1 minute more, until fragrant — do not let the garlic brown, or it will turn bitter.
Bloom the spices. Add the curry powder, turmeric, cumin, garam masala, and red pepper flakes (if using). Stir constantly for 30 to 45 seconds, until the spices smell warm and toasty and coat the onion. If the pot looks dry, add a splash of water to keep them from scorching.
Build the base. Stir in the tomato paste and cook for 1 minute, letting it darken slightly. Add the diced tomatoes with their juices, then stir in the coconut milk, scraping up any browned bits from the bottom of the pot.
Add the coconut milk and chickpeas. Pour in the coconut milk and stir until the sauce is smooth and evenly colored. Add the drained chickpeas, salt, and black pepper. Bring to a gentle simmer — not a rolling boil, which can make coconut milk separate — then reduce the heat to medium-low.
Simmer. Let the curry simmer uncovered for 15 to 18 minutes, stirring every few minutes. The sauce will thicken slightly and turn a gorgeous golden-orange. If it gets thicker than you like, splash in a little water or vegetable broth. Taste and adjust the salt now; chickpeas are bland little sponges and they need proper seasoning.
Wilt the spinach and finish. Stir in the baby spinach a handful at a time, letting each batch wilt before adding the next. Once all the spinach is in, squeeze in the lime juice and stir it through. Taste once more — it should be rich, warm, and bright all at once — and add extra salt if needed.
Serve. Ladle the curry over fluffy basmati rice or alongside warm naan. Shower with chopped cilantro and lime wedges for that fresh finish. Leftovers are even better — store them in the fridge for up to 4 days and reheat gently.