Slice onions in half lengthwise, then slice in half vertically again (keeping root end in tact). Thinly slice about ¼-inch thick. Halve shallots lengthwise, then slice twice as thick as onions (about ½-inch thick).
Heat olive oil in a large skillet over medium heat.
Add onions and shallots to pan. Season lightly with salt and pepper.
Cook onions and shallots, stirring every 5 to 10 minutes, until carmelized (they should be deep brown, soft, and have a jammy texture when done). If onions become dry, start to cook too fast, or start to stick, reduce the heat and / or add a splash of water (about 1 tablespoon). It should take about 45 to 60 minutes total.
Stir in garlic and cook just until fragrant, about 30 seconds to 1 minute.
Remove onions from heat, then season to taste with salt and pepper. Set aside and let cool slightly.
Mix together cream cheese and sour cream until smooth (by hand or with a mixer). Stir in caramelized onions, green onions, and hot sauce. Season to taste with salt and pepper.
Serve dip immediately with chips and veggies, or chill until ready to eat. Enjoy!
Notes
Like most dips, this one's flavor improves if you make it in advance. I recommend chilling the dip for at least one hour before serving (or make it a day in advance for a party).Check out the info before this recipe card for more tips, step by step photos, serving suggestions, and delicious related recipes!