01 - Pat the beef ribs dry with paper towels and season generously with salt and black pepper on all sides.
02 - Heat vegetable oil in a large Dutch oven or heavy pot over medium-high heat. Sear the ribs on all sides until deeply golden brown, working in batches if necessary to avoid overcrowding. Transfer seared ribs to a plate and set aside.
03 - Reduce heat to medium. Add onions, garlic, ginger, lemongrass, carrots, celery, and bell pepper to the same pot. Sauté for 5 to 7 minutes until vegetables are softened and fragrant, stirring occasionally.
04 - Stir in turmeric, coriander, chili flakes, and bay leaves. Cook for 1 minute until spices are fragrant, being careful not to burn them.
05 - Add chopped tomato and cook for another 2 minutes until it begins to break down and release its juices.
06 - Return the seared ribs to the pot. Stir in fish sauce, soy sauce, and palm sugar, ensuring the seasoning is evenly distributed.
07 - Pour in coconut milk and beef stock, ensuring the ribs are mostly submerged. Bring the mixture to a gentle simmer, stirring to combine.
08 - Cover the pot and simmer over low heat for 2 to 2.5 hours, or until the ribs are fall-off-the-bone tender. Occasionally skim off any excess fat that rises to the surface during cooking.
09 - Taste the ragu and adjust seasoning with additional salt, pepper, or fish sauce as desired. Remove and discard the bay leaves before serving.
10 - Ladle the ragu into bowls and garnish with fresh cilantro, Thai basil, and sliced red chili if desired. Serve immediately with steamed jasmine rice or crusty bread to soak up the rich sauce.