Sauté aromatics. Heat olive oil in a large pot over medium heat. Add onion (and bell pepper if using) and cook 5 to 7 minutes until softened. Add garlic and cook 30 seconds.
Brown the beef. Add ground beef, salt, and pepper. Cook 8 to 10 minutes, breaking it up, until browned. Drain excess grease if needed.
Bloom the spices. Stir in tomato paste, chili powder, cumin, smoked paprika, oregano, and cayenne. Cook 1 minute, stirring constantly.
Simmer. Add crushed tomatoes, diced tomatoes, and broth. Bring to a simmer, then reduce heat to low and cook uncovered 30 to 40 minutes, stirring occasionally.
Add beans. Stir in beans (if using) and simmer 10 more minutes.
Finish. Stir in brown sugar (if using) and a splash of vinegar or lime juice. Taste and adjust salt and heat.
Serve. Serve hot with your favorite toppings.