Prepare the vegetables for the soup and garnishes first. Mince the garlic and grate the ginger using a small-holed cheese grater. Or use 3 cubes of Trader Joe's frozen ginger. Peel and dice the sweet potato into cubes. Wash the bok choy well or use Trader Joe's pre-washed bag of fresh bok choy. Cut leafy green tips off and cut them into vertical slivers which will be used when serving the soup. Then chop bok choy stalks into quarters, vertically. Thinly slice the red onion and roughly chop the cilantro.
Add the cooking oil to a large soup pot over medium-high heat. Once oil is hot add the minced garlic, grated ginger, and Thai red curry paste. Sauté over medium heat for 1-2 minutes.
Add the diced sweet potato and chopped bok choy stalks to the pot along with the chicken or vegetable broth. Bring to a boil over medium-high heat, then reduce the heat to low and let simmer for 5-7 minutes, or until the sweet potatoes are tender.
While the soup is simmering, cook bean thread noodles according to package directions. Drain noodles in a colander, then put in a bowl and set aside.
Once the sweet potatoes are tender, add the coconut milk, fish sauce, and brown sugar to the soup. If adding tofu and/or mushrooms add them now. Stir, let simmer for 3-4 minutes. If using shrimp, put uncooked, thawed shrimp into the soup and simmer until the shrimp are fully poached and the raw color is gone, approx 3 minutes. Finally, add half of the bok choy greens and let them wilt in the hot soup.
To serve, divide the bean thread noodles among the bowls. Ladle the soup over the noodles. If using crab, add a few lumps on top of the soup now. Then top with red onion, cilantro, bok choy tips and a drizzle of sriracha.