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 ribs on all sides until deep 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 rendered fat. Sauté for 5-7 minutes, stirring occasionally, until vegetables have softened and released their fragrance.
04 - Stir in turmeric, coriander, chili flakes, and bay leaves. Cook for 1 minute, constantly stirring, until spices are fragrant and toasted.
05 - Add chopped tomato to the pot and cook for 2 minutes until softened and beginning to break down.
06 - Return the seared ribs to the pot, along with any accumulated juices. Stir in fish sauce, soy sauce, and palm sugar until evenly distributed.
07 - Pour in coconut milk and beef stock, ensuring ribs are mostly submerged. Bring to a gentle simmer, then reduce heat to low.
08 - Cover and maintain a gentle simmer over low heat for 2 to 2½ hours, or until meat pulls easily from the bone. Occasionally skim excess fat from surface during cooking.
09 - Taste and adjust seasoning with salt, pepper, or additional fish sauce as needed. Remove bay leaves before serving.
10 - Ladle ragu into bowls and garnish with fresh cilantro, Thai basil, and sliced red chili if desired. Serve alongside steamed jasmine rice or crusty bread for soaking up the sauce.