Heat olive oil in a large pot or Dutch oven over medium heat.
Add diced onion and sauté for about 5 minutes until translucent.
Stir in minced garlic, bell pepper, and carrots. Cook for another 5 minutes until slightly softened.
Add zucchini, kidney beans, black beans, diced tomatoes (with juices), and vegetable broth to the pot. Mix well.
Season the mixture with chili powder, ground cumin, smoked paprika, salt, and pepper. Stir to combine.
Bring the chili to a gentle boil, then reduce the heat to low. Cover and let simmer for 20 minutes, stirring occasionally.
Taste and adjust seasoning if necessary. Serve hot with optional toppings if desired.
For extra heat, you can add chopped jalapeños or a dash of cayenne pepper.
If you prefer a thicker chili, allow it to simmer uncovered for an additional 10 minutes.
This chili can be stored in the refrigerator for up to 5 days or frozen for up to 3 months. Reheat thoroughly before serving.