Warm the pot: Heat oil in a large Dutch oven over medium heat.
Brown the beef: Add ground beef, breaking it up with a spoon. Cook until well browned and most moisture has evaporated, about 7–9 minutes.
Season lightly with salt and pepper.
Sauté aromatics: Add onion, bell pepper, and jalapeño. Cook 4–5 minutes until softened. Stir in garlic and cook 30 seconds until fragrant.
Build the base: Add tomato paste and cook 1–2 minutes, stirring, until darkened slightly.
Stir in chili powder, cumin, paprika, and oregano to bloom the spices.
Deglaze and simmer: Pour in crushed tomatoes and 1 cup beef broth. Add chipotle and adobo sauce if using. Scrape the bottom of the pot to release browned bits.
Adjust thickness: If you want a looser chili, add up to 1/2 cup more broth.
For thicker chili, keep as is.
Add low-carb veggies: Stir in zucchini. Bring to a gentle simmer.
Simmer for flavor: Reduce heat to low and simmer 20–25 minutes, stirring occasionally, until flavors meld and the chili thickens.
Optional cauliflower boost: Stir in cauliflower rice during the last 5 minutes. It will absorb flavor and add body without extra carbs.
Finish and taste: Stir in vinegar or lime juice for brightness.
Taste and adjust salt, pepper, and heat as needed.
Serve: Ladle into bowls and add your favorite toppings. Keep it simple with cheddar and green onions, or go all-in with avocado and sour cream.