Drain the tofu over a mesh strainer, kept over a large bowl for about an hour. Pat it dry with a paper towel and cut into chunky cubes.
Heat 1 tablespoon of coconut oil in a large non-stick or cast iron frying pan over medium-high heat. Carefully add the tofu (there will be a bit of spluttering unless the tofu is very dry) in a single layer. Cook the tofu for about 2 to 3 minutes per side, or until both the sides have browned. Keep aside.
In the same pan add the remaining coconut oil and add the sliced onions, grated garlic and ginger and cook it for 3 minutes or till the onions are slightly browned.
Add the sweet potato and the curry powder and salt and give it a good mix. Cover and let it cook for 5 minutes over medium-low heat.
When the potatoes have softened a little, add the coconut milk and water, followed by chopped bell pepper and green beans. Let it simmer for another 5 minutes over medium heat.
Add the pan seared tofu and let it cook for another 2 minutes. Taste and add more salt if needed.
Take it off the heat and garnish with a handful of chopped cilantro.
Serve hot with brown rice.