My Grandma's Applause-Worthy Tomato-Coconut Soup Is Ready in Just 15 Minutes

This tomato soup gets its rich, creamy texture from coconut milk and ghee.

3 bowls of rice and Tomato Coconut soup, dutch oven on the side, and green tabletop.

Serious Eats / Jatin Sharma

Why It Works

  • The combination of tomatoes and coconut milk creates a balanced soup that's both rich and bright.
  • Shallots and ginger enhance the freshness of the tomatoes and pair well with cumin and red chile powder.
  • Briefly simmering the coconut milk but not boiling it ensures its fat does not separate.

One of my favorite meals to eat is the comforting tomato-coconut soup that my grandmother used to cook for me whenever I visited her in Maharashtra at her home on India's west coast. In Maharashtra it's known as a type of saar, which means “a soup-like dish” in Marathi. But my grandma always referred to her tomato-coconut dish as "santosh," which in Sanskrit means “contentment.” I’ve always thought this name was well suited: The creamy coconut milk paired with sweet–tart tomatoes and ghee creates a velvety soup that makes me very content indeed. 

As a professional chef, I’ve cooked my grandmother’s tomato-coconut soup many times over the years. The first time was back in 2007 for my first catering gig at my ex-husband’s boss’s Christmas party, where I served it as the first course of the dinner. It was so well received that everyone clapped as we toasted my grandmother, who was 8,700 miles away in India. 

A few years after that, I put the soup on the menu of my first pop-up restaurant. One guest enjoyed it so much that a few months later, she called me to cater her family Christmas dinner and asked for my grandmother’s soup. I cooked her family’s Christmas dinner for years after, and every year they requested this tomato-coconut soup on the menu. 

Bowls of rice and Tomato Coconut soup, dutch oven on the side, and green tabletop.

Serious Eats / Jatin Sharma

Streamlining My Grandmother’s Tomato-Coconut Soup Recipe

Cooking the recipe the way my grandmother did—boiling, peeling, and seeding fresh tomatoes and making fresh coconut milk from scratch—was not practical for catering large scale parties in my California kitchen. So over the years I’ve made adjustments to her recipe, namely calling for canned tomatoes and coconut milk in place of fresh, to create this easy, one-pot recipe I’m sharing below. 

With these two changes, the soup is not only easier to make, but it can be made any time of year, even when fresh tomatoes aren’t in season. Having used many brands of canned tomatoes in this soup over the years, I believe that real Italian San Marzano tomatoes work best, thanks to their consistent sweetness and flavor (beware that not all canned tomatoes with the words "San Marzano" on the label are actually the true ones from Italy). Just remember to remove any basil leaves from the can before using the tomatoes. 

As for the type of coconut milk, I have experimented with full-fat and low-fat coconut creams and milks, and I find full-fat coconut milk has the best flavor and viscosity for this dish; coconut cream is too rich and low-fat milk is just too thin. 

Another difference between my grandmother’s version of the soup and mine is the type of onion used. My grandmother always used Indian onions, which are smaller and sweeter than American white, red, and yellow onions. The best replacement is shallots. They are about the same size and have comparable allium flavor to the onions my grandmother would use when making this soup in India.

bowl taken off the heat on a wooden board

Serious Eats / Jatin Sharma

Once the shallots are softened, chile powder is added with the blended-and-strained tomato mixture, followed by the coconut milk. When adding the coconut milk, be careful not to bring the soup to a boil. This eliminates any risk of the fat in the coconut milk separating and pools of coconut oil forming on the surface.

The final santosh doesn’t taste like a standard American tomato soup. It’s light and silky with a balanced flavor that’s enhanced with subtle heat from the ginger, shallots and chile powder. In Maharashtra, the soup is often eaten mixed into white rice or with bits of chapati or other griddle bread dipped into it, and in my opinion it’s sure to bring contentment in every bite.

Recipe Details

My Grandma's Applause-Worthy Tomato-Coconut Soup Is Ready in Just 15 Minutes

Prep 5 mins
Cook 10 mins
Total 15 mins
Serves 4 to 6
Cook Mode (Keep screen awake)

Ingredients

  • 1 (28-ounce) can (794 g) peeled tomatoes in their juice, preferably Italian San Marzanos

  • 1 1/2 cups (360 ml) water, divided

  • 2 tablespoons (30 ml) ghee or avocado oil, plus melted ghee for serving

  • 2 small shallots (about 1 ounce; 28 g), minced

  • 2 teaspoons grated peeled fresh ginger

  • 1 1/4 teaspoons cumin seeds

  • 3/4 teaspoon red kashmiri chile powder

  • 2 teaspoons Diamond Crystal kosher salt; for table salt, use half as much by volume

  • 1 (13.5-ounce) can full-fat coconut milk, divided

  • Granulated sugar, to taste (optional)

  • 1/4 cup finely chopped fresh cilantro, for serving (optional)

  • 1 recipe cooked basmati rice for serving, optional

Directions

  1. Add tomatoes to a blender jar with their juices. Rinse out now-empty tomato can with 1 cup water, swish it around to collect more tomato flavor in the water, then add water to the blender. Blend tomatoes on high speed into a very smooth puree, about 1 minute.

    Tomato blended to puree in bowl on wooden board and blue surface

    Serious Eats / Jatin Sharma

  2. Set a fine-mesh strainer over a bowl and pour tomato puree through strainer. Add remaining 1/2 cup (120 ml) water to now-empty blender and blend briefly to gather any remaining tomato liquid; pour that liquid through strainer. Using the back of a metal ladle, press tomato puree through strainer;scrape the puree  that collects on bottom of strainer into bowl. Set strained puree aside and discard any remaining pulp left in strainer.

    two image collage. Top: Pouring tomato puree through fine mesh strainer on wooden board. Bottom: Pressing juice through fine mesh strainer into bowl on wooden board

    Serious Eats / Jatin Sharma

  3. In a 6-quart saucepan or Dutch oven, heat ghee or oil over medium heat until just shimmering. Add shallot and cook, stirring frequently, until softened, 4 to 5 minutes.

    sauteeing shallot in saucepan and mixing with a spoon

    Serious Eats / Jatin Sharma

  4. Add ginger and cumin and cook, stirring frequently, until aromatic, about 30 seconds.

    Sauteeing ginger into onions in pot

    Serious Eats / Jatin Sharma

  5. Stir in strained tomato puree, chile powder, and salt, then cook until it just comes to a boil, 5 to 7 minutes.

    Tomato puree added into pot on heat

    Serious Eats / Jatin Sharma

  6. Reduce heat to medium-low to maintain a gentle simmer, then vigorously shake can of coconut milk to combine fats and liquids before opening. While stirring constantly, slowly pour coconut milk into simmering soup. Raise heat to medium-high heat and return soup to a simmer. Once simmering, immediately remove from heat. Do not let soup boil, as this may cause fat in coconut milk to separate. Taste soup: Season to taste and, if too tart, add sugar to taste.

    Adding coconut milk to soup on heat

    Serious Eats / Jatin Sharma

  7. Serve in a bowl as-is or pour over hot white Basmati rice. Drizzle with melted ghee and sprinkle with cilantro (if using) before serving.

    Spooning soup onto bowl of rice on wooden board

    Serious Eats / Jatin Sharma

Special Equipment 

Blender, fine-mesh strainer, 6-quart saucepan or Dutch oven

Make Ahead and Storage

The soup can be refrigerated for up to 1 day. To serve, warm it over low heat on the stovetop. Do not bring to a boil, as this might cause the soup to separate.

Nutrition Facts (per serving)
224 Calories
18g Fat
15g Carbs
3g Protein
×
Nutrition Facts
Servings: 4 to 6
Amount per serving
Calories 224
% Daily Value*
Total Fat 18g 23%
Saturated Fat 15g 74%
Cholesterol 11mg 4%
Sodium 584mg 25%
Total Carbohydrate 15g 5%
Dietary Fiber 3g 10%
Total Sugars 4g
Protein 3g
Vitamin C 18mg 92%
Calcium 66mg 5%
Iron 4mg 20%
Potassium 430mg 9%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)