To begin, heat the vegetable oil in a large pot over medium heat. Add the minced garlic and sauté until fragrant, about 1 minute. Add the sliced onion and cook until soft and translucent, another 2-3 minutes. Stir occasionally to prevent burning.
Add the tomato wedges to the pot. Stir gently and cook for 3 minutes until the tomatoes soften slightly, releasing their juices to form a flavourful base.
Pour in the water or fish stock. Bring the mixture to a boil over medium-high heat. Once boiling, stir in the tamarind paste, fish sauce, sugar, and salt. Adjust seasoning to taste, ensuring a balance of sweet, sour, and salty flavours.
Reduce the heat to medium-low and add the pineapple chunks and okra. Simmer for 5-7 minutes until the pineapple is tender and the okra is cooked through but still holds its shape.
Gently add the fish pieces into the pot, ensuring they are fully submerged in the broth. Let the soup simmer for another 5-7 minutes or until the fish is cooked and flaky. Avoid stirring vigorously to prevent breaking the fish apart.
Add the bean sprouts, elephant ear stalks or celery (if using), and sliced chili peppers. Cook for an additional 2 minutes, allowing the vegetables to retain some crunch while absorbing the soup’s flavours.
Remove the pot from the heat and immediately garnish with chopped culantro or cilantro and Thai basil leaves. Stir gently to combine. Taste the soup and adjust the seasoning with more fish sauce, tamarind, or sugar, as desired.
Serve the soup hot in individual bowls, ensuring each serving has a mix of fish, vegetables, and broth. Garnish with additional herbs if desired and offer lime wedges on the side for a zesty finish. Canh Chua pairs beautifully with steamed jasmine rice for a complete Vietnamese meal.