Press and prep the tofu: Wrap the tofu in a clean kitchen towel and press under something heavy for 15–20 minutes to remove excess moisture.
Cut into cubes.
Brown the tofu: Heat 1 tbsp oil in a large pot or Dutch oven over medium-high heat. Add tofu in a single layer and cook, turning occasionally, until golden on most sides, about 6–8 minutes. Transfer to a plate and season with a pinch of salt.
Sauté aromatics: Reduce heat to medium.
Add the remaining 1 tbsp oil, onion, and a pinch of salt. Cook 3–4 minutes until softened. Stir in garlic and ginger, and cook another 30–60 seconds until fragrant.
Toast the curry: Stir in red curry paste and curry powder.
Cook 1–2 minutes, stirring, until the paste darkens slightly and smells aromatic. This step deepens flavor.
Add veggies: Add bell pepper, carrot, and zucchini. Stir to coat in the curry mixture and cook 2–3 minutes to soften slightly.
Build the broth: Pour in vegetable broth and bring to a gentle simmer.
Stir in coconut milk until the broth is creamy and smooth.
Season: Add soy sauce and brown sugar. Taste and adjust the salt. If using chili or chili flakes, add now for extra heat.
Simmer: Let the soup simmer uncovered for 8–10 minutes, until the vegetables are tender but still vibrant.
Stir in optional spinach or snow peas during the last 2 minutes.
Finish with brightness: Return tofu to the pot and warm through for 1–2 minutes. Turn off heat and stir in lime juice.
Serve: Ladle into bowls and top with cilantro or Thai basil and green onions. Serve as-is or over a small scoop of jasmine rice or rice noodles.