Warm the pot: Heat the oil in a large pot or Dutch oven over medium heat.
Add the onion and cook 3–4 minutes until softened. Stir in the garlic and cook 30 seconds until fragrant.
Brown the beef: Add the ground beef. Break it up with a spatula and cook until no longer pink, about 6–8 minutes.
If there’s a lot of fat, drain off some, leaving about 1–2 tablespoons for flavor.
Add the veggies: Stir in the bell peppers and zucchini. Cook 3–4 minutes to soften slightly.
Toast the spices: Sprinkle in chili powder, cumin, smoked paprika, oregano, cayenne, salt, and black pepper. Stir and let the spices toast for 1 minute to wake up the flavors.
Build the base: Add tomato paste and cook, stirring, for 1–2 minutes until it darkens a shade.
This deepens the chili flavor.
Simmer: Pour in diced tomatoes and beef broth. Add vinegar and Worcestershire (or coconut aminos). If using, add hot sauce or cocoa powder.
Bring to a gentle boil, then reduce heat to low.
Cook low and slow: Simmer uncovered for 25–35 minutes, stirring occasionally, until thickened to your liking. Taste and adjust salt, pepper, and heat.
Finish and serve: Let it rest 5 minutes off the heat. Ladle into bowls and top with sour cream, cheese, avocado, jalapeños, cilantro, and a squeeze of lime.