Heat oil in a wide pot over medium-high heat. Add the shallot and chili pepper and cook for 1 minute.
Sauté the vegetables:
Add the mushrooms, carrots, and potatoes and cook for 5 minutes, stirring occasionally. Add a pinch of salt.
Crack the coconut:
Scoop out the solid fat from the coconut milk and add it to the pot. Cook until it begins to separate and any water from the coconut evaporates. This will take about 7-12 minutes. Stir occasionally to prevent the potatoes from sticking.
Once it separates, add the curry paste. Stir to mix the paste into the coconut and cook for 3-4 minutes. Pour in the rest of the liquid from the can of coconut and stir to lift up anything stuck to the bottom.
Simmer the curry:
Bring to a boil, reduce heat, and simmer the curry for 15–20 minutes until the potatoes are fork-tender. Add a few splashes of water as needed if it sticks.
While the curry simmers, prepare a pot of rice or noodles.
Finish the curry:
Taste and adjust seasonings.
Add the shrimp, bok choy, and bell pepper and cook for 5-8 minutes until shrimp is opaque. Taste and season one final time. Turn off the heat.
To serve:
Serve with cooked rice, cilantro, crispy shallots, and lime wedges. Enjoy!