Slice the onions evenly. Cut them pole-to-pole into thin slices. Uniform slices ensure even caramelization and prevent some bits from burning while others stay pale.
4 large Yellow onions, thinly sliced
Start the caramelization. In a large, heavy-bottomed pot or Dutch oven, heat butter and olive oil over medium heat.
Add onions with a pinch of salt. Cook, stirring every few minutes, until they soften and release moisture.
3 tbsp Butter, 1 tbsp Olive oil, Sea salt and black pepper, to taste
Go low and slow. Reduce heat to medium-low. Keep cooking 35–45 minutes, stirring often.
Scrape brown bits from the bottom as they form. You want a deep golden brown color and jammy texture.
Add garlic. Stir in minced garlic and cook 30–60 seconds until fragrant. Don’t let it burn.
3 cloves minced Garlic
Deglaze with wine (optional but classic). Pour in the dry white wine or sherry.
Scrape the pot to pull up all the browned bits. Simmer 2–3 minutes to cook off most of the alcohol.
½ cup Dry white wine or dry sherry, optional but recommended
Build the broth. Add beef broth, thyme, bay leaf, and Worcestershire. Bring to a gentle simmer.
Cook 20–25 minutes to marry the flavors.
6 cups Beef broth, preferably low-sodium, 4 sprigs Fresh thyme, 1 Bay leaf, 2 tsp Worcestershire sauce (1–2 teaspoons),
Balance and season. Remove thyme stems and bay leaf. Taste, then add salt, pepper, and a splash of vinegar for brightness. If onions taste slightly bitter, a tiny pinch of keto-friendly sweetener rounds it out.
Sea salt and black pepper, to taste, 1 tsp Apple cider vinegar or red wine vinegar, to finish, Optional: A pinch of sweetener (like allulose or erythritol) to balance acidity if needed
Prep the “crouton.” Toast low-carb bread slices until very crisp.
This helps them hold up in the soup. You can brush with a little olive oil and rub with a cut clove of garlic for extra flavor.
Low-carb bread slices or almond flour bread/crackers for topping
Ladle and top. Preheat the broiler. Divide hot soup into oven-safe bowls.
Place the toasted low-carb bread on top, then pile on grated Gruyère.
1.5 cups Gruyère cheese, grated
Broil to finish. Set bowls on a baking sheet and broil 2–4 minutes until the cheese is melted, bubbly, and lightly browned. Watch closely—cheese can go from perfect to burned fast.
Serve hot. Let cool for a minute, then serve. The soup will be deeply savory with that irresistible cheesy cap.