Drain the tofu and wrap it in a paper towel. Place something heavy on top (a mason jar filled with water for example, or a heavy pan or skillet) and let the paper towel absorb the moisture for at least 15 minutes.
In the meantime, combine the soy sauce, sesame oil, maple syrup and peanut butter in a small bowl or container.
Unwrap the tofu and cut it into cubes. Transfer it to the marinade bowl and toss to coat it with the marinade. Let marinade for at least 1 hour.
Heat one tablespoon of oil in a large iron skillet over medium heat. Add the tofu and cook on each side for 3-4 minutes, or until brown and crispy.
Soup
Heat the oil in a large saucepan over medium heat. Add onion, garlic and ginger. Cook for 5-7 minutes, stirring regularly until the onions are soft.
Add the red bell pepper flakes, chili, cumin, paprika and coriander. Cook for another 3-5 minutes, stirring constantly.
Lower the heat to low and stir in the soy sauce and maple syrup. Dissolve the cornstarch in the almond milk (it will help thicken the soup). Add the coconut and almond milk to the saucepan and increase the heat to medium again.
Let simmer for about 10 minutes, whisking regularly and making sure it doesn't come to a rolling boil. In the meantime, prepare the tofu and sweet potato.
Remove from heat, let cool a few minutes and stir in the lime juice. Taste and adjust seasonings if needed.
Divide into bowls and top with tofu, spiralized sweet potatoes, and fresh cilantro.
The soup will keep in the refrigerator for up to 4 days.
Spiralized sweet potatoes
Wash and peel the sweet potato. Heat one tablespoon of oil in a large skillet. Spiralize the sweet potato using a spiralizer on a large noodle setting. Add to the skillet, season with salt and pepper and sautée for 4-6 minutes, or until soft. Taste and adjust the seasonings.
Notes
You can make this soup lighter by swapping the almond milk for water, or the full-fat coconut milk for light coconut milk. It won't be as creamy but slightly lower in fat.