Sweat the onions: Heat the oil in a large skillet over medium heat. Add sliced onions and a pinch of salt.
Cook 7–9 minutes, stirring, until soft and lightly golden.
Add garlic and chipotle: Stir in the garlic and chopped chipotle with a spoonful of adobo sauce. Cook 30–60 seconds until fragrant.
Build the sauce: Add tomatoes, chicken broth, oregano, cumin, and bay leaf. Season with salt and pepper.
Simmer for 8–10 minutes to slightly thicken.
Blend (optional, for a smoother sauce): Remove the bay leaf. Blend the sauce with an immersion blender in the pan, or transfer to a blender. You can also leave it chunky—both are traditional.
Add the chicken: Return the sauce to the pan if blended elsewhere.
Stir in the shredded chicken and simmer 5–10 minutes, adding a splash of broth if it gets too thick.
Brighten and adjust: Stir in the vinegar or lime juice. Taste and adjust salt, pepper, and heat. For more smokiness, add a bit more adobo sauce.
Serve: Spoon onto warm tortillas or tostadas.
Top with onion, cilantro, avocado, queso fresco, and a squeeze of lime.